diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..1320b9a3 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} diff --git a/.badsenderrc-example b/.badsenderrc-example new file mode 100644 index 00000000..86de4a64 --- /dev/null +++ b/.badsenderrc-example @@ -0,0 +1,132 @@ +{ + ////// + // SMTP + ////// + + //----- classic configuration + + "emailTransport": { + "host": "yoursmtpserver", + "port": "25", + "auth": { "user": "####", "pass": "####" } + }, + + //----- OR use https://github.com/nodemailer/nodemailer-wellknown + + // "emailTransport": { + // "provider": "GandiMail", + // "auth": { "user": "####", "pass": "####" } + // }, + + //----- complementary informations + + "emailOptions": { + "from": "Badsender local " // sender address + }, + + ////// + // STORAGE + ////// + + //----- local + + // "storage": { + // "type": "local" + // }, + + //----- OR for using Amazon S3: + + "storage": { + "type": "aws", + "aws": { + "accessKeyId": "20 characters key", + "secretAccessKey": "40 characters secret key", + "region": "ap-southeast-1", + "bucketName": "name of the bucket" + } + }, + + //----- complementary informations + + "images": { + "tmpDir": "/tmp", + // in case case of local storage + "uploadDir": "/uploads", + // cache resized images & add cache-control to image request + "cache": false + }, + + ////// + // GENERAL + ////// + + "host": "www.your-hostname-without-protocal.com", + + "admin": { + "password": "admin" + }, + + // show complentary informations on the front-end + + "debug": false, + + ////// + // DB CONNECTION + ////// + + "database": "mongodb://localhost/my_database", + + ////// + // DB COPY (only used for syncing DBs, see ./bin/db-sync) + ////// + + "dbConfigs": { + "local": { + "host": "localhost:27017", + "folder": "badsender" + }, + "dev": { + "host": "localhost:27017", + "folder": "badsender_copy", + "user": "####", + "password": "####" + }, + "stage": { + "host": "localhost:27017", + "folder": "badsender_copy", + "user": "####", + "password": "####" + }, + "production": { + "host": "localhost:27017", + "folder": "badsender_copy", + "user": "####", + "password": "####" + } + }, + + ////// + // S3 COPY (only used for syncing DBs, see ./bin/s3-sync) + ////// + + "s3Configs": { + "dev": { + "bucketName": "badsender", + "accessKeyId": "####", + "region": "####", + "secretAccessKey": "####" + }, + "stage": { + "bucketName": "badsender-stage", + "accessKeyId": "####", + "region": "####", + "secretAccessKey": "####" + }, + "production": { + "bucketName": "builder.badsender.com", + "accessKeyId": "####", + "region": "####", + "secretAccessKey": "####" + } + } +} diff --git a/.buildpacks b/.buildpacks new file mode 100644 index 00000000..ded33e64 --- /dev/null +++ b/.buildpacks @@ -0,0 +1,2 @@ +https://github.com/jontewks/puppeteer-heroku-buildpack.git +https://github.com/heroku/heroku-buildpack-nodejs.git diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..860dc982 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,37 @@ +# Javascript Node CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-javascript/ for more details +# +version: 2 +jobs: + build: + docker: + # specify the version you desire here + - image: circleci/node:7.10 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/mongo:3.4.4 + + working_directory: ~/repo + + steps: + - checkout + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package-lock.json" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- + + - run: npm install + + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package-lock.json" }} + + # run tests! + - run: npm test diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..93f13619 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3a908035 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +/bower_components +/node_modules +/uploads/** +!uploads/README.md +.tmp/** +!.tmp/README.md +/badsender-server/express-assets +/dist +/server-config.js +/release +/TODO.md +/build/maintenance-pages + +/.cache +/.mongodb +/.nuxt +/badsender-api-documentation +/server/maintenance-pages/*.html +/s3-* +/tests/ava/snapshots +/tmp/** +.badsenderrc +.DS_Store +.lagardererc +npm-debug.log +yarn-error.log +*.orig +/TODO.md diff --git a/.gitignore-release b/.gitignore-release new file mode 100644 index 00000000..a913b957 --- /dev/null +++ b/.gitignore-release @@ -0,0 +1,25 @@ +/.cache +/.circleci +/.mongodb +/.vscode +/backend +/bin +/build +/spec +/src +/tasks +/tests +/tmp +/uploads +/.* +!.gitignore +/*.js +!/index.js +/*.json +!/package.json +/*.md +/LICENSE +/*.log +.DS_Store +/s3-* +/TODO.md diff --git a/.jsbeautifyrc b/.jsbeautifyrc new file mode 100644 index 00000000..4a18cd13 --- /dev/null +++ b/.jsbeautifyrc @@ -0,0 +1,6 @@ +{ + "js": { + "indent_with_tabs": false, + "indent_size": 2, + } +} \ No newline at end of file diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 00000000..fb5e52ca --- /dev/null +++ b/.jshintrc @@ -0,0 +1,8 @@ +{ + "-W097": false, + "-W069": false, + "globals": { + "require": false, + "module": false + } +} \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..5007551b --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +10.16.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..a1b8581b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +src/js/**/*.js +*.html + +!/src/js/**/badsender-*.js +src/js/converter/badsender-editor.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..36301bc5 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "es5" +} diff --git a/.profile b/.profile new file mode 100644 index 00000000..af984f09 --- /dev/null +++ b/.profile @@ -0,0 +1,2 @@ +export DISPLAY=':99.0' +Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..143b097c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ +language: node_js +node_js: + - "8" + - "7" + - "6" +before_install: + - npm install -g grunt-cli + - npm install -g codecov +install: + - npm install +script: + - npm test + - codecov diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..aa113867 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,57 @@ +{ + "files.associations": { + ".badsenderrc-example": "jsonc", + ".badsenderrc": "jsonc", + ".lagardererc": "jsonc", + "Dockerfile*": "dockerfile" + }, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "editor.tabSize": 2, + "editor.formatOnSave": true, + "path-intellisense.mappings": { + "~": "${workspaceRoot}/badsender-server" + }, + "vetur.validation.template": false, + "cSpell.ignorePaths": [ + "**/package-lock.json", + "**/node_modules/**", + "**/vscode-extension/**", + "**/.git/**", + "**/dist/**", + ".vscode", + "typings" + ], + "cSpell.words": [ + "Badsender's", + "Lagardere", + "Selligent", + "Unarchiver", + "Unprocessable", + "Verdana", + "Vuetify", + "badsender", + "badsenderrc", + "blueimp", + "croppie", + "errored", + "fileupload", + "forcessl", + "gifsicle", + "heroku", + "ifnot", + "lazypipe", + "mosaico", + "mosaico's", + "promisify", + "scrollfix", + "snackbar", + "speakingurl", + "tinymce", + "tmpl", + "tooltabs", + "virtuals", + "wireframe", + "wireframes" + ] +} diff --git a/.vscode/vue-file.code-snippets b/.vscode/vue-file.code-snippets new file mode 100644 index 00000000..43cb9520 --- /dev/null +++ b/.vscode/vue-file.code-snippets @@ -0,0 +1,38 @@ +{ + // Place your badsender-mosaico workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + "Badsender Vue Component": { + "scope": "vue", + "prefix": "bsvue", + "body": [ + "", + "", + "", + "", + "", + "", + "", + "{", + "\t\"en\": {},", + "\t\"fr\": {}", + "}", + "", + "" + ], + "description": "Create a basic Vue component" + } +} diff --git a/Aptfile b/Aptfile new file mode 100644 index 00000000..0af3967e --- /dev/null +++ b/Aptfile @@ -0,0 +1,9 @@ +xvfb +x11-xkb-utils +xfonts-100dpi +xfonts-75dpi +xfonts-scalable +xfonts-cyrillic +libxfont1 +libnotify4 +libxss1 diff --git a/Procfile b/Procfile new file mode 100644 index 00000000..2be5f808 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: yarn start diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..93dacc23 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,27 @@ +FROM node:10 + +ENV NODE_ENV=development + +RUN apt install bzip2 tar git imagemagick + +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ + unzip awscliv2.zip && \ + ./aws/install + +RUN npm i -g grunt-cli + +RUN mkdir -p /home/node/app +RUN mkdir -p /home/node/app/node_modules/ + +WORKDIR /home/node/app + +COPY ./mosaico . + +RUN chown -R node:node /home/node +USER node + +RUN yarn install + +EXPOSE 3000 + +CMD ["yarn", "dev"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..f97faed7 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,48 @@ +version: '3.7' + +volumes: + node_modules: + mongodb_data: + +services: + database: + image: mongo:4.2.9 + container_name : badsender_mongo_container + environment: + MONGO_INITDB_DATABASE: badsender + # MONGO_INITDB_ROOT_PASSWORD: user + # MONGO_INITDB_ROOT_USERNAME: password + ports: + - "27017-27019:27017-27019" + volumes: + - ./mongo-volume:/data/db + + + # redis: + # image: redis:4.0.2-alpine + # web: + # image: badsender/mosaico + # build: + # context: . + # volumes: + # - ./mosaico:/home/node/app + # - node_modules:/home/node/app/node_modules + # environment: + # VIRTUAL_PORT: "3000" + # VIRTUAL_HOST: "badsender.localhost" + # depends_on: + # - mongodb + # - redis + smtp: + image: maildev/maildev + expose: + - 1080 + - 80 + environment: + VIRTUAL_PORT: "80" + VIRTUAL_HOST: "smtp.badsender.localhost" + +# networks: +# default: +# external: +# name: nginx-reverse-proxy diff --git a/docker/start-dev-db.sh b/docker/start-dev-db.sh new file mode 100755 index 00000000..e5477b7e --- /dev/null +++ b/docker/start-dev-db.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -e + +# create volume for the data +echo "Creation du volume" +docker volume create --name badsender -d local + +# start docker container +echo "Docker compose" +docker-compose -f docker-compose.yml up -d --remove-orphans +echo "Docker compose end" +# docker-compose logs -f + +# # wait for pg to start (1min max) +# RETRIES=10 +# until docker exec -i badsender psql -U postgres -c "select 1" > /dev/null 2>&1 || [ $RETRIES -eq 0 ]; do +# echo "Waiting for postgres server, $((RETRIES--)) remaining attempts..." +# sleep 6 +# done diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 00000000..f2522a7d --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,482 @@ +'use strict' + +// this GulpFile mirror & enhance the GruntFile +// • another build tool was chosen to add more control & flexibility +// AND to keep as much as possible the original files untouched + +/* spell-checker: disable */ + +const gulp = require('gulp') +const path = require('path') +const $ = require('gulp-load-plugins')() +const lazypipe = require('lazypipe') +const del = require('del') +const args = require('yargs').argv +const _ = require('lodash') +const beeper = require('beeper') +const log = require('fancy-log') +const colors = require('ansi-colors') +const Vinyl = require('vinyl') +const mergeStream = require('merge-stream') + +const isWatch = args.watch === true +const isProd = args.prod === true +const isDev = !isProd +const env = isDev ? `development` : `production` +const SERVER_DIR = `packages/server` +const BUILD_DIR = `public/dist` +const BUILD_DIR_LIB = `${BUILD_DIR}/lib` + +function onError(err) { + beeper() + if (err.annotated) { + log(err.annotated) + } else if (err.message) { + log(err.message) + } else { + log(err) + } + return this.emit('end') +} + +log( + `environment is`, + colors.magenta(env), + `watch is`, + isWatch ? colors.magenta(`enable`) : `disable` +) + +function bump() { + return gulp + .src(`./*.json`) + .pipe( + $.bump({ + version: args.pkg, + }) + ) + .pipe(gulp.dest('./')) +} +bump.description = `Bump versions on package.json. Used only in release script` + +//////// +// CSS +//////// + +const autoprefixer = require('autoprefixer') +const csswring = require('csswring') + +const cssDev = lazypipe() + .pipe($.postcss, [ + autoprefixer({ overrideBrowserslist: [`ie 10`, `last 2 versions`] }), + ]) + .pipe($.beautify.css, { indent_size: 2 }) + .pipe($.sourcemaps.write) +const cssProd = lazypipe() + .pipe($.purgeSourcemaps) + .pipe($.postcss, [csswring({ removeAllComments: true })]) + .pipe($.rename, { suffix: `.min` }) + +function cleanCss(cb) { + if (isDev) return cb() + return del([BUILD_DIR + '/*.css', BUILD_DIR + '/*.css.map'], cb) +} + +function cssEditor() { + return gulp + .src(`packages/editor/src/css/badsender-editor.less`) + .pipe($.plumber(onError)) + .pipe($.sourcemaps.init()) + .pipe($.less()) + .pipe(cssDev()) + .pipe($.rename(`badsender-editor.css`)) + .pipe(gulp.dest(BUILD_DIR)) + .pipe(cssProd()) + .pipe(gulp.dest(BUILD_DIR)) +} +cssEditor.description = `build CSS for mosaico editor` +exports[`css:mosaico`] = cssEditor + +const css = gulp.series(cleanCss, cssEditor) +css.description = `Build CSS for the mosaico editor` + +//////// +// JS +//////// + +//----- LIBRARIES + +function cleanLib(cb) { + if (isDev) return cb() + return del(BUILD_DIR, '/**/*.js') +} + +const mosaicoLibList = [ + `node_modules/jquery/dist/jquery.js`, + `node_modules/jquery-migrate/dist/jquery-migrate.js`, + `node_modules/knockout/build/output/knockout-latest.js`, // don't use knockout-latest.debug as it breaks the editor + `node_modules/jquery-ui-package/jquery-ui.js`, + `node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.js`, + `node_modules/default-passive-events/dist/index.js`, + // NOTE: include these 2 BEFORE the fileupload libs + // using npm5 we can get sub-dependencies from nested paths, but npm3 does flatten them, so let's depend on them explicitly. + // 'node_modules/blueimp-file-upload/node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.js', + // 'node_modules/blueimp-file-upload/node_modules/blueimp-load-image/js/load-image.all.min.js', + `node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.js`, + `node_modules/blueimp-load-image/js/load-image.all.min.js`, + // 'node_modules/blueimp-file-upload/js/jquery.iframe-transport.js', + `node_modules/blueimp-file-upload/js/jquery.fileupload.js`, + `node_modules/blueimp-file-upload/js/jquery.fileupload-process.js`, + `node_modules/blueimp-file-upload/js/jquery.fileupload-image.js`, + `node_modules/blueimp-file-upload/js/jquery.fileupload-validate.js`, + `node_modules/knockout-jqueryui/dist/knockout-jqueryui.js`, + `node_modules/tinymce/tinymce.js`, +] + +// TODO: minifiy not minfied libs! +const mosaicoLibListMin = [ + `node_modules/jquery/dist/jquery.min.js`, + `node_modules/jquery-migrate/dist/jquery-migrate.min.js`, // min existe but not minified + `node_modules/knockout/build/output/knockout-latest.js`, // already min + `node_modules/jquery-ui-package/jquery-ui.min.js`, + `node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js`, + `node_modules/default-passive-events/dist/index.js`, //already min + // NOTE: include these 2 BEFORE the fileupload libs + `node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.min.js`, + `node_modules/blueimp-load-image/js/load-image.all.min.js`, + `node_modules/blueimp-file-upload/js/jquery.fileupload.js`, // no min files + `node_modules/blueimp-file-upload/js/jquery.fileupload-process.js`, // no min files + `node_modules/blueimp-file-upload/js/jquery.fileupload-image.js`, // no min files + `node_modules/blueimp-file-upload/js/jquery.fileupload-validate.js`, // no min files + `node_modules/knockout-jqueryui/dist/knockout-jqueryui.js`, // no min files + `node_modules/tinymce/tinymce.min.js`, +] + +const orderLibs = lib => /[^\/]*\.js$/.exec(lib)[0] + +function mosaicoLib() { + const devLibs = gulp + .src(mosaicoLibList) + .pipe($.order(mosaicoLibList.map(orderLibs))) + .pipe($.concat(`badsender-lib-editor.js`)) + const prodLibs = gulp + .src(mosaicoLibListMin) + .pipe($.order(mosaicoLibListMin.map(orderLibs))) + .pipe($.concat(`badsender-lib-editor.min.js`)) + + const sourceMaps = gulp.src( + `node_modules/blueimp-load-image/js/load-image.all.min.js.map` + ) + + return mergeStream(devLibs, prodLibs, sourceMaps).pipe( + gulp.dest(BUILD_DIR_LIB) + ) +} +mosaicoLib.description = `concat all mosaico lib files` +exports[`js:mosaico-lib`] = mosaicoLib + +function copyTinymceFiles() { + const base = `node_modules/tinymce` + // only copy necessary tinymce plugins + // keep only minified files + const src = [ + `${base}/tinymce.js`, + `${base}/themes/modern/theme.js`, + `${base}/plugins/paste/plugin.js`, + `${base}/plugins/link/plugin.js`, + `${base}/plugins/hr/plugin.js`, + `${base}/plugins/lists/plugin.js`, + `${base}/plugins/textcolor/plugin.js`, + `${base}/plugins/colorpicker/plugin.js`, + `${base}/plugins/code/plugin.js`, + ] + const srcMin = src.map(filePath => { + return filePath.replace(/\.js$/, `.min.js`) + }) + const all = [...src, ...srcMin] + return gulp.src(all, { base: base }).pipe(gulp.dest(BUILD_DIR_LIB)) +} +copyTinymceFiles.description = `copy all related tinymce files to the right place` + +exports[`js:tinymce`] = copyTinymceFiles + +// Bundling mosaico libs is just a concat… +const editorLib = gulp.series( + cleanLib, + gulp.parallel(mosaicoLib, copyTinymceFiles) +) +editorLib.description = `build JS for the mosaico editor` + +//----- MOSAICO APPLICATION + +const browserify = require('browserify') +const source = require('vinyl-source-stream') +const vinylBuffer = require('vinyl-buffer') +const aliasify = require('aliasify') +const shim = require('browserify-shim') +const babelify = require('babelify') +const envify = require('envify/custom') +const watchify = require('watchify') + +const badsenderEditorLibs = [`lodash.find`, `lodash.debounce`, `cropperjs`] +const basedir = __dirname + '/packages/editor/src/js' + +function mosaicoBadsenderLib() { + return browserify({ + basedir, + noParse: badsenderEditorLibs, + debug: true, + }) + .require(badsenderEditorLibs) + .bundle() + .pipe(source(`badsender-editor-libraries.js`)) + .pipe(gulp.dest(BUILD_DIR_LIB)) + .pipe(vinylBuffer()) + .pipe($.stripDebug()) + .pipe($.uglify()) + .pipe($.rename({ suffix: `.min` })) + .pipe(gulp.dest(BUILD_DIR_LIB)) +} + +function mosaicoEditor(debug = false) { + let b = browserify({ + basedir, + cache: {}, + packageCache: {}, + debug, + entries: [`./app.js`, `../../build/templates.js`], + standalone: `Badsender`, + }) + .external(badsenderEditorLibs) + .transform(aliasify) + .transform(shim, { global: true }) + .transform( + babelify.configure({ + presets: [`@babel/preset-env`], + // Optional only regex - if any filenames **don't** match this regex + // then they aren't compiled + only: [/badsender-/, /packages/], + }) + ) + .transform( + envify( + { + _: 'purge', + NODE_ENV: env, + BADSENDER: true, + MOSAICO: false, + }, + { global: true } + ) + ) + // use uglifyify instead of gulp.uglify + // • when RELEASING ONLY purge wasn't done properly by envify + // and gulp.uglify was breaking + if (!debug) { + b.transform(`uglifyify`, { + global: true, + sourceMap: false, + }) + } + return b +} + +function bundleShareDev(b) { + return b + .bundle() + .on(`error`, onError) + .pipe(source(`badsender-editor.js`)) + .pipe(vinylBuffer()) + .pipe(gulp.dest(BUILD_DIR)) +} + +function jsMosaicoDev() { + let b = mosaicoEditor(true) + if (isWatch) { + b = watchify(b) + b.on(`update`, function() { + console.log(`bundle ${colors.magenta('editor')} app`) + bundleShareDev(b) + }) + } + return bundleShareDev(b) +} + +function jsMosaicoProd() { + return mosaicoEditor() + .bundle() + .on(`error`, onError) + .pipe(source(`badsender-editor.min.js`)) + .pipe(vinylBuffer()) + .pipe($.stripDebug()) + .pipe($.uglify()) + .pipe(gulp.dest(BUILD_DIR)) +} +const jsEditor = gulp.series( + templates, + !isWatch + ? gulp.parallel(mosaicoBadsenderLib, jsMosaicoDev, jsMosaicoProd) + : gulp.parallel(mosaicoBadsenderLib, jsMosaicoDev) +) +jsEditor.description = `Bundle mosaico app, without libraries` + +exports[`js:mosaico-editor`] = jsEditor +exports[`js:mosaico-editor:badsender-libraries`] = mosaicoBadsenderLib +exports[`js:mosaico`] = gulp.parallel(editorLib, jsEditor) + +//----- MOSAICO'S KNOCKOUT TEMPLATES: see -> /packages/editor/tasks/combineKOTemplates.js + +const through = require('through2') +const StringDecoder = require('string_decoder').StringDecoder +const decoder = new StringDecoder('utf8') + +function templates() { + const templates = [] + function passThrough(file, encoding, cb) { + let name = path.basename(file.path) + name = /^([^\.]*)/.exec(name)[1] + let content = decoder.write(file.contents) + content = content.replace(/"/g, '\\x22') + content = content.replace(/(\r\n|\n|\r)/gm, '') + content = ` templateSystem.addTemplate("${name}", "${content}");` + templates.push(content) + return cb(null) + } + function flush(cb) { + const result = `var templateSystem = require('../src/js/bindings/choose-template.js'); +document.addEventListener('DOMContentLoaded', function(event) { +${templates.join(`\n`)} +});` + this.push( + new Vinyl({ + cwd: './', + base: './', + path: 'templates.js', + contents: new Buffer.from(result), + }) + ) + return cb() + } + return ( + gulp + .src([ + 'packages/editor/src/tmpl/*.html', + // replace some original templates by custome ones + 'packages/editor/src/tmpl-badsender/*.html', + '!packages/editor/src/tmpl/gallery-images.tmpl.html', + '!packages/editor/src/tmpl/toolbox.tmpl.html', + ]) + .pipe(through.obj(passThrough, flush)) + // templates has to be build on “build” folder + // they will be require by editor app application + .pipe(gulp.dest('packages/editor/build')) + ) +} +templates.description = `Bundle mosaico templates` +exports[`js:mosaico:templates`] = templates + +//----- ALL JS + +const js = jsEditor +js.description = `build js for mosaico app` + +//////// +// ASSETS +//////// + +//----- FONTS + +function fonts() { + return gulp + .src(`node_modules/font-awesome/fonts/*`) + .pipe(gulp.dest(`public/fa/fonts`)) +} + +const assets = fonts +assets.description = `Copy font-awesome in the right place` + +//----- MAINTENANCE + +const MAINTENANCE_SRC = `packages/server/html-templates/maintenance-pages` +const MAINTENANCE_DIST = `build/maintenance-pages` + +const cleanMaintenance = cb => del([`${MAINTENANCE_DIST}/*.html`], cb) + +function maintenance() { + return gulp + .src([`${MAINTENANCE_SRC}/*.pug`, `!${MAINTENANCE_SRC}/_maintenance-*.pug`]) + .pipe($.pug()) + .pipe(gulp.dest(MAINTENANCE_DIST)) +} +maintenance.description = `build maintenance pages for Heroku` + +//----- REVS + +const crypto = require('crypto') + +function rev() { + let revs = [] + function sortByName(a, b) { + const nameA = a.name.toUpperCase() + const nameB = b.name.toUpperCase() + if (nameA < nameB) return -1 + if (nameA > nameB) return 1 + return 0 + } + function passThrough(file, enc, callback) { + var key = path.relative(file.base, file.path) + var md5 = crypto.createHash('md5') + if (!file.contents) return callback(null) + var hash = md5.update(file.contents.toString()).digest('hex') + revs.push({ name: '/' + key, hash }) + callback(null) + } + function flush(cb) { + const md5Object = {} + // keep the json in alphabetical order + revs.sort(sortByName).forEach(r => { + md5Object[r.name] = r.hash + }) + let file = new Vinyl({ + path: `md5public.json`, + contents: new Buffer.from(JSON.stringify(md5Object, null, ' ')), + }) + this.push(file) + cb() + } + + return gulp + .src([`${BUILD_DIR}/**/*.*`, `public/**/*.*`, `!public/lang/*.*`]) + .pipe(through.obj(passThrough, flush)) + .pipe(gulp.dest(SERVER_DIR)) +} +rev.description = `generate hash from mosaico's build files. This will help us to leverage browser caching` + +//////// +// DEV +//////// + +const cleanTmp = cb => del(['tmp/upload_*'], cb) + +const cleanAll = cb => del([BUILD_DIR, 'build'], cb) +const build = gulp.series( + cleanAll, + gulp.parallel(editorLib, js, css, assets), + rev +) +build.description = `rebuild all assets` + +function watchNonBrowserifyMosaicoAssets(done) { + gulp.watch(['packages/editor/src/css/**/*.less'], css) + gulp.watch(['packages/editor/src/tmpl/*.html', 'packages/editor/src/tmpl-badsender/*.html'], templates) + done() +} + +gulp.task(`css`, css) +gulp.task('js', js) +gulp.task('assets', assets) +gulp.task('rev', rev) +gulp.task('templates', templates) +gulp.task('build', build) +gulp.task('maintenance', gulp.series(cleanMaintenance, maintenance)) +gulp.task('dev', gulp.series(build, watchNonBrowserifyMosaicoAssets)) +gulp.task('bump', bump) diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..d2fa78f9 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "es2017", + "baseUrl": ".", + "paths": { + "~/*": ["./packages/*"] + } + }, + "exclude": ["node_modules", ".nuxt"] +} diff --git a/nuxt.config.js b/nuxt.config.js new file mode 100644 index 00000000..b72a8f84 --- /dev/null +++ b/nuxt.config.js @@ -0,0 +1,106 @@ +'use strict' + +const path = require('path') + +// Don't use ESM +// • this will be also required in express app +const pkg = require('./package.json') +const config = require('./packages/server/node.config.js') + +module.exports = { + srcDir: 'packages/ui', + rootDir: __dirname, + modulesDir: path.join(__dirname, '/node_modules'), + dir: { + assets: `assets`, + layouts: `layouts`, + middleware: `middleware`, + pages: `routes`, + static: `static`, + store: `store`, + }, + build: { + extend(config, { isDev, loaders }) { + // take care of tags inside Vue components + config.module.rules.push({ + resourceQuery: /blockType=i18n/, + type: `javascript/auto`, + loader: `@kazupon/vue-i18n-loader`, + }) + }, + }, + router: { + middleware: [`authentication-check`], + }, + plugins: [ + { src: `~/plugins/vue-filters.js`, ssr: true }, + { src: `~/plugins/badsender-global-components.js`, ssr: true }, + { src: `~/plugins/vue-i18n.js`, ssr: true }, + { src: `~/plugins/detect-browser-locale.js`, ssr: false }, + ], + // https://vuetifyjs.com/en/getting-started/quick-start#nuxt-install + // https://nuxtjs.org/guide/modules#build-only-modules + buildModules: [ + [ + `@nuxtjs/vuetify`, + { + icons: { iconfont: `md` }, + theme: { + options: { customProperties: true }, + themes: { + light: { + ...config.brandOptions.colors, + }, + }, + }, + }, + ], + ], + modules: [`@nuxtjs/style-resources`, `@nuxtjs/axios`], + // mirror port in nuxt config + // • We don't launch a “bare” nuxt server so this might sound not useful + // → Server listening is handled by expressJs + // • BUT this will be used by nuxt-axios + server: { + port: config.port, + }, + axios: { + prefix: config.nuxt.API_PREFIX, + browserBaseURL: config.nuxt.API_PREFIX, + }, + css: [`~/assets/global-styles/index.scss`], + styleResources: { + // scss: [`~assets/global-styles/scss-mixins.scss`], + }, + env: { + APP_VERSION: pkg.version, + ADMIN_USERNAME: config.admin.username, + API_PREFIX: config.nuxt.API_PREFIX, + // API_BASE_URL: config.apiBaseURL, + // // used for dev to call the “stateless” prevision API: /ext/v1 + // EXT_TOKEN: config.extToken, + }, + head: { + titleTemplate: `Badsender – %s`, + meta: [ + { charset: `utf-8` }, + { name: `viewport`, content: `width=device-width, initial-scale=1` }, + { 'http-equiv': `X-UA-Compatible`, content: `IE=edge` }, + { rel: `shortcut icon`, href: `/favicon.png`, type: `image/png` }, + { rel: `icon`, href: `/favicon.png`, type: `image/png` }, + ], + link: [ + { + rel: `stylesheet`, + href: `https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900`, + }, + { + rel: `stylesheet`, + href: `https://fonts.googleapis.com/css?family=Material+Icons`, + }, + ], + }, + loading: { + color: `#87cbc9`, + }, +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..b3e86942 --- /dev/null +++ b/package.json @@ -0,0 +1,240 @@ +{ + "name": "mosaico", + "version": "0.17.4", + "description": "Mosaico - OpenSource Email Template Editor", + "main": "./packages/server/workers.js", + "repository": { + "type": "git", + "url": "https://github.com/Badsender/mosaico.git" + }, + "browserify": { + "transform": [ + "aliasify", + "browserify-shim", + "browserify-versionify", + "uglifyify" + ] + }, + "aliasify": { + "aliases": { + "console": "console-browserify", + "knockoutjs-reactor": "ko-reactor/dist/ko-reactor.min.js", + "tinycolor": "tinycolor2" + } + }, + "browserify-shim": { + "jquery": "global:jQuery", + "jquery-ui/ui/widgets/sortable": "global:jQuery.ui.sortable", + "jquery-ui/ui/widgets/draggable": "global:jQuery.ui.draggable", + "jquery-ui/ui/widgets/droppable": "global:jQuery.ui.droppable", + "jquery-ui/ui/widgets/spinner": "global:jQuery.ui.spinner", + "jquery-ui/ui/widgets/tabs": "global:jQuery.ui.tabs", + "knockout": "global:ko", + "knockout-jqueryui": "global:kojqui", + "tinymce": "global:tinymce" + }, + "directories": { + "test": "test" + }, + "dependencies": { + "@easylogic/colorpicker": "1.9.64", + "@kazupon/vue-i18n-loader": "0.5.0", + "@nuxtjs/axios": "5.9.3", + "@nuxtjs/style-resources": "1.0.0", + "@nuxtjs/vuetify": "1.10.2", + "@poziworld/oauth2orize": "1.11.1", + "apidoc": "0.19.0", + "archiver": "3.1.1", + "aws-sdk": "2.543.0", + "bcryptjs": "2.4.3", + "blueimp-tmpl": "3.13.0", + "body-parser": "1.19.0", + "chalk": "2.4.2", + "cheerio": "1.0.0-rc.3", + "compression": "1.7.4", + "connect-ensure-login": "0.1.1", + "connect-mongo": "2.0.3", + "consola": "2.11.1", + "cookie": "0.3.1", + "cookie-parser": "1.4.4", + "decode-uri-component": "0.2.0", + "denodeify": "1.2.1", + "express": "4.17.1", + "express-async-handler": "1.1.4", + "express-favicon": "2.0.1", + "express-oauth-server": "2.0.0", + "express-session": "1.16.2", + "font-awesome": "4.7.0", + "formidable": "1.0.17", + "fs-extra": "7.0.1", + "gifsicle-stream": "0.3.1", + "he": "1.2.0", + "helmet": "3.21.1", + "http-errors": "1.7.3", + "i18n": "0.8.3", + "lodash": "4.17.15", + "mime-types": "2.1.24", + "moment": "2.24.0", + "mongoose": "5.7.3", + "mongoose-hidden": "1.8.1", + "morgan": "1.9.1", + "nodemailer": "6.3.0", + "nodemailer-sendgrid": "1.0.3", + "nodemailer-wellknown": "0.2.3", + "nuxt": "2.11.0", + "passport": "0.4.1", + "passport-http": "0.3.0", + "passport-http-bearer": "1.0.1", + "passport-local": "1.0.0", + "passport-oauth2-client-password": "0.1.2", + "probe-image-size": "4.0.0", + "promisify-child-process": "3.1.1", + "pug": "2.0.4", + "puppeteer": "1.20.0", + "qs": "6.9.0", + "rand-token": "0.4.0", + "rc": "1.2.8", + "request": "2.88.0", + "segfault-handler": "1.3.0", + "serve-favicon": "2.4.3", + "sharp": "0.22.1", + "socks": "2.4.1", + "speakingurl": "14.0.1", + "ssh2-sftp-client": "5.1.2", + "throng": "4.0.0", + "validator": "10.11.0", + "vue-i18n": "8.15.3", + "vuelidate": "0.7.4" + }, + "devDependencies": { + "@babel/core": "7.6.2", + "@babel/preset-env": "7.6.2", + "aliasify": "2.0.0", + "ansi-colors": "3.2.4", + "async": "2.6.2", + "autoprefixer": "9.6.4", + "autoprefixer-core": "6.0.1", + "babel-loader": "8.0.6", + "babelify": "10.0.0", + "beeper": "2.0.0", + "blueimp-canvas-to-blob": "3.16.0", + "blueimp-file-upload": "9.30.0", + "blueimp-load-image": "2.24.0", + "browserify": "16.2.3", + "browserify-shim": "3.8.14", + "browserify-versionify": "1.0.6", + "connect-livereload": "0.6.1", + "console-browserify": "1.1.0", + "cropperjs": "1.5.6", + "csswring": "7.0.0", + "default-passive-events": "1.0.10", + "del": "4.1.1", + "envify": "4.0.0", + "evol-colorpicker": "3.4.1", + "fancy-log": "1.3.3", + "glob": "7.1.4", + "gm": "1.23.1", + "gulp": "4.0.2", + "gulp-beautify": "3.0.0", + "gulp-bump": "3.1.3", + "gulp-clean-css": "4.2.0", + "gulp-concat": "2.6.0", + "gulp-filter": "5.0.0", + "gulp-if": "2.0.1", + "gulp-less": "4.0.1", + "gulp-load-plugins": "1.5.0", + "gulp-order": "1.2.0", + "gulp-plumber": "1.2.1", + "gulp-postcss": "8.0.0", + "gulp-prettier": "2.1.0", + "gulp-pug": "4.0.1", + "gulp-purge-sourcemaps": "1.0.0", + "gulp-rename": "1.4.0", + "gulp-replace": "1.0.0", + "gulp-sourcemaps": "2.6.5", + "gulp-strip-debug": "3.0.0", + "gulp-uglify": "3.0.2", + "inquirer": "6.3.1", + "jasmine-core": "3.5.0", + "jasmine-node": "1.16.2", + "jquery": "3.4.1", + "jquery-file-upload-middleware": "0.1.8", + "jquery-migrate": "3.1.0", + "jquery-ui-package": "1.11.4", + "jquery-ui-touch-punch": "0.2.3", + "jquery.iframe-transport": "1.0.0", + "jsep": "0.3.4", + "jshint-stylish": "2.2.1", + "juice": "5.2.0", + "knockout": "3.5.0", + "knockout-jqueryui": "2.2.4", + "knockout-sortable": "1.1.1", + "ko-reactor": "1.4.1", + "lazypipe": "1.0.2", + "license-checker": "25.0.1", + "lodash.debounce": "4.0.8", + "lodash.find": "4.6.0", + "lodash.omit": "4.5.0", + "maildev": "1.1.0", + "material-design-icons-iconfont": "5.0.1", + "mensch": "0.3.3", + "merge-stream": "1.0.1", + "mockery": "2.1.0", + "nodemon": "1.19.3", + "npm-run-all": "4.1.5", + "parallelshell": "3.0.1", + "prettier": "1.18.2", + "pug-loader": "2.4.0", + "readline": "1.3.0", + "sass-loader": "8.0.0", + "slick": "1.12.2", + "through2": "3.0.1", + "tinycolor2": "1.4.1", + "tinymce": "4.5.8", + "toastr": "2.1.4", + "uglifyify": "5.0.2", + "url": "0.11.0", + "vinyl": "2.2.0", + "vinyl-buffer": "1.0.0", + "vinyl-source-stream": "2.0.0", + "vue": "2.6.11", + "vue-loader": "15.9.0", + "vue-template-compiler": "2.6.11", + "vuepress": "1.3.1", + "watchify": "3.11.1", + "webpack-cli": "3.3.9", + "which": "1.3.1", + "yargs": "13.2.2" + }, + "author": "Stefano Bagnara", + "contributors": [ + "Stefano Bagnara", + "Yannick Aivayan (https://github.com/hiswe)" + ], + "license": "GPL-3.0", + "licenseurl": "https://www.gnu.org/licenses/gpl-3.0.en.html", + "scripts": { + "build": "run-p editor:build ui:build docs:api:build", + "maintenance:build": "gulp maintenance", + "editor:build": "gulp build", + "editor:build:prod": "gulp build --prod", + "ui:build": "nuxt build", + + "dev": "run-p serve:mail serve:dev", + "docs:dev": "vuepress dev ./packages/documentation", + "docs:dev:build": "vuepress build ./packages/documentation", + "docs:api": "yarn docs:api:build && npx http-server ./packages/documentation/api -c-1", + "docs:api:build": "apidoc -i packages/server/ -o ./packages/documentation/api", + "heroku-postbuild": "yarn build", + "prod": "yarn build && yarn serve:prod", + "start": "yarn serve:app", + "serve:app": "node packages/server/workers.js", + "serve:dev": "nodemon packages/server/workers.js --config packages/server/nodemon.json", + "serve:mail": "maildev", + "serve:prod": "export NODE_ENV=production && yarn serve:app" + }, + "engines": { + "node": ">=10.15.3 <11.0.0", + "yarn": ">=1.12.1" + } +} diff --git a/packages/documentation/.vuepress/config.js b/packages/documentation/.vuepress/config.js new file mode 100644 index 00000000..1aea49b4 --- /dev/null +++ b/packages/documentation/.vuepress/config.js @@ -0,0 +1,12 @@ +module.exports = { + themeConfig: { + sidebar: `auto`, + sidebarDepth: 1, + nav: [ + { text: 'Home', link: '/index.md' }, + { text: 'development', link: '/development.md' }, + { text: 'mosaico', link: '/mosaico.md' }, + { text: 'hosting', link: '/heroku-configuration.md' }, + ], + }, +} diff --git a/packages/documentation/badsender-architecture.svg b/packages/documentation/badsender-architecture.svg new file mode 100644 index 00000000..ce6d30e6 --- /dev/null +++ b/packages/documentation/badsender-architecture.svg @@ -0,0 +1 @@ +mongoDBexpressJSNuxtJSMosaicoStandalone front applicationBuild with Gulp + BrowserifyPersist/retrieve imagesget template & mailingdata at Mosaico formatcall specific endpointspassed in Mosaico´sinitialisation configurationPersist/retrieve dataUniversal application (front/back)Build with Nuxt (webpack)APIAmazon S3 diff --git a/packages/documentation/development.md b/packages/documentation/development.md new file mode 100644 index 00000000..bc4c37a8 --- /dev/null +++ b/packages/documentation/development.md @@ -0,0 +1,143 @@ +--- +title: Development +lang: en-US +--- + +## Dev prerequisite + +- [NodeJS 10](https://nodejs.org/en/) +- [Yarn v1.13.0](https://yarnpkg.com/en/) +- [MongoDB >= v3.4.18](https://www.mongodb.com/) + - if installed locally `mongod` to start + - `brew install mongodb@3.4` on mac + - for DB migration see [this post](https://stackoverflow.com/questions/51227939/using-brew-upgrade-mongo-update-from-3-4-to-4-0-error-the-data-files-need-to-be) +- a SMTP server ([maildev](https://github.com/djfarrelly/MailDev) will be installed for you) +- [sharp](http://sharp.dimens.io/en/stable/) should work out the box most of the time. In case of troubles see [sharp installation instructions](http://sharp.dimens.io/en/stable/install/). MacOs will need XCode in order to compile. + +You need to have: + +- clone/fork the project +- in your terminal, go in the folder +- run `yarn install` in the root folder + +## Updating the code + +It should have a default config for dev already setup. +If you want to change some, create `.badsenderc` at the root of the project then fill with the values you want to overrride as described in the `.badsenderrc-example` + +those are the main developer commands: + +### Build the project for _production_ + +``` +yarn build +``` + +### Start a server configured for _production_ + +``` +yarn start +``` + +server will be running on `localhost:3000` + +### Build and start a _production_ server + +``` +yarn prod +``` + +### Build and start a _development_ server + +``` +yarn dev +``` + +- server will be running on `localhost:3000` +- server will be restarted on files changes +- build will be updated on files changes also + +### Generate the API Documentation + +``` +yarn build:documentation +``` + +### Show this documentation with [VuePress](https://vuepress.vuejs.org/) + +This documentation can be served in a cleaner way with following command: + +``` +yarn build:documentation +``` + +Documentation will be served on [http://localhost:8080/](http://localhost:8080/) + +### Make a release + +You can make a release of any branch. +On heroku: + +- the following will yarn script will be used to build `yarn heroku-postbuild` +- after that the server will be launched with the content of the `Procfile` + +#### legacy release (deprecated) + +Prior to the Nuxt Version a custom script was passed: +It builds the application on the `build` branch (thus the existence of this build branch) + +It's no longer relevant + +### Databases scripts + +`.badsenderrc` should be provided with _dbConfigs_ infos. See `.badsenderrc-example` for more informations + +#### sync-db + +- can copy one DB into another +- can also copy a snapshot saved in `images.tmpDir` (see below) into another + +``` +yarn sync-db +``` + +#### backup-db + +- will save a snapshot of the specified DB in the folder defined by `images.tmpDir` config + +``` +yarn backup-db +``` + +#### local-db + +- save a _local db_ snapshot +- restore it later + +``` +yarn local-db +``` + +### S3 notes + +This is some script to backup a bucket or sync a bucket from a backup. +This is mostly use for development purpose. + +#### requirements + +- [aws cli](http://docs.aws.amazon.com/cli/latest/reference/) – `brew install awscli` on a mac +- `.badsenderc` filled with s3Configs parameters. See `.badsenderrc-example` + +[more details about why we use the aws cli](http://stackoverflow.com/questions/17832860/backup-strategies-for-aws-s3-bucket#answer-32927276) + +#### backing up to a local folder + +``` +yarn backup-s3 +``` + +#### syncing a bucket from a local folder + +``` +yarn sync-s3 +``` diff --git a/packages/documentation/heroku-configuration.md b/packages/documentation/heroku-configuration.md new file mode 100644 index 00000000..e95f17af --- /dev/null +++ b/packages/documentation/heroku-configuration.md @@ -0,0 +1,161 @@ +--- +title: Heroku configuration +lang: en-US +--- + +# heroku server configuration + +## buildpack + +In order for the image resize & the templates' preview generation to work you will need those build packs IN THAT ORDER: + +- https://github.com/jontewks/puppeteer-heroku-buildpack.git +- heroku/nodejs + +Copy and paste those url in the `Buildpacks` section of `Settings` + +This has to be done BEFORE any deploy + +## heroku features + +you need to enable [session affinity](https://devcenter.heroku.com/articles/session-affinity). + +```sh +heroku features:enable http-session-affinity +``` + +## resources + +The following are Heroku's Resources. +They provide an easy way to install all necessary service but can be omitted if an identical service is provided outside Heroku. + +### mongolab + +[mongolab addon's detail](https://devcenter.heroku.com/articles/mongolab) + +### sendgrid + +[sendgrid addon's detail](https://devcenter.heroku.com/articles/sendgrid) + +### logentries + +[logentries addon's detail](https://devcenter.heroku.com/articles/logentries) + +**You should disable High Response Time** +This will error with [SSE events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) even if there isn't any issue. +Go to `Tags and alerts` and un-check the corresponding line. + +## configuring heroku environments variables + +- go in the settings of your application +- click on `settings` +- click on `Reveal Config Vars` +- variables name should follow this pattern: + +``` +badsender_emailOptions__from +``` + +- always put `badsender_` first +- then each level of config should be seperate with a double underscore: `__` +- see `.badsenderrc-example` on the master branch for the config requirements + +below are the common environments variables you should want to set: + +### mail sending + +``` +badsender_emailTransport__service Mailjet +badsender_emailTransport__auth__user your Username (or API key) +badsender_emailTransport__auth__pass your password (or Secret Key) +``` + +badsender_emailTransport\_\_service is for [nodemailer-wellknown](https://www.npmjs.com/package/nodemailer-wellknown) configuration + +### from email address + +``` +badsender_emailOptions__from Badsender Builder +``` + +### MongoDB database + +the path to your mongoDB instance + +``` +badsender_database mongodb://localhost/badsender +``` + +### Admin password + +``` +badsender_admin__password a password of your choice +``` + +### Hostname + +The domain name of your app + +``` +badsender_host badsender-test.herokuapp.com +``` + +### AWS S3 + +Those are the keys you should set for aws + +``` +badsender_storage__type aws +badsender_storage__aws__accessKeyId 20 characters key +badsender_storage__aws__secretAccessKey 40 characters secret key +badsender_storage__aws__bucketName your bucket name +badsender_storage__aws__region region of your bucket (ex: ap-southeast-1) +``` + +#### getting an AWS id + +[console.aws.amazon.com/iam](https://console.aws.amazon.com/iam) -> **create new access key** + +#### creating the bucket + +[console.aws.amazon.com/s3](https://console.aws.amazon.com/s3) -> **create bucket** + +you have also to set the good policy for the bucket: + +**Properties** -> **Permissions** -> **Add bucket policy** + +and copy and paste this: + +```json +{ + "Version": "2008-10-17", + "Statement": [ + { + "Sid": "AllowPublicRead", + "Effect": "Allow", + "Principal": { + "AWS": "*" + }, + "Action": "s3:GetObject", + "Resource": "arn:aws:s3:::YOURBUCKETNAME/*" + } + ] +} +``` + +then replace `YOURBUCKETNAME` by your real bucket name + +### Other config + +```js +// redirect any http request to https +forcessl: false, +images: { + // needed only if not using S3 image storage + uploadDir: 'uploads', + // tmp directory name for image upload + tmpDir: 'tmp', + // cache resized images & add cache-control to image request + cache: false, +}, +``` diff --git a/packages/documentation/index.md b/packages/documentation/index.md new file mode 100644 index 00000000..54d30072 --- /dev/null +++ b/packages/documentation/index.md @@ -0,0 +1,110 @@ +# Badsender email builder + +The badsender application is build around [Voidlabs' Mosaico mailing editor](https://github.com/voidlabs/mosaico) +**Voidlabs' Mosaico** is a standalone front application build upon [Knockout](https://knockoutjs.com/) + +The **Mosaico editor** is build around two main key concepts: + +- **template:** an HTML file that will define any interactive blocks & their data representation +- **mailing:** a JSON object based on the template used + +The **Badsender's backend** will: + +- persist **templates** & **mailings** +- handle **users** +- handle rights to templates & mailings via the concept of **groups** +- handle **images storage** + +The **Badsender's backend** is build upon [NuxtJS](https://nuxtjs.org/)/[VueJS](https://vuejs.org/), [ExpressJS](https://expressjs.com/) & [MongoDB](https://www.mongodb.com/) + +![badsender architecture](./badsender-architecture.svg) + +## files organization + +### inherited folders & files from mosaico + +| Name | mosaico's scope | +| -------------------------------- | ------------------------------------ | +| packages/editor/CONTRIBUTING.md | contributing guidelines | +| packages/editor/LICENSE | | +| packages/editor/NOTICE.txt | editor dependencies license | +| packages/editor/README.md | original mosaicos's README | +| packages/editor/appveyor.yml | | +| packages/editor/backend | simple development backend | +| res | editor statics | +| packages/editor/server-config.js | simple testing backend configuration | +| packages/editor/spec | app test files | +| packages/editor/src | front application source files | +| packages/editor/templates | mosaico's template | + +### Express/Nuxt application + +| Name | mosaico's scope | +| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| packages/server | all the files for back server, scoped by domain (Express) | +| packages/ui | all the files for front (Nuxt) | +| packages/documentation | all documentation relative to Badsender's code | +| packages/documentation/api | API doc generated by [apiDoc](https://apidocjs.com/) with the command `build:api-documentation` | +| gulpfile | build script replacement for the Grunfile.
This allowed us to fine-tune the build process without mangling with the original script | +| node.config.js | all configuration variables (handled by [rc package](https://www.npmjs.com/package/rc)) | +| nuxt.config.js | The [nuxt configuration](https://nuxtjs.org/api/configuration-build)
use some variables of the node.config.js | +| .nvmrc | The [nvm (Node Version Manager)](https://github.com/nvm-sh/nvm) configuration file | +| Procfile | [Heroku file](https://devcenter.heroku.com/articles/procfile) to launch server process | + +## API documentation + +will be exposed on the route `/api/documentation` + +## Editor's editable mobile preview + +Mosaico give us the ability to preview a mobile template. +It does that by rendering the HTML in a iFrame. + +In order to enable it on the editable part we rely on some _hacks_: + +- Mosaico add `.is-mobile-preview` or `.is-desktop-preview` classes to the `#page` in accordance to the preview button state +- Mosaico was modified to prevent the automatic `#main-wysiwyg-area` scoping to the template class if `#main-wysiwyg-area` is already found in the rule + + - the automatic style scoping prevent styles coming from the template to leak in the editor + - this is not the case in the iFrame preview (already scoped by the iFrame) + +In order to achieve a coherent rendering between the preview & the editable part you will need in your templates to: + +- copy the content of your media queries +- duplicate them in class scoped by `.is-mobile-preview #main-wysiwyg-area` or `.is-desktop-preview #main-wysiwyg-area` + +Those classes are not (yet) remove during download + +## templates preview & block thumbs + +### controlling the template display + +From the [creator answer](https://github.com/voidlabs/mosaico/issues/246) + +> […][data-ko-display](https://github.com/voidlabs/mosaico/wiki/Template-language#data-ko-attributes) will remove any `display: none` style from the element it is applied to. […] So your "html" can be opened in a browser and show you a correct version of your template […]. +> +> **The "thumbnailer" task also add a `preview` class to the body of your template before previewing.** This means that you can even add custom CSS styles that will only be applied during the preview, e.g: +> +> ```html +> +> ``` +> +> This style will be removed by mosaico, but will be used by the thumbnailer. + +### on the server + +just go on the template page & click on `generate preview` + +### in local + +mailing should be under the `/templates` folder + +``` +yarn thumbnail +``` + +thumbnails will be generated in the `edres` mailing folder diff --git a/packages/documentation/mosaico.md b/packages/documentation/mosaico.md new file mode 100644 index 00000000..e57a267d --- /dev/null +++ b/packages/documentation/mosaico.md @@ -0,0 +1,70 @@ +# Mosaico Editor + +[original repository](https://github.com/voidlabs/mosaico) + +Mosaico's Editor is based on [Knockout](https://knockoutjs.com/) +It's served as a standalone front application. + +## Serving the Editor + +The editor is rendered by a specific express controller: +`packages/server/controllers/mailings/mosaico-editor.js` + +You'll find the base HTML file at: +`packages/server/html-templates/mosaico-editor.pug` + +It's here that we pass any endpoints URL & data to Mosaico + +## Build & extensions + +Mosaico's editor has been enhanced during Badsender's development. +This was done by: + +- tweaking the [Browserify's build](http://browserify.org/demos.html) in the gulpfile. +- writing some extensions. + +Mosaico's Editor is extendable by design (see `src/js/ext/badsender-extensions.js`) +All Badsender's extensions are prefixed by `badsender-`. +Any Badsender's code will also be transformed by [BabelJS](https://babeljs.io/). + +We rely on 2 environments variables to clean up the bundle: + +- `process.env.MOSAICO`: this will be removed from the bundle +- `process.env.BADSENDER`: this will be kept + +This allow us to keep the diff from the original code as low as possible + +## Templates and models + +Mosaico's template define the blocks & the data model: + +- It will parse any `@supports -ko-blockdefs {}` CSS rules to deduce which kind of widgets & data representation the template supports. +- Then in the HTML any `data-ko-block="blockName"` will be transformed to a block on the left side. +- Any binding inside those blocks will use `-ko-blockdefs` widgets to define the data representation inside that block. + **this is what will be persisted in the DB under the _data_ key in the collection** + +## Download & preview + +Since only the JSON data are saved in DB, in order to get the HTML, you'll need to: + +- load the editor +- use the `viewModel.exportHTML`: + this will render in the browser the mailing according to its data & the template + (look at `src/js/viewmodel.js`) +- call a Backend route with HTML content +- then the HTML will be processed again in the `packages/server/controllers/mailings/download-zip.js` controller + +## Basic front initialisation flow + +The entry point is `src/js/app.js` + +- init +- start + +in `src/js/template-loader.js` + +- templateLoader: Ajax datas +- templateCompiler: + - Initialize viewmodel (./viewmodel.js) + - Add server datas + - apply plugins (server-storage, setEditorIcon + mosaico defined) diff --git a/packages/editor/CONTRIBUTING.md b/packages/editor/CONTRIBUTING.md new file mode 100644 index 00000000..a5d2a0cd --- /dev/null +++ b/packages/editor/CONTRIBUTING.md @@ -0,0 +1,33 @@ +### Are you having issues with Mosaico? + +Please make sure: +- you understand you have to build it and to run a backend server (either the node.js version bundled with this project or the php backend referenced above or write your own) +- you read this Readme *three* times and followed the instructions +- you understand I'll close any GitHub issue with insufficient information: if you want help then you'll have to take your time to explain your issue. +- you don't ask for a binary/executable to be used as a standalone desktop application +- you understand you can't simply open index.html/editor.html and expect it to work if you don't build the library and don't run a backend server and access that files through the webserver. +- you don't add off topic comments to an existing issue: if you want to add that you are having the same issue please make sure you are having the same issue described. If you are unsure, open a new issue following the rules (we prefer a duplicated issue than a chaotic issue mixing unrelated things). + +##### issues building: +- take note of the full log of your npm install, and grunt commands output +- open a GitHub issues saying that you read this doc +- paste the output from npm install and grunt +- write your full environment (your operative system name and version, your node version, your npm version) + +##### issues running/editing +if your problem is not with the building then when you open a GitHub issue: +- make sure you specify if you are using the bundled backend or php backend or any other kind of deployment +- tell us the browser you are using (name and version) and test at least a *second* browser to tell us if this happen in both or only one (tell us the details about the second browser too). +- test the same scenario on https://mosaico.io and tell us if you see the same issue +- if you are having issues running with Apache then specify you installed the php backend from access interpreting and WHY you think you are having problem with mosaico.js and not with that specific backend (did you try with bundled node.js backend?) + +##### rendering issues with templates generated by Mosaico +- open an issue only if you have a screenshot +- when you open an issue please tell us what template you are using +- tell which email client show the issue (version, name, operative system) +- tell us which backend you are using (the bundled one ran with grunt, the php backend referenced above, or your custom backend). +- if you are sending the email using a different way then most of the times the template gets broken by your way to send it: so try the same thing on mosaico.io and confirm you see the same rendering issues. + +### Want to contribute code? + +Open an Issue, first, and coordinate with us. diff --git a/packages/editor/LICENSE b/packages/editor/LICENSE new file mode 100644 index 00000000..8c89ca89 --- /dev/null +++ b/packages/editor/LICENSE @@ -0,0 +1,680 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + + + ADDITIONAL LICENSES + +This product may include third party code/libraries, see NOTICE.txt for details +on their licensing and copyright. diff --git a/packages/editor/NOTICE.txt b/packages/editor/NOTICE.txt new file mode 100644 index 00000000..36073cff --- /dev/null +++ b/packages/editor/NOTICE.txt @@ -0,0 +1,100 @@ +--------------------- +Built-in Dependencies +--------------------- + +These dependencies are included in the distributed Mosaico library + dist/mosaico.min.js and dist/mosaico.min.css +by an aggregator process named "Browserify" + +Browserify (Library "Assembler" targeting the browser): +- MIT License, Copyright Joyent, Inc. and other Node contributors. +> os-browserify: +- MIT License, Copyright (c) 2014 Drew Young +> assert: +- MIT License, Copyright (c) shtylman +> util: +- MIT License, Copyright (c) Joyent (http://www.joyent.com) +> inherit: +- ISC License, Copyright (c) Isaac Z. Schlueter +> process: +- MIT License, Copyright (c) 2013 Roman Shtylman +> console-browserify: +- MIT License, Copyright (c) 2012 Raynos + +Knockout-Sortable (Knockout Bindings to jQueryUI Sortable): +- MIT License, Copyright (c) 2015 Ryan Niemeyer + +Knockout-UndoManager (Undo Library): +- MIT License, Copyright (c) 2015 Stefano Bagnara + +Knockout-Reactor (Knockout value tracking used by Knockout-UndoManager): +- MIT License, Copyright (c) Ziad Jeeroburkhan + +TinyColor (Color manipulation library): +- MIT License, Copyright (c) Brian Grinstead + (http://briangrinstead.com)", + +Toastr (Toast notifications): +- MIT License, Copyright (c) 2012-2015 John Papa, Hans Fj�llemark, and Tim Ferrell + +Evol-Colorpicker (Color picker): +- MIT License, Copyright (c) 2015 Olivier Giulieri + +Juice (CSS Inliner): +- MIT License, Copyright (c) Guillermo Rauch, Arian Stolwijk, Pawel Marzec, + Andrew Kelley, Francois-Guillaume Ribreau + +Slick (selector parser used by Juice): +- MIT License, Copyright (c) Shashank Mehta + (http://shashankmehta.in) + +JSEP (expression engine): +- MIT License, Copyright (c) Stephen Oney (http://from.so/) + +Mensch (CSS parser used by Mosaico and Juice): +- MIT License, Copyright (c) Brett Stimmerman + +---------------------------- +Runtime Bundled Dependencies +---------------------------- + +public/lang (Language Files): +- CC-BY-4.0 License, Copyright (c) Translation contributors listed at public/lang/README.md + +public/vendor/skins (Custom TinyMCE Skin): +- GPL v2.1 License + +public/img (Proprietary image resources): +- GPLv3 License + +----------------------------- +Runtime External Dependencies +----------------------------- + +These dependencies are not included in Mosaico but are used at runtime and are +expected to be found in the running environment (browser) + +jQuery, jQueryUI: +- MIT License + +Knockout: +- MIT License + +Knockout-jQueryUI: +- MIT License + +jQuery-File-Upload: +- MIT License + +-------------------------------------- +Runtime External Optional Dependencies +-------------------------------------- + +Font NotoSans (in order to enable "Material style" font face): +- Apache License, version 2.0 + +jQuery UI Touch Punch (to support touch events in addition to mouse events): +- MIT License + +TinyMCE v4.x (to support WYSIWYG contextual editing of text): +- LGPL v2.1 diff --git a/packages/editor/README.md b/packages/editor/README.md new file mode 100644 index 00000000..3749ce81 --- /dev/null +++ b/packages/editor/README.md @@ -0,0 +1,72 @@ +# Mosaico - Responsive Email Template Editor + +Mosaico is a JavaScript library (or maybe a single page application) supporting the editing of email templates. +The great thing is that Mosaico itself does not define what you can edit or what styles you can change: this is defined by the template. This makes Mosaico very flexible. + + +![Mosaico Screenshot](public/img/screenshot.png) + + +At this time we provide a single "production ready" template to illustrate some best practice examples: more templates will come soon! Have a look at [Template Language](https://github.com/voidlabs/mosaico/wiki/Template-language) and get in touch with us if you want to make your email html template "Mosaico ready". + +### Live demo + +On https://mosaico.io you can see a live demo of Mosaico: the live deploy has a custom backend (you don't see it) and some customization (custom Moxiemanager integration for image editing, customized onboarding slideshow, contextual menu, and some other small bits), but 95% of what you see is provided by this opensource library. You will also see a second working template there (versafluid) that is not part of the opensource distribution. + +#### News + +Subscribe to our newsletter to get updates: https://mosaico.voxmail.it/user/register + +### More Docs from the Wiki + +[Mosaico Basics](https://github.com/voidlabs/mosaico/wiki) + +[Developer Notes](https://github.com/voidlabs/mosaico/wiki/Developers) + +### Build/Run with the development backend [![Build Status](https://travis-ci.org/voidlabs/mosaico.svg)](https://travis-ci.org/voidlabs/mosaico) + +You need NodeJS v6.0 or higher + ImageMagick + +Download/install the dependencies (run again if you get an error, as it probably is a race issues in npm) +``` + npm install +``` +if you don't have it, install grunt-cli globally +``` + npm install -g grunt-cli +``` +compile and run a local webserver (http://127.0.0.1:9006) with incremental build and livereload +``` + grunt +``` +*IMPORTANT* in order to use image uploading/processing feature in Node you need imageMagick installed in your environment. +e.g. running "convert" and "identify" on the command line should output imageMagick command line help (if you are on Windows and install imageMagick 7.x then make sure to install ["legacy utilities"](https://github.com/aheckmann/gm/issues/559)). + +*NOTE* we have reports that default Ubuntu node package have issues with building Mosaico via Grunt. If you see a ```Fatal error: watch ENOSPC``` then have a look at https://github.com/voidlabs/mosaico/issues/82 + +### Docker + +We bundle a Dockerfile based on Alpine linux and another based on Centos 7 to test mosaico with no need to install dependencies. +``` +docker build -t mosaico/mosaico . +docker run -p 9006:9006 mosaico/mosaico +``` +then open a browser to point to the port 9006 of your docker machine IP. + +### Deploying Mosaico via Apache PHP or Django or something else? + +First you have to build it using grunt, then you MUST read [Serving Mosaico](https://github.com/voidlabs/mosaico/wiki/Serving-Mosaico). + +### OpenSource projects including/using Mosaico + +[MailTrain](https://github.com/Mailtrain-org/mailtrain) is a full featured newsletter web application written in Node and support email editing via Mosaico since their 1.23.0 release. + +[GoodEnough's Mosaico](https://github.com/goodenough/mosaico-backend) born as a Mosaico fork, now have become a full web application product built around Mosaico editing targeting agencies. + +### Are you having issues with Mosaico? + +See the [CONTRIBUTING file](https://github.com/voidlabs/mosaico/blob/master/CONTRIBUTING.md) + +### Contact Us + +Please contact us if you have ideas, suggestions or, even better, you want to collaborate on this project ( feedback at mosaico.io ) or you need COMMERCIAL support ( sales at mosaico.io ) . Please DON'T write to this email to get free support: use Git issues for that, start the issue subject with "[help] " prefix, and write something to let us know you already read the CONTRIBUTING file. diff --git a/packages/editor/appveyor.yml b/packages/editor/appveyor.yml new file mode 100644 index 00000000..24455f0a --- /dev/null +++ b/packages/editor/appveyor.yml @@ -0,0 +1,27 @@ +environment: + matrix: + - nodejs_version: "6" + - nodejs_version: "7" + - nodejs_version: "8" + +platform: + - x86 + - x64 + +# Install scripts. (runs after repo cloning) +install: + # Get the latest stable version of Node.js or io.js + - ps: Install-Product node $env:nodejs_version + # install modules + - npm install + +# Post-install test scripts. +test_script: + # Output useful info for debugging. + - node --version + - npm --version + # run tests + - npm test + +# Don't actually build. +build: off \ No newline at end of file diff --git a/packages/editor/backend/README.txt b/packages/editor/backend/README.txt new file mode 100644 index 00000000..c0ceca83 --- /dev/null +++ b/packages/editor/backend/README.txt @@ -0,0 +1,23 @@ +This is a very simple backend to be used in a DEVELOPMENT environment. + +Provides the following services: + +/dl + receives a post with the html body and a parameter asking for "download" or "email". + (it does inlining using Styliner) since Mosaico 0.15 CSS inlining happens in the client. + if asked to send an email it sends it using nodemailer + +/upload + GET returns a JSON list of previously uploaded images + POST to upload images (using the jQuery-file-upload protocol) + when uploading it also create thumbnails for each uploaded image. + +/img + GET with src, method and params query values + method can be "placeholder", "cover" or "resize" + "placeholder" will return a placeholder image with the given width/height (encoded in params as "width,height") + "cover" will resize the image keeping the aspect ratio and covering the whole dimension (cutting it if different A/R) + "resize" can receive one dimension to resize while keeping the A/R, or 2 to resize the image to be inside the dimensions. + this uses "gm" library to do manipulation (you need ImageMagick installed in your system). + +This currently doesn't provide any authentication or security options, so don't use this in production! diff --git a/packages/editor/backend/main.js b/packages/editor/backend/main.js new file mode 100644 index 00000000..5937d647 --- /dev/null +++ b/packages/editor/backend/main.js @@ -0,0 +1,173 @@ +"use strict"; +/* global module: false, console: false, __dirname: false, process: false */ + +var express = require('~/editor/backend/express'); +var upload = require('~/editor/backend/jquery-file-upload-middleware'); +var bodyParser = require('~/editor/backend/body-parser'); +var fs = require('fs'); +var _ = require('~/editor/backend/lodash'); +var app = express(); +var gmagic = require('~/editor/backend/gm'); +var gm = gmagic.subClass({imageMagick: true}); +var config = require('../server-config.js'); +var extend = require('util')._extend; +var url = require('url'); + +app.use(require('~/editor/backend/connect-livereload')({ ignore: [/^\/dl/, /^\/img/] })); +// app.use(require('morgan')('dev')); + +app.use(bodyParser.json({limit: '5mb'})); +app.use(bodyParser.urlencoded({ // to support URL-encoded bodies + limit: '5mb', + extended: true +})); + +var listFiles = function (req, options, callback) { + + var files = []; + var counter = 1; + var finish = function () { + if (!--counter) + callback(files); + }; + + var uploadHost = req.protocol + '://' + req.get('host'); + + fs.readdir(options.uploadDir, _.bind(function (err, list) { + _.each(list, function (name) { + var stats = fs.statSync(options.uploadDir + '/' + name); + if (stats.isFile()) { + var file = { + name: name, + url: uploadHost + options.uploadUrl + '/' + name, + size: stats.size + }; + _.each(options.imageVersions, function (value, version) { + counter++; + fs.exists(options.uploadDir + '/' + version + '/' + name, function (exists) { + if (exists) + file.thumbnailUrl = uploadHost + options.uploadUrl + '/' + version + '/' + name; + finish(); + }); + }); + files.push(file); + } + }, this); + finish(); + }, this)); +}; + +var uploadOptions = { + tmpDir: '.tmp', + uploadDir: './uploads', + uploadUrl: '/uploads', + imageVersions: { thumbnail: { width: 90, height: 90 } } +}; + +app.get('/upload/', function(req, res) { + listFiles(req, uploadOptions, function (files) { + res.json({ files: files }); + }); +}); + +app.use('/upload/', upload.fileHandler(uploadOptions)); + +// imgProcessorBackend + "?src=" + encodeURIComponent(src) + "&method=" + encodeURIComponent(method) + "¶ms=" + encodeURIComponent(width + "," + height); +app.get('/img/', function(req, res) { + + var params = req.query.params.split(','); + + if (req.query.method == 'placeholder') { + var out = gm(params[0], params[1], '#707070'); + res.set('Content-Type', 'image/png'); + var x = 0, y = 0; + var size = 40; + // stripes + while (y < params[1]) { + out = out + .fill('#808080') + .drawPolygon([x, y], [x + size, y], [x + size*2, y + size], [x + size*2, y + size*2]) + .drawPolygon([x, y + size], [x + size, y + size*2], [x, y + size*2]); + x = x + size*2; + if (x > params[0]) { x = 0; y = y + size*2; } + } + // text + out.fill('#B0B0B0').fontSize(20).drawText(0, 0, params[0] + ' x ' + params[1], 'center').stream('png').pipe(res); + + } else if (req.query.method == 'resize' || req.query.method == 'cover') { + // NOTE: req.query.src is an URL but gm is ok with URLS. + // We do parse it to localpath to avoid strict "securityPolicy" found in some ImageMagick install to prevent the manipulation + var urlparsed = url.parse(req.query.src); + var src = "./"+decodeURI(urlparsed.pathname); + + var ir = gm(src); + ir.format(function(err,format) { + if (!err) { + res.set('Content-Type', 'image/'+format.toLowerCase()); + if (req.query.method == 'resize') { + ir.autoOrient().resize(params[0] == 'null' ? null : params[0], params[1] == 'null' ? null : params[1]).stream().pipe(res); + } else { + ir.autoOrient().resize(params[0],params[1]+'^').gravity('Center').extent(params[0], params[1]+'>').stream().pipe(res); + } + } else { + console.error("ImageMagick failed to detect image format for", src, ". Error:", err); + } + }); + + } + +}); + +app.post('/dl/', function(req, res) { + var response = function(source) { + + if (req.body.action == 'download') { + res.setHeader('Content-disposition', 'attachment; filename=' + req.body.filename); + res.setHeader('Content-type', 'text/html'); + res.write(source); + res.end(); + } else if (req.body.action == 'email') { + var nodemailer = require('~/editor/backend/nodemailer'); + var transporter = nodemailer.createTransport(config.emailTransport); + + var mailOptions = extend({ + to: req.body.rcpt, // list of receivers + subject: req.body.subject, // Subject line + html: source // html body + }, config.emailOptions); + + transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error); + res.status(500).send('Error: '+error); + res.write('ERR'); + } else { + console.log('Message sent: ' + info.response); + res.send('OK: '+info.response); + } + }); + } + + }; + + response(req.body.html); +}); + + +// This is needed with grunt-express-server (while it was not needed with grunt-express) + +var PORT = process.env.PORT || 3000; + +app.use('/templates', express.static(__dirname + '/../packages/editor/templates')); +app.use('/uploads', express.static(__dirname + '/../uploads')); +app.use(express.static(__dirname + '/../dist/')); + +var server = app.listen( PORT, function() { + var check = gm(100, 100, '#000000'); + check.format(function (err, format) { + if (err) console.error("ImageMagick failed to run self-check image format detection. Error:", err); + }); + console.log('Express server listening on port ' + PORT); +} ); + +// module.exports = app; diff --git a/packages/editor/build/templates.js b/packages/editor/build/templates.js new file mode 100644 index 00000000..a3475dea --- /dev/null +++ b/packages/editor/build/templates.js @@ -0,0 +1,19 @@ +var templateSystem = require('../src/js/bindings/choose-template.js'); +document.addEventListener('DOMContentLoaded', function(event) { + templateSystem.addTemplate("array", ""); + templateSystem.addTemplate("block-show", ""); + templateSystem.addTemplate("block-wysiwyg", "
"); + templateSystem.addTemplate("blocks-show", ""); + templateSystem.addTemplate("blocks-wysiwyg", "
"); + templateSystem.addTemplate("customstyle", "
  • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
  • A "small cube" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
  • ')\x22>Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \x22small cube\x22 icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    "); + templateSystem.addTemplate("empty", ""); + templateSystem.addTemplate("error", "[
    ]"); + templateSystem.addTemplate("img-wysiwyg", "
    size
    Drop an image here
    PRELOADING....
    "); + templateSystem.addTemplate("main", "
    UNDO REDO RESET # creation name # EXPORT debug LOAD BLOCKS [subs] toolbox
    SALVA TEST # download buttons #
    # dialog image selection #
    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ')\x22> Incompatible template
    Fake image editor

    ')\x22>

    Fake image editor

    \x22mosaico\x22
    Oppps... !!
    "); + templateSystem.addTemplate("dialog-select-image", ""); + templateSystem.addTemplate("download-buttons", "
    DOWNLOAD

    DL CDN

    "); + templateSystem.addTemplate("edit-name", "

    "); + templateSystem.addTemplate("gallery-images", ""); + templateSystem.addTemplate("gallery-upload", "
    Click or drag files here
    "); + templateSystem.addTemplate("toolbox", "
    \x22Block
    Add
    By clicking on message parts you will select a block and content options, if any, will show here
    By clicking on message parts you will select a block and style options, if available, will show here
    div>
    X
    Galleries:
    # mailing gallery fileupload # # load gallery #
    Loading mailing gallery…
    The mailing gallery is empty
    # mailing gallery #
    # mailing template fileupload # # load gallery #
    Loading template gallery...
    The template gallery is empty
    # template gallery #
    X
    Content:
      BlockDefs:  
        Output  Export  Import  
    X
    "); +}); \ No newline at end of file diff --git a/packages/editor/package.json.NOTES b/packages/editor/package.json.NOTES new file mode 100644 index 00000000..14d9c937 --- /dev/null +++ b/packages/editor/package.json.NOTES @@ -0,0 +1,4 @@ +tinymce is "locked" to 4.5.8 because of major issues with the newer releases (still broken in4.8.0) +grunt-release is "locked" to 0.13.1 because 0.14.0 is broken and no new releases have been made since that. +grunt-contrib-compress is locked to 1.3.0 because 1.4.3 introduce iltorb dependency (even if optional) and makes the build instable. +csswring is "locked" to 6.0.3 because 7.0 uses "..." construct and fails to build on older nodes (6,7) \ No newline at end of file diff --git a/packages/editor/server-config.js b/packages/editor/server-config.js new file mode 100644 index 00000000..ca28b421 --- /dev/null +++ b/packages/editor/server-config.js @@ -0,0 +1,12 @@ +// Put here your email sending configurations! +module.exports = { + emailTransport: { + // host: 'yoursmtpserver', + // port: 25, + // auth: { user: '####', pass: '####' } + }, + emailOptions: { + from: 'Mosaico by VOXmail ', // sender address + // bcc: 'mosaico@mosaico.io', + } +}; \ No newline at end of file diff --git a/packages/editor/spec/converter-spec.js b/packages/editor/spec/converter-spec.js new file mode 100644 index 00000000..b27bec64 --- /dev/null +++ b/packages/editor/spec/converter-spec.js @@ -0,0 +1,115 @@ +'use strict'; +/* globals describe: false, it: false, expect: false */ +/* globals process: false, console: false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['../src/js/converter/declarations.js', 'console', './utils.js', './domutils.js', 'console', '../node_modules/mensch']); + +/* +var cheerio = require('cheerio'); +var currentDocument = cheerio.load(''); + +mockery.registerMock('jquery', function() { +console.log("XXXXX", currentDocument); +return currentDocument.apply(currentDocument, arguments); +}); +*/ +mockery.registerMock('jquery', require('cheerio')); + +mockery.registerMock('jsep', require('../node_modules/jsep/src/jsep.js')); +mockery.registerMock('mensch/lib/parser.js', function() { + var parse = require('../node_modules/mensch').parse; + return parse.apply(parse, arguments); +}); +var elaborateDeclarations = require('../src/js/converter/declarations.js'); + +var mockedBindingProvider = function(a, b) { + // console.log("binding provider for", a, b); + return "$" + a + "[" + b + "]"; +}; + +var templateUrlConverter = function(url) { + return url; +} + +describe('Template converter', function() { + + it('should handle basic template conversion', function() { + var modelDef = require('../src/js/converter/model.js'); + var translateTemplate = require('../src/js/converter/parser.js'); + var templates = []; + var $ = require('jquery'); + var myTemplateCreator = function(htmlOrElement, optionalName, templateMode) { + templates.push({ + optionalName: optionalName, + templateMode: templateMode, + html: typeof htmlOrElement == 'object' ? $.html(htmlOrElement) : htmlOrElement + }); + }; + var html = '
    block1
    '; + var templateDef = translateTemplate('template', html, './basepath/', myTemplateCreator); + + var expectedTemplates = [{ + optionalName: 'template', + templateMode: 'show', + html: '
    ' + }, { + optionalName: 'simpleBlock', + templateMode: 'show', + html: '
    ' + }]; + + expect(templates).toEqual(expectedTemplates); + + var model = modelDef.generateResultModel(templateDef); + + var expectedModel = { + type: 'template', + mainBlocks: { + type: 'blocks', + blocks: [] + }, + theme: { + type: 'theme', + bodyTheme: null + } + }; + + expect(model).toEqual(expectedModel); + + // TODO verify template "defs" output + // console.log("RESULT", templateDef); + }); + + it('should handle versafix-1 template conversion', function() { + var modelDef = require('../src/js/converter/model.js'); + var translateTemplate = require('../src/js/converter/parser.js'); + var templates = []; + var $ = require('jquery'); + var myTemplateCreator = function(htmlOrElement, optionalName, templateMode) { + templates.push({ + optionalName: optionalName, + templateMode: templateMode, + html: typeof htmlOrElement == 'object' ? $.html(htmlOrElement) : htmlOrElement + }); + }; + + var fs = require('fs'); + + var templatecode = "" + fs.readFileSync("spec/data/template-versafix-1.html"); + var res = templatecode.match(/^([\S\s]*)([<]html[^>]*>[\S\s]*<\/html>)([\S\s]*)$/i); + if (res === null) throw "Unable to find opening and closing tags in the template"; + var html = res[2].replace(/(<\/?)(html|head|body)([^>]*>)/gi, function(match, p1, p2, p3) { + return p1 + 'replaced' + p2 + p3; + }); + + var templateDef = translateTemplate('template', html, templateUrlConverter, myTemplateCreator); + var model = modelDef.generateResultModel(templateDef); + + var expectedModel = JSON.parse("" + fs.readFileSync("spec/data/template-versafix-1.model.json")); + + expect(model).toEqual(expectedModel); + }); + +}); \ No newline at end of file diff --git a/packages/editor/spec/data/template-versafix-1.blocks.json b/packages/editor/spec/data/template-versafix-1.blocks.json new file mode 100644 index 00000000..7a28fc7e --- /dev/null +++ b/packages/editor/spec/data/template-versafix-1.blocks.json @@ -0,0 +1,541 @@ +[ + { + "type": "logoBlock", + "customStyle": false, + "externalBackgroundVisible": true, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "imageWidth": "258", + "id": "", + "externalBackgroundColor": null, + "externalTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "backgroundColor": null, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + } + }, + { + "type": "sideArticleBlock", + "customStyle": false, + "backgroundColor": null, + "titleVisible": true, + "buttonVisible": true, + "imageWidth": "166", + "imagePos": "left", + "titleTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "buttonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    ", + "buttonLink": { + "type": "link", + "text": "BUTTON", + "url": "" + }, + "id": "", + "externalBackgroundColor": null, + "titleText": "Title" + }, + { + "type": "singleArticleBlock", + "customStyle": false, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "imageWidth": "534", + "titleTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "buttonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    ", + "buttonLink": { + "type": "link", + "text": "BUTTON", + "url": "" + }, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "text": "Section Title" + }, + { + "type": "titleBlock", + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "bigTitleStyle": { + "type": "bigTitleStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "text": "Section Title" + }, + { + "type": "textBlock", + "customStyle": false, + "backgroundColor": null, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    \r\n

    Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    ", + "id": "", + "externalBackgroundColor": null + }, + { + "type": "tripleArticleBlock", + "customStyle": false, + "backgroundColor": null, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "fixedImageHeightVisible": true, + "titleTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "buttonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "leftImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "leftLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "leftButtonLink": { + "type": "buttonLink", + "text": "BUTTON", + "url": "" + }, + "middleImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "middleLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "middleButtonLink": { + "type": "buttonLink", + "text": "BUTTON", + "url": "" + }, + "rightImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "rightLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "rightButtonLink": { + "type": "buttonLink", + "text": "BUTTON", + "url": "" + }, + "id": "", + "externalBackgroundColor": null, + "imageHeight": "90", + "leftTitleText": "Title", + "middleTitleText": "Title", + "rightTitleText": "Title" + }, + { + "type": "doubleArticleBlock", + "customStyle": false, + "backgroundColor": null, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "fixedImageHeightVisible": true, + "titleTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "buttonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "leftImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "leftLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "leftButtonLink": { + "type": "buttonLink", + "text": "BUTTON", + "url": "" + }, + "rightImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "rightLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "rightButtonLink": { + "type": "buttonLink", + "text": "BUTTON", + "url": "" + }, + "id": "", + "externalBackgroundColor": null, + "imageHeight": "100", + "leftTitleText": "Title", + "rightTitleText": "Title" + }, + { + "type": "hrBlock", + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "hrStyle": { + "type": "hrStyle", + "color": null, + "hrWidth": null, + "hrHeight": null + } + }, + { + "type": "buttonBlock", + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "bigButtonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "link": { + "type": "link", + "text": "BUTTON", + "url": "" + } + }, + { + "type": "imageBlock", + "customStyle": false, + "gutterVisible": false, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + } + }, + { + "type": "doubleImageBlock", + "customStyle": false, + "gutterVisible": false, + "fixedImageHeightVisible": true, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "imageHeight": "180", + "rightImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + } + }, + { + "type": "tripleImageBlock", + "customStyle": false, + "gutterVisible": false, + "fixedImageHeightVisible": true, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "imageHeight": "160", + "middleImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "rightImage": { + "type": "image", + "src": "", + "url": "", + "alt": "" + } + }, + { + "type": "bigSocialBlock", + "customStyle": false, + "bigSocialIconType": "rdcol", + "bigSocialIconSize": "48", + "fbVisible": true, + "fbUrl": "", + "twVisible": true, + "twUrl": "", + "ggVisible": true, + "ggUrl": "", + "webVisible": false, + "webUrl": "", + "inVisible": true, + "inUrl": "", + "piVisible": false, + "piUrl": "", + "flVisible": false, + "flUrl": "", + "viVisible": false, + "viUrl": "", + "instVisible": true, + "instUrl": "", + "youVisible": true, + "youUrl": "", + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "longText": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null + }, + { + "type": "shareBlock", + "customStyle": false, + "shareButtonType": "reverse", + "fbVisible": true, + "twVisible": true, + "inVisible": false, + "ggVisible": true, + "piVisible": false, + "customUrl": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "shareButtonStyle": { + "type": "shareButtonStyle", + "face": null, + "iconColorType": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "fbText": "Share\r\n ", + "twText": "Share\r\n ", + "inText": "Share\r\n ", + "ggText": "Share\r\n ", + "piText": "Share\r\n " + }, + { + "type": "spacerBlock", + "customStyle": false, + "externalBackgroundVisible": true, + "id": "", + "externalBackgroundColor": null, + "spacerSize": "24", + "backgroundColor": null + }, + { + "type": "socialBlock", + "customStyle": false, + "socialIconType": "colors", + "fbVisible": true, + "fbUrl": "", + "twVisible": true, + "twUrl": "", + "ggVisible": true, + "ggUrl": "", + "webVisible": false, + "webUrl": "", + "inVisible": false, + "inUrl": "", + "piVisible": false, + "piUrl": "", + "flVisible": false, + "flUrl": "", + "viVisible": false, + "viUrl": "", + "instVisible": false, + "instUrl": "", + "youVisible": false, + "youUrl": "", + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "longText": "

    Address and Contacts

    ", + "backgroundColor": null, + "id": "" + } +] \ No newline at end of file diff --git a/packages/editor/spec/data/template-versafix-1.def.json b/packages/editor/spec/data/template-versafix-1.def.json new file mode 100644 index 00000000..ad6aec7c --- /dev/null +++ b/packages/editor/spec/data/template-versafix-1.def.json @@ -0,0 +1,14760 @@ +{ + "_defs": { + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true + }, + "bodyTheme": { + "_writeable": true, + "_category": "style" + }, + "blocks": { + "_writeable": false, + "_category": "content", + "_name": "Blocks", + "type": "blocks", + "_initialized": true, + "_processedDefs": { + "blocks": "blocks[]" + }, + "_globalStyles": {}, + "_defaultValues": { + "blocks": [] + }, + "blocks": [], + "_complex": true + }, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "template": { + "_writeable": false, + "_context": "template", + "_category": "content", + "_name": "Page", + "_globalStyle": "_theme_.frameTheme", + "_version": "1.1.16", + "type": "template", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "preheaderVisible": "preheaderVisible=true", + "titleText": "titleText", + "preheaderBlock": "preheaderBlock", + "sponsor": "sponsor", + "footerBlock": "footerBlock", + "mainBlocks": "mainBlocks" + }, + "_globalStyles": {}, + "_defaultValues": { + "customStyle": false, + "preheaderVisible": true, + "titleText": "TITLE", + "sponsor.url": "", + "sponsor.alt": "sponsor", + "sponsor.src": "img/sponsor.gif", + "mainBlocks.blocks": "[]" + }, + "customStyle": null, + "_complex": true, + "preheaderVisible": { + "_writeable": false, + "_name": "Show Preheader", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_help": "Preheader block is the first one on the top of the page. It contains web version link and optionally unsubscribe link or a preheader text that will be shown as a preview on some email clients", + "_usecount": 1 + }, + "titleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "hidden", + "type": "titleText", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 9, + "preheaderBlock": { + "_writeable": false, + "_name": "Preheader Block", + "_globalStyle": "_theme_.frameTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "preheaderBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "id": "id", + "backgroundColor": "backgroundColor", + "preheaderText": "preheaderText", + "linkStyle": "linkStyle", + "preheaderLinkOption": "preheaderLinkOption", + "longTextStyle": "longTextStyle", + "unsubscribeText": "unsubscribeText", + "webversionText": "webversionText" + }, + "_globalStyles": { + "backgroundColor": "$root.content().theme().frameTheme().backgroundColor", + "linkStyle.face": "$root.content().theme().frameTheme().linkStyle().face", + "linkStyle.color": "$root.content().theme().frameTheme().linkStyle().color", + "linkStyle.size": "$root.content().theme().frameTheme().linkStyle().size", + "linkStyle.decoration": "$root.content().theme().frameTheme().linkStyle().decoration", + "longTextStyle.align": "$root.content().theme().frameTheme().longTextStyle().align", + "longTextStyle.face": "$root.content().theme().frameTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().frameTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().frameTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "id": "", + "backgroundColor": null, + "preheaderText": "", + "linkStyle.face": null, + "linkStyle.color": null, + "linkStyle.size": null, + "linkStyle.decoration": null, + "preheaderLinkOption": "[unsubscribe_link]", + "longTextStyle.align": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "unsubscribeText": "Unsubscribe", + "webversionText": "View in your browser" + }, + "customStyle": null, + "_complex": true, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 29, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "preheaderText": { + "_writeable": false, + "_category": "content", + "_name": "PreHeader Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_help": "This text will be shown on some email clients as a preview of the email contents", + "_usecount": 2 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "preheaderLinkOption": { + "_writeable": false, + "_name": "Unsubscribe Link", + "_widget": "select", + "_options": "[profile_link]=Profile|[unsubscribe_link]=Unsubscribe|none=None", + "_help": "If -None- is selected, preHeader text will be shown", + "_category": "content", + "type": "preheaderLinkOption", + "_initialized": true, + "_usecount": 4 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "_usecount": 5 + }, + "unsubscribeText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Unsubscribe Link", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "webversionText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Web Link Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "sponsor": { + "_writeable": false, + "_name": "Sponsor", + "_category": "hidden", + "type": "sponsor", + "_initialized": true, + "_processedDefs": { + "visible": "visible=true", + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": { + "visible": true + }, + "visible": { + "_writeable": false, + "_name": "Visible?", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true, + "_usecount": 1 + }, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 4 + }, + "footerBlock": { + "_writeable": false, + "_name": "Unsubscribe Block", + "_globalStyle": "_theme_.frameTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "footerBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "longTextStyle": "longTextStyle", + "id": "id", + "backgroundColor": "backgroundColor", + "linkStyle": "linkStyle", + "longText": "longText", + "disiscrivitiText": "disiscrivitiText" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().frameTheme().longTextStyle().linksColor", + "backgroundColor": "$root.content().theme().frameTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().frameTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().frameTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().frameTheme().longTextStyle().size", + "linkStyle.face": "$root.content().theme().frameTheme().linkStyle().face", + "linkStyle.color": "$root.content().theme().frameTheme().linkStyle().color", + "linkStyle.size": "$root.content().theme().frameTheme().linkStyle().size", + "linkStyle.decoration": "$root.content().theme().frameTheme().linkStyle().decoration" + }, + "_defaultValues": { + "customStyle": false, + "longTextStyle.linksColor": null, + "id": "", + "backgroundColor": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "linkStyle.face": null, + "linkStyle.color": null, + "linkStyle.size": null, + "linkStyle.decoration": null, + "longText": "

    Email sent to [mail]

    ", + "disiscrivitiText": "Unsubscribe" + }, + "customStyle": null, + "_complex": true, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 4 + }, + "_usecount": 21, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 7 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "disiscrivitiText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "mainBlocks": { + "_writeable": false, + "_category": "content", + "_name": "Blocks", + "type": "blocks", + "_initialized": true, + "_processedDefs": { + "blocks": "blocks[]" + }, + "_globalStyles": {}, + "_defaultValues": { + "blocks": [] + }, + "blocks": [], + "_complex": true, + "_usecount": 1 + } + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "visible": { + "_writeable": false, + "_name": "Visible?", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "linksDecoration": { + "_writeable": true, + "_name": "Underlined Links?", + "type": "decoration", + "_category": "content" + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "hrWidth": { + "_writeable": false, + "_name": "Width", + "_widget": "select", + "_options": "10|20|30|40|50|60|70|80|90|100", + "_category": "content", + "type": "hrWidth", + "_initialized": true + }, + "hrHeight": { + "_writeable": false, + "_name": "Line height", + "_widget": "integer", + "_max": "80", + "_category": "content", + "type": "hrHeight", + "_initialized": true + }, + "height": { + "_writeable": false, + "_name": "Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true + }, + "imageHeight": { + "_writeable": false, + "_name": "Image Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "spacerSize": { + "_writeable": false, + "_name": "Height", + "_widget": "integer", + "_max": "90", + "_min": "4", + "_category": "content", + "type": "spacerSize", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + }, + "sponsor": { + "_writeable": false, + "_name": "Sponsor", + "_category": "hidden", + "type": "sponsor", + "_initialized": true, + "_processedDefs": { + "visible": "visible=true", + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": { + "visible": true + }, + "visible": { + "_writeable": false, + "_name": "Visible?", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "_complex": true, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + } + }, + "titleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "hidden", + "type": "titleText", + "_initialized": true + }, + "gutterVisible": { + "_writeable": false, + "_name": "Show Gutter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "socialIconType": { + "_writeable": false, + "_name": "Icon Version", + "_widget": "select", + "_options": "bw=Black and White|colors=Colors", + "_category": "content", + "type": "socialIconType", + "_initialized": true + }, + "bigSocialIconType": { + "_writeable": false, + "_name": "Icon Version", + "_widget": "select", + "_options": "bw=Black and White|colors=Colors|rdcol=Rounded Colors|rdbl=Rounded Black", + "_category": "content", + "type": "bigSocialIconType", + "_initialized": true + }, + "bigSocialIconSize": { + "_writeable": false, + "_name": "Icon Size", + "_widget": "select", + "_options": "32=Small|48=Big", + "_category": "content", + "type": "bigSocialIconSize", + "_initialized": true + }, + "preheaderLinkOption": { + "_writeable": false, + "_name": "Unsubscribe Link", + "_widget": "select", + "_options": "[profile_link]=Profile|[unsubscribe_link]=Unsubscribe|none=None", + "_help": "If -None- is selected, preHeader text will be shown", + "_category": "content", + "type": "preheaderLinkOption", + "_initialized": true + }, + "hrStyle": { + "_writeable": false, + "_name": "Separator Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "height", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 25 + }, + "end": { + "line": 50, + "col": 37 + } + } + }, + { + "type": "property", + "name": "width", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 39 + }, + "end": { + "line": 50, + "col": 50 + } + } + }, + { + "type": "property", + "name": "bottom", + "value": "20px", + "position": { + "start": { + "line": 50, + "col": 52 + }, + "end": { + "line": 50, + "col": 64 + } + } + }, + { + "type": "property", + "name": "-ko-border-bottom", + "value": "@[hrHeight]px solid @color", + "position": { + "start": { + "line": 50, + "col": 66 + }, + "end": { + "line": 50, + "col": 111 + } + } + } + ], + "type": "hrStyle", + "_initialized": true, + "_processedDefs": { + "color": "color", + "hrWidth": "hrWidth", + "hrHeight": "hrHeight" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "_complex": true, + "hrWidth": { + "_writeable": false, + "_name": "Width", + "_widget": "select", + "_options": "10|20|30|40|50|60|70|80|90|100", + "_category": "content", + "type": "hrWidth", + "_initialized": true + }, + "hrHeight": { + "_writeable": false, + "_name": "Line height", + "_widget": "integer", + "_max": "80", + "_category": "content", + "type": "hrHeight", + "_initialized": true + } + }, + "preheaderVisible": { + "_writeable": false, + "_name": "Show Preheader", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_help": "Preheader block is the first one on the top of the page. It contains web version link and optionally unsubscribe link or a preheader text that will be shown as a preview on some email clients" + }, + "link": { + "_writeable": false, + "_name": "Link", + "_category": "content", + "type": "link", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + } + }, + "image": { + "_writeable": false, + "_name": "Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + } + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "buttonLink": { + "_writeable": false, + "_name": "Button", + "_category": "content", + "type": "link", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + } + }, + "textStyle": { + "_writeable": false, + "_name": "Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + } + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true + } + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "bigButtonStyle": { + "_writeable": false, + "_name": "Big Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true + } + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + } + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "externalTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 73, + "col": 35 + }, + "end": { + "line": 73, + "col": 59 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 73, + "col": 61 + }, + "end": { + "line": 73, + "col": 83 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 73, + "col": 85 + }, + "end": { + "line": 73, + "col": 102 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 73, + "col": 104 + }, + "end": { + "line": 73, + "col": 128 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + } + }, + "bigTitleStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 76, + "col": 31 + }, + "end": { + "line": 76, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 76, + "col": 57 + }, + "end": { + "line": 76, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 76, + "col": 81 + }, + "end": { + "line": 76, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 76, + "col": 100 + }, + "end": { + "line": 76, + "col": 124 + } + } + } + ], + "type": "bigTitleStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + } + }, + "buttonStyle color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true + }, + "buttonStyle size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true + } + }, + "preheaderText": { + "_writeable": false, + "_category": "content", + "_name": "PreHeader Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_help": "This text will be shown on some email clients as a preview of the email contents" + }, + "leftImage": { + "_writeable": false, + "_name": "Left Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + } + }, + "leftLongText": { + "_writeable": false, + "_category": "content", + "_name": "Left Text", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "leftButtonLink": { + "_writeable": false, + "_name": "Left Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + } + }, + "middleImage": { + "_writeable": false, + "_name": "Central Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + } + }, + "middleLongText": { + "_writeable": false, + "_category": "content", + "_name": "Central Text", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "middleButtonLink": { + "_writeable": false, + "_name": "Central Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + } + }, + "rightImage": { + "_writeable": false, + "_name": "Right Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "content", + "type": "src", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true + } + }, + "rightLongText": { + "_writeable": false, + "_category": "content", + "_name": "Right Text", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "rightButtonLink": { + "_writeable": false, + "_name": "Right Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + } + }, + "webversionText": { + "_writeable": false, + "_category": "content", + "_name": "Web Link Text", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "unsubscribeText": { + "_writeable": false, + "_category": "content", + "_name": "Unsubscribe Link", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "titleVisible": { + "_writeable": false, + "_name": "Show Title", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "buttonVisible": { + "_writeable": false, + "_name": "Show Button", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "imageVisible": { + "_writeable": false, + "_name": "Show Image", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "contentTheme": { + "_writeable": false, + "_name": "Main Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 102, + "col": 30 + }, + "end": { + "line": 102, + "col": 71 + } + } + } + ], + "type": "contentTheme", + "_initialized": true, + "_processedDefs": { + "longTextStyle": "longTextStyle", + "externalBackgroundColor": "externalBackgroundColor", + "externalTextStyle": "externalTextStyle", + "backgroundColor": "backgroundColor", + "titleTextStyle": "titleTextStyle", + "buttonStyle": "buttonStyle", + "bigTitleStyle": "bigTitleStyle", + "hrStyle": "hrStyle", + "bigButtonStyle": "bigButtonStyle", + "shareButtonStyle": "shareButtonStyle" + }, + "_globalStyles": {}, + "_defaultValues": { + "longTextStyle.linksColor": "#3f3f3f", + "externalBackgroundColor": "#bfbfbf", + "externalTextStyle.face": "Arial, Helvetica, sans-serif", + "externalTextStyle.color": "#f3f3f3", + "externalTextStyle.size": "18", + "backgroundColor": "#ffffff", + "longTextStyle.face": "Arial, Helvetica, sans-serif", + "longTextStyle.color": "#3f3f3f", + "longTextStyle.size": "13", + "titleTextStyle.align": "left", + "titleTextStyle.face": "Arial, Helvetica, sans-serif", + "titleTextStyle.color": "#3f3f3f", + "titleTextStyle.size": "18", + "longTextStyle.lineHeight": "normal", + "longTextStyle.align": "left", + "buttonStyle.align": "left", + "buttonStyle.face": "Arial, Helvetica, sans-serif", + "buttonStyle.color": "#3f3f3f", + "buttonStyle.size": "13", + "buttonStyle.buttonColor": "#bfbfbf", + "buttonStyle.radius": "4", + "bigTitleStyle.align": "center", + "bigTitleStyle.face": "Arial, Helvetica, sans-serif", + "bigTitleStyle.color": "#3f3f3f", + "bigTitleStyle.size": "22", + "hrStyle.hrWidth": "100", + "hrStyle.hrHeight": "1", + "hrStyle.color": "#3f3f3f", + "bigButtonStyle.align": "center", + "bigButtonStyle.face": "Arial, Helvetica, sans-serif", + "bigButtonStyle.color": "#3f3f3f", + "bigButtonStyle.size": "22", + "bigButtonStyle.buttonColor": "#bfbfbf", + "bigButtonStyle.radius": "4", + "shareButtonStyle.radius": "4", + "shareButtonStyle.face": "Arial, Helvetica, sans-serif", + "shareButtonStyle.size": "13", + "shareButtonStyle.buttonColor": "#bfbfbf", + "shareButtonStyle.color": "#3f3f3f" + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 44 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 44 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 44 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 8 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 16 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 8 + }, + "_usecount": 328 + }, + "_complex": true, + "_usecount": 1436, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 60 + }, + "externalTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 73, + "col": 35 + }, + "end": { + "line": 73, + "col": 59 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 73, + "col": 61 + }, + "end": { + "line": 73, + "col": 83 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 73, + "col": 85 + }, + "end": { + "line": 73, + "col": 102 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 73, + "col": 104 + }, + "end": { + "line": 73, + "col": 128 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "_usecount": 6 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 80 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 7 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 7 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 7 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 14 + }, + "_usecount": 70 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 14 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 14 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 14 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 21 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 14 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 7 + }, + "_usecount": 168 + }, + "bigTitleStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 76, + "col": 31 + }, + "end": { + "line": 76, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 76, + "col": 57 + }, + "end": { + "line": 76, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 76, + "col": 81 + }, + "end": { + "line": 76, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 76, + "col": 100 + }, + "end": { + "line": 76, + "col": 124 + } + } + } + ], + "type": "bigTitleStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "hrStyle": { + "_writeable": false, + "_name": "Separator Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "height", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 25 + }, + "end": { + "line": 50, + "col": 37 + } + } + }, + { + "type": "property", + "name": "width", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 39 + }, + "end": { + "line": 50, + "col": 50 + } + } + }, + { + "type": "property", + "name": "bottom", + "value": "20px", + "position": { + "start": { + "line": 50, + "col": 52 + }, + "end": { + "line": 50, + "col": 64 + } + } + }, + { + "type": "property", + "name": "-ko-border-bottom", + "value": "@[hrHeight]px solid @color", + "position": { + "start": { + "line": 50, + "col": 66 + }, + "end": { + "line": 50, + "col": 111 + } + } + } + ], + "type": "hrStyle", + "_initialized": true, + "_processedDefs": { + "color": "color", + "hrWidth": "hrWidth", + "hrHeight": "hrHeight" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "hrWidth": { + "_writeable": false, + "_name": "Width", + "_widget": "select", + "_options": "10|20|30|40|50|60|70|80|90|100", + "_category": "content", + "type": "hrWidth", + "_initialized": true, + "_usecount": 2 + }, + "hrHeight": { + "_writeable": false, + "_name": "Line height", + "_widget": "integer", + "_max": "80", + "_category": "content", + "type": "hrHeight", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "bigButtonStyle": { + "_writeable": false, + "_name": "Big Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 3 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 24 + }, + "shareButtonStyle": { + "_writeable": false, + "_name": "Share Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 151, + "col": 34 + }, + "end": { + "line": 151, + "col": 60 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 151, + "col": 62 + }, + "end": { + "line": 151, + "col": 84 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@['black']", + "position": { + "start": { + "line": 151, + "col": 86 + }, + "end": { + "line": 151, + "col": 107 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 151, + "col": 109 + }, + "end": { + "line": 151, + "col": 133 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@['#CCCCCC']", + "position": { + "start": { + "line": 151, + "col": 135 + }, + "end": { + "line": 151, + "col": 169 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 151, + "col": 171 + }, + "end": { + "line": 151, + "col": 188 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 151, + "col": 190 + }, + "end": { + "line": 151, + "col": 220 + } + } + } + ], + "type": "shareButtonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "iconColorType": "iconColorType=black", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": { + "iconColorType": "black" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 100 + }, + "_complex": true, + "iconColorType": { + "_writeable": false, + "_name": "Icon Color", + "_widget": "select", + "_options": "brand=Brand|white=White|black=Black", + "_category": "content", + "type": "iconColorType", + "_initialized": true, + "_usecount": 30 + }, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 60 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "10|11|12|13|14|15|16|18|20|22|25", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 100 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 30 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 20 + }, + "_usecount": 680 + } + }, + "frameTheme": { + "_writeable": false, + "_name": "Frame Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 104, + "col": 28 + }, + "end": { + "line": 104, + "col": 69 + } + } + } + ], + "type": "frameTheme", + "_initialized": true, + "_processedDefs": { + "backgroundColor": "backgroundColor", + "longTextStyle": "longTextStyle", + "linkStyle": "linkStyle" + }, + "_globalStyles": {}, + "_defaultValues": { + "backgroundColor": "#3f3f3f", + "longTextStyle.linksColor": "#cccccc", + "longTextStyle.color": "#919191", + "linkStyle.face": "Arial, Helvetica, sans-serif", + "linkStyle.color": "#ffffff", + "linkStyle.size": "13", + "linkStyle.decoration": "underline", + "longTextStyle.align": "left", + "longTextStyle.face": "Arial, Helvetica, sans-serif", + "longTextStyle.size": "13" + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 19 + }, + "_complex": true, + "_usecount": 83, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 5 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 30 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 8 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 3 + }, + "_usecount": 34 + } + }, + "template preheaderText": { + "_writeable": true, + "_name": "Preheader", + "_category": "content" + }, + "theme": { + "_writeable": false, + "_category": "style", + "type": "theme", + "_initialized": true, + "_processedDefs": { + "frameTheme": "frameTheme", + "contentTheme": "contentTheme" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "frameTheme": { + "_writeable": false, + "_name": "Frame Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 104, + "col": 28 + }, + "end": { + "line": 104, + "col": 69 + } + } + } + ], + "type": "frameTheme", + "_initialized": true, + "_processedDefs": { + "backgroundColor": "backgroundColor", + "longTextStyle": "longTextStyle", + "linkStyle": "linkStyle" + }, + "_globalStyles": {}, + "_defaultValues": { + "backgroundColor": "#3f3f3f", + "longTextStyle.linksColor": "#cccccc", + "longTextStyle.color": "#919191", + "linkStyle.face": "Arial, Helvetica, sans-serif", + "linkStyle.color": "#ffffff", + "linkStyle.size": "13", + "linkStyle.decoration": "underline", + "longTextStyle.align": "left", + "longTextStyle.face": "Arial, Helvetica, sans-serif", + "longTextStyle.size": "13" + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 19 + }, + "_complex": true, + "_usecount": 83, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 5 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 30 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 8 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 3 + }, + "_usecount": 34 + } + }, + "_complex": true, + "contentTheme": { + "_writeable": false, + "_name": "Main Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 102, + "col": 30 + }, + "end": { + "line": 102, + "col": 71 + } + } + } + ], + "type": "contentTheme", + "_initialized": true, + "_processedDefs": { + "longTextStyle": "longTextStyle", + "externalBackgroundColor": "externalBackgroundColor", + "externalTextStyle": "externalTextStyle", + "backgroundColor": "backgroundColor", + "titleTextStyle": "titleTextStyle", + "buttonStyle": "buttonStyle", + "bigTitleStyle": "bigTitleStyle", + "hrStyle": "hrStyle", + "bigButtonStyle": "bigButtonStyle", + "shareButtonStyle": "shareButtonStyle" + }, + "_globalStyles": {}, + "_defaultValues": { + "longTextStyle.linksColor": "#3f3f3f", + "externalBackgroundColor": "#bfbfbf", + "externalTextStyle.face": "Arial, Helvetica, sans-serif", + "externalTextStyle.color": "#f3f3f3", + "externalTextStyle.size": "18", + "backgroundColor": "#ffffff", + "longTextStyle.face": "Arial, Helvetica, sans-serif", + "longTextStyle.color": "#3f3f3f", + "longTextStyle.size": "13", + "titleTextStyle.align": "left", + "titleTextStyle.face": "Arial, Helvetica, sans-serif", + "titleTextStyle.color": "#3f3f3f", + "titleTextStyle.size": "18", + "longTextStyle.lineHeight": "normal", + "longTextStyle.align": "left", + "buttonStyle.align": "left", + "buttonStyle.face": "Arial, Helvetica, sans-serif", + "buttonStyle.color": "#3f3f3f", + "buttonStyle.size": "13", + "buttonStyle.buttonColor": "#bfbfbf", + "buttonStyle.radius": "4", + "bigTitleStyle.align": "center", + "bigTitleStyle.face": "Arial, Helvetica, sans-serif", + "bigTitleStyle.color": "#3f3f3f", + "bigTitleStyle.size": "22", + "hrStyle.hrWidth": "100", + "hrStyle.hrHeight": "1", + "hrStyle.color": "#3f3f3f", + "bigButtonStyle.align": "center", + "bigButtonStyle.face": "Arial, Helvetica, sans-serif", + "bigButtonStyle.color": "#3f3f3f", + "bigButtonStyle.size": "22", + "bigButtonStyle.buttonColor": "#bfbfbf", + "bigButtonStyle.radius": "4", + "shareButtonStyle.radius": "4", + "shareButtonStyle.face": "Arial, Helvetica, sans-serif", + "shareButtonStyle.size": "13", + "shareButtonStyle.buttonColor": "#bfbfbf", + "shareButtonStyle.color": "#3f3f3f" + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 44 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 44 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 44 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 8 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 16 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 8 + }, + "_usecount": 328 + }, + "_complex": true, + "_usecount": 1436, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 60 + }, + "externalTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 73, + "col": 35 + }, + "end": { + "line": 73, + "col": 59 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 73, + "col": 61 + }, + "end": { + "line": 73, + "col": 83 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 73, + "col": 85 + }, + "end": { + "line": 73, + "col": 102 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 73, + "col": 104 + }, + "end": { + "line": 73, + "col": 128 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "_usecount": 6 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 80 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 7 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 7 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 7 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 14 + }, + "_usecount": 70 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 14 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 14 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 14 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 21 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 14 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 7 + }, + "_usecount": 168 + }, + "bigTitleStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 76, + "col": 31 + }, + "end": { + "line": 76, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 76, + "col": 57 + }, + "end": { + "line": 76, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 76, + "col": 81 + }, + "end": { + "line": 76, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 76, + "col": 100 + }, + "end": { + "line": 76, + "col": 124 + } + } + } + ], + "type": "bigTitleStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "hrStyle": { + "_writeable": false, + "_name": "Separator Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "height", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 25 + }, + "end": { + "line": 50, + "col": 37 + } + } + }, + { + "type": "property", + "name": "width", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 39 + }, + "end": { + "line": 50, + "col": 50 + } + } + }, + { + "type": "property", + "name": "bottom", + "value": "20px", + "position": { + "start": { + "line": 50, + "col": 52 + }, + "end": { + "line": 50, + "col": 64 + } + } + }, + { + "type": "property", + "name": "-ko-border-bottom", + "value": "@[hrHeight]px solid @color", + "position": { + "start": { + "line": 50, + "col": 66 + }, + "end": { + "line": 50, + "col": 111 + } + } + } + ], + "type": "hrStyle", + "_initialized": true, + "_processedDefs": { + "color": "color", + "hrWidth": "hrWidth", + "hrHeight": "hrHeight" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "hrWidth": { + "_writeable": false, + "_name": "Width", + "_widget": "select", + "_options": "10|20|30|40|50|60|70|80|90|100", + "_category": "content", + "type": "hrWidth", + "_initialized": true, + "_usecount": 2 + }, + "hrHeight": { + "_writeable": false, + "_name": "Line height", + "_widget": "integer", + "_max": "80", + "_category": "content", + "type": "hrHeight", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "bigButtonStyle": { + "_writeable": false, + "_name": "Big Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 3 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 24 + }, + "shareButtonStyle": { + "_writeable": false, + "_name": "Share Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 151, + "col": 34 + }, + "end": { + "line": 151, + "col": 60 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 151, + "col": 62 + }, + "end": { + "line": 151, + "col": 84 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@['black']", + "position": { + "start": { + "line": 151, + "col": 86 + }, + "end": { + "line": 151, + "col": 107 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 151, + "col": 109 + }, + "end": { + "line": 151, + "col": 133 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@['#CCCCCC']", + "position": { + "start": { + "line": 151, + "col": 135 + }, + "end": { + "line": 151, + "col": 169 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 151, + "col": 171 + }, + "end": { + "line": 151, + "col": 188 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 151, + "col": 190 + }, + "end": { + "line": 151, + "col": 220 + } + } + } + ], + "type": "shareButtonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "iconColorType": "iconColorType=black", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": { + "iconColorType": "black" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 100 + }, + "_complex": true, + "iconColorType": { + "_writeable": false, + "_name": "Icon Color", + "_widget": "select", + "_options": "brand=Brand|white=White|black=Black", + "_category": "content", + "type": "iconColorType", + "_initialized": true, + "_usecount": 30 + }, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 60 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "10|11|12|13|14|15|16|18|20|22|25", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 100 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 30 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 20 + }, + "_usecount": 680 + } + } + }, + "footerBlock": { + "_writeable": false, + "_name": "Unsubscribe Block", + "_globalStyle": "_theme_.frameTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "footerBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "longTextStyle": "longTextStyle", + "id": "id", + "backgroundColor": "backgroundColor", + "linkStyle": "linkStyle", + "longText": "longText", + "disiscrivitiText": "disiscrivitiText" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().frameTheme().longTextStyle().linksColor", + "backgroundColor": "$root.content().theme().frameTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().frameTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().frameTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().frameTheme().longTextStyle().size", + "linkStyle.face": "$root.content().theme().frameTheme().linkStyle().face", + "linkStyle.color": "$root.content().theme().frameTheme().linkStyle().color", + "linkStyle.size": "$root.content().theme().frameTheme().linkStyle().size", + "linkStyle.decoration": "$root.content().theme().frameTheme().linkStyle().decoration" + }, + "_defaultValues": { + "customStyle": false, + "longTextStyle.linksColor": null, + "id": "", + "backgroundColor": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "linkStyle.face": null, + "linkStyle.color": null, + "linkStyle.size": null, + "linkStyle.decoration": null, + "longText": "

    Email sent to [mail]

    ", + "disiscrivitiText": "Unsubscribe" + }, + "customStyle": null, + "_complex": true, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 4 + }, + "_usecount": 20, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 7 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "disiscrivitiText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "fbVisible": { + "_writeable": false, + "_name": "Facebook", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "twVisible": { + "_writeable": false, + "_name": "Twitter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "ggVisible": { + "_writeable": false, + "_name": "Google+", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "inVisible": { + "_writeable": false, + "_name": "LinkedIn", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "piVisible": { + "_writeable": false, + "_name": "Pinterest", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "flVisible": { + "_writeable": false, + "_name": "Flickr", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "viVisible": { + "_writeable": false, + "_name": "Vimeo", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "webVisible": { + "_writeable": false, + "_name": "Website", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "instVisible": { + "_writeable": false, + "_name": "Instagram", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "youVisible": { + "_writeable": false, + "_name": "YouTube", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "fbUrl": { + "_writeable": false, + "_name": "Facebook Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "twUrl": { + "_writeable": false, + "_name": "Twitter Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "ggUrl": { + "_writeable": false, + "_name": "Google+ Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "inUrl": { + "_writeable": false, + "_name": "LinkedIn Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "piUrl": { + "_writeable": false, + "_name": "Pinterest Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "flUrl": { + "_writeable": false, + "_name": "Flickr Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "viUrl": { + "_writeable": false, + "_name": "Vimeo Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "webUrl": { + "_writeable": false, + "_name": "Website Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "instUrl": { + "_writeable": false, + "_name": "Instagram Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "youUrl": { + "_writeable": false, + "_name": "YouTube Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true + }, + "socialBlock": { + "_writeable": false, + "_name": "Social Block", + "_globalStyle": "_theme_.frameTheme", + "_variant": "socialIconType", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "socialBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "socialIconType": "socialIconType=colors", + "fbVisible": "fbVisible=true", + "fbUrl": "fbUrl", + "twVisible": "twVisible=true", + "twUrl": "twUrl", + "ggVisible": "ggVisible=true", + "ggUrl": "ggUrl", + "webVisible": "webVisible=false", + "webUrl": "webUrl", + "inVisible": "inVisible=false", + "inUrl": "inUrl", + "piVisible": "piVisible=false", + "piUrl": "piUrl", + "flVisible": "flVisible=false", + "flUrl": "flUrl", + "viVisible": "viVisible=false", + "viUrl": "viUrl", + "instVisible": "instVisible=false", + "instUrl": "instUrl", + "youVisible": "youVisible=false", + "youUrl": "youUrl", + "longTextStyle": "longTextStyle", + "longText": "longText", + "backgroundColor": "backgroundColor", + "id": "id" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().frameTheme().longTextStyle().linksColor", + "backgroundColor": "$root.content().theme().frameTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().frameTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().frameTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().frameTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "socialIconType": "colors", + "fbVisible": true, + "twVisible": true, + "ggVisible": true, + "webVisible": false, + "inVisible": false, + "piVisible": false, + "flVisible": false, + "viVisible": false, + "instVisible": false, + "youVisible": false, + "longTextStyle.linksColor": null, + "id": "", + "backgroundColor": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "fbUrl": "", + "twUrl": "", + "ggUrl": "", + "webUrl": "", + "inUrl": "", + "piUrl": "", + "flUrl": "", + "viUrl": "", + "instUrl": "", + "youUrl": "", + "longText": "

    Address and Contacts

    " + }, + "customStyle": null, + "_complex": true, + "socialIconType": { + "_writeable": false, + "_name": "Icon Version", + "_widget": "select", + "_options": "bw=Black and White|colors=Colors", + "_category": "content", + "type": "socialIconType", + "_initialized": true, + "_usecount": 2 + }, + "fbVisible": { + "_writeable": false, + "_name": "Facebook", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "fbUrl": { + "_writeable": false, + "_name": "Facebook Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "twVisible": { + "_writeable": false, + "_name": "Twitter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "twUrl": { + "_writeable": false, + "_name": "Twitter Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "ggVisible": { + "_writeable": false, + "_name": "Google+", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "ggUrl": { + "_writeable": false, + "_name": "Google+ Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "webVisible": { + "_writeable": false, + "_name": "Website", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "webUrl": { + "_writeable": false, + "_name": "Website Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "inVisible": { + "_writeable": false, + "_name": "LinkedIn", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "inUrl": { + "_writeable": false, + "_name": "LinkedIn Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "piVisible": { + "_writeable": false, + "_name": "Pinterest", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "piUrl": { + "_writeable": false, + "_name": "Pinterest Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "flVisible": { + "_writeable": false, + "_name": "Flickr", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "flUrl": { + "_writeable": false, + "_name": "Flickr Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "viVisible": { + "_writeable": false, + "_name": "Vimeo", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "viUrl": { + "_writeable": false, + "_name": "Vimeo Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "instVisible": { + "_writeable": false, + "_name": "Instagram", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "instUrl": { + "_writeable": false, + "_name": "Instagram Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "youVisible": { + "_writeable": false, + "_name": "YouTube", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "youUrl": { + "_writeable": false, + "_name": "YouTube Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 4 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 71, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + } + }, + "bigSocialBlock": { + "_writeable": false, + "_name": "Big Social Block", + "_globalStyle": "_theme_.contentTheme", + "_variant": "bigSocialIconType", + "_category": "content", + "_context": "block", + "type": "bigSocialBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "bigSocialIconType": "bigSocialIconType=rdcol", + "bigSocialIconSize": "bigSocialIconSize=48", + "fbVisible": "fbVisible=true", + "fbUrl": "fbUrl", + "twVisible": "twVisible=true", + "twUrl": "twUrl", + "ggVisible": "ggVisible=true", + "ggUrl": "ggUrl", + "webVisible": "webVisible=false", + "webUrl": "webUrl", + "inVisible": "inVisible=true", + "inUrl": "inUrl", + "piVisible": "piVisible=false", + "piUrl": "piUrl", + "flVisible": "flVisible=false", + "flUrl": "flUrl", + "viVisible": "viVisible=false", + "viUrl": "viUrl", + "instVisible": "instVisible=true", + "instUrl": "instUrl", + "youVisible": "youVisible=true", + "youUrl": "youUrl", + "longTextStyle": "longTextStyle", + "longText": "longText", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor" + }, + "_defaultValues": { + "customStyle": false, + "bigSocialIconType": "rdcol", + "bigSocialIconSize": "48", + "fbVisible": true, + "twVisible": true, + "ggVisible": true, + "webVisible": false, + "inVisible": true, + "piVisible": false, + "flVisible": false, + "viVisible": false, + "instVisible": true, + "youVisible": true, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "fbUrl": "", + "twUrl": "", + "ggUrl": "", + "webUrl": "", + "inUrl": "", + "piUrl": "", + "flUrl": "", + "viUrl": "", + "instUrl": "", + "youUrl": "" + }, + "customStyle": null, + "_complex": true, + "bigSocialIconType": { + "_writeable": false, + "_name": "Icon Version", + "_widget": "select", + "_options": "bw=Black and White|colors=Colors|rdcol=Rounded Colors|rdbl=Rounded Black", + "_category": "content", + "type": "bigSocialIconType", + "_initialized": true, + "_usecount": 4 + }, + "bigSocialIconSize": { + "_writeable": false, + "_name": "Icon Size", + "_widget": "select", + "_options": "32=Small|48=Big", + "_category": "content", + "type": "bigSocialIconSize", + "_initialized": true, + "_usecount": 80 + }, + "fbVisible": { + "_writeable": false, + "_name": "Facebook", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "fbUrl": { + "_writeable": false, + "_name": "Facebook Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "twVisible": { + "_writeable": false, + "_name": "Twitter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "twUrl": { + "_writeable": false, + "_name": "Twitter Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "ggVisible": { + "_writeable": false, + "_name": "Google+", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "ggUrl": { + "_writeable": false, + "_name": "Google+ Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "webVisible": { + "_writeable": false, + "_name": "Website", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "webUrl": { + "_writeable": false, + "_name": "Website Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "inVisible": { + "_writeable": false, + "_name": "LinkedIn", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "inUrl": { + "_writeable": false, + "_name": "LinkedIn Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "piVisible": { + "_writeable": false, + "_name": "Pinterest", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "piUrl": { + "_writeable": false, + "_name": "Pinterest Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "flVisible": { + "_writeable": false, + "_name": "Flickr", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "flUrl": { + "_writeable": false, + "_name": "Flickr Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "viVisible": { + "_writeable": false, + "_name": "Vimeo", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "viUrl": { + "_writeable": false, + "_name": "Vimeo Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "instVisible": { + "_writeable": false, + "_name": "Instagram", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "instUrl": { + "_writeable": false, + "_name": "Instagram Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "youVisible": { + "_writeable": false, + "_name": "YouTube", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "youUrl": { + "_writeable": false, + "_name": "YouTube Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "longText": { + "_writeable": false, + "_category": "content", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true + }, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 209, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + } + }, + "shareButtonStyle iconColorType": { + "_writeable": false, + "_name": "Icon Color", + "_widget": "select", + "_options": "brand=Brand|white=White|black=Black", + "_category": "content", + "type": "iconColorType", + "_initialized": true + }, + "shareButtonStyle color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true + }, + "shareButtonStyle size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "10|11|12|13|14|15|16|18|20|22|25", + "_category": "content", + "type": "size", + "_initialized": true + }, + "shareButtonStyle": { + "_writeable": false, + "_name": "Share Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 151, + "col": 34 + }, + "end": { + "line": 151, + "col": 60 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 151, + "col": 62 + }, + "end": { + "line": 151, + "col": 84 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@['black']", + "position": { + "start": { + "line": 151, + "col": 86 + }, + "end": { + "line": 151, + "col": 107 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 151, + "col": 109 + }, + "end": { + "line": 151, + "col": 133 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@['#CCCCCC']", + "position": { + "start": { + "line": 151, + "col": 135 + }, + "end": { + "line": 151, + "col": 169 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 151, + "col": 171 + }, + "end": { + "line": 151, + "col": 188 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 151, + "col": 190 + }, + "end": { + "line": 151, + "col": 220 + } + } + } + ], + "type": "shareButtonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "iconColorType": "iconColorType=black", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": { + "iconColorType": "black" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "iconColorType": { + "_writeable": false, + "_name": "Icon Color", + "_widget": "select", + "_options": "brand=Brand|white=White|black=Black", + "_category": "content", + "type": "iconColorType", + "_initialized": true + }, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "10|11|12|13|14|15|16|18|20|22|25", + "_category": "content", + "type": "size", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true + } + }, + "shareButtonType": { + "_writeable": false, + "_name": "Button Version", + "_widget": "select", + "_options": "reverse=Brand buttons|simple=Brand icons|custom=Custom buttons", + "_category": "content", + "type": "shareButtonType", + "_initialized": true + }, + "shareBlock fbVisible": { + "_writeable": false, + "_name": "Facebook", + "_widget": "boolean", + "_category": "content", + "type": "fbVisible", + "_initialized": true + }, + "shareBlock twVisible": { + "_writeable": false, + "_name": "Twitter", + "_widget": "boolean", + "_category": "content", + "type": "twVisible", + "_initialized": true + }, + "shareBlock inVisible": { + "_writeable": false, + "_name": "LinkedIn", + "_widget": "boolean", + "_category": "content", + "type": "inVisible", + "_initialized": true + }, + "shareBlock ggVisible": { + "_writeable": false, + "_name": "Google+", + "_widget": "boolean", + "_category": "content", + "type": "ggVisible", + "_initialized": true + }, + "shareBlock piVisible": { + "_writeable": false, + "_name": "Pinterest", + "_widget": "boolean", + "_category": "content", + "type": "piVisible", + "_initialized": true + }, + "shareBlock customUrl": { + "_writeable": false, + "_name": "Share Link", + "_widget": "url", + "_category": "content", + "type": "customUrl", + "_initialized": true + }, + "shareBlock": { + "_writeable": false, + "_name": "Share Block", + "_globalStyle": "_theme_.contentTheme", + "_variant": "shareButtonType", + "_category": "content", + "_context": "block", + "type": "shareBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "shareButtonType": "shareButtonType=reverse", + "fbVisible": "fbVisible=true", + "twVisible": "twVisible=true", + "inVisible": "inVisible=false", + "ggVisible": "ggVisible=true", + "piVisible": "piVisible=false", + "customUrl": "customUrl", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "shareButtonStyle": "shareButtonStyle", + "fbText": "fbText", + "twText": "twText", + "inText": "inText", + "ggText": "ggText", + "piText": "piText" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "shareButtonStyle.radius": "$root.content().theme().contentTheme().shareButtonStyle().radius", + "shareButtonStyle.face": "$root.content().theme().contentTheme().shareButtonStyle().face", + "shareButtonStyle.size": "$root.content().theme().contentTheme().shareButtonStyle().size", + "shareButtonStyle.buttonColor": "$root.content().theme().contentTheme().shareButtonStyle().buttonColor", + "shareButtonStyle.color": "$root.content().theme().contentTheme().shareButtonStyle().color", + "shareButtonStyle.iconColorType": "$root.content().theme().contentTheme().shareButtonStyle().iconColorType" + }, + "_defaultValues": { + "customStyle": false, + "shareButtonType": "reverse", + "fbVisible": true, + "twVisible": true, + "inVisible": false, + "ggVisible": true, + "piVisible": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "shareButtonStyle.radius": null, + "shareButtonStyle.face": null, + "shareButtonStyle.size": null, + "shareButtonStyle.buttonColor": null, + "shareButtonStyle.color": null, + "shareButtonStyle.iconColorType": null, + "fbText": "Share\r\n ", + "twText": "Share\r\n ", + "inText": "Share\r\n ", + "ggText": "Share\r\n ", + "piText": "Share\r\n " + }, + "customStyle": null, + "_complex": true, + "shareButtonType": { + "_writeable": false, + "_name": "Button Version", + "_widget": "select", + "_options": "reverse=Brand buttons|simple=Brand icons|custom=Custom buttons", + "_category": "content", + "type": "shareButtonType", + "_initialized": true, + "_usecount": 3 + }, + "fbVisible": { + "_writeable": false, + "_name": "Facebook", + "_widget": "boolean", + "_category": "content", + "type": "fbVisible", + "_initialized": true, + "_usecount": 10 + }, + "twVisible": { + "_writeable": false, + "_name": "Twitter", + "_widget": "boolean", + "_category": "content", + "type": "twVisible", + "_initialized": true, + "_usecount": 10 + }, + "inVisible": { + "_writeable": false, + "_name": "LinkedIn", + "_widget": "boolean", + "_category": "content", + "type": "inVisible", + "_initialized": true, + "_usecount": 10 + }, + "ggVisible": { + "_writeable": false, + "_name": "Google+", + "_widget": "boolean", + "_category": "content", + "type": "ggVisible", + "_initialized": true, + "_usecount": 10 + }, + "piVisible": { + "_writeable": false, + "_name": "Pinterest", + "_widget": "boolean", + "_category": "content", + "type": "piVisible", + "_initialized": true, + "_usecount": 10 + }, + "customUrl": { + "_writeable": false, + "_name": "Share Link", + "_widget": "url", + "_category": "content", + "type": "customUrl", + "_initialized": true + }, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 452, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 6 + }, + "shareButtonStyle": { + "_writeable": false, + "_name": "Share Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 151, + "col": 34 + }, + "end": { + "line": 151, + "col": 60 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 151, + "col": 62 + }, + "end": { + "line": 151, + "col": 84 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@['black']", + "position": { + "start": { + "line": 151, + "col": 86 + }, + "end": { + "line": 151, + "col": 107 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 151, + "col": 109 + }, + "end": { + "line": 151, + "col": 133 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@['#CCCCCC']", + "position": { + "start": { + "line": 151, + "col": 135 + }, + "end": { + "line": 151, + "col": 169 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 151, + "col": 171 + }, + "end": { + "line": 151, + "col": 188 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 151, + "col": 190 + }, + "end": { + "line": 151, + "col": 220 + } + } + } + ], + "type": "shareButtonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "iconColorType": "iconColorType=black", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": { + "iconColorType": "black" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 100 + }, + "_complex": true, + "iconColorType": { + "_writeable": false, + "_name": "Icon Color", + "_widget": "select", + "_options": "brand=Brand|white=White|black=Black", + "_category": "content", + "type": "iconColorType", + "_initialized": true, + "_usecount": 30 + }, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 60 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "10|11|12|13|14|15|16|18|20|22|25", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 100 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 30 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 20 + }, + "_usecount": 340 + }, + "fbText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 10 + }, + "twText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 10 + }, + "inText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 10 + }, + "ggText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 10 + }, + "piText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 10 + } + }, + "preheaderBlock": { + "_writeable": false, + "_name": "Preheader Block", + "_globalStyle": "_theme_.frameTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "preheaderBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "id": "id", + "backgroundColor": "backgroundColor", + "preheaderText": "preheaderText", + "linkStyle": "linkStyle", + "preheaderLinkOption": "preheaderLinkOption", + "longTextStyle": "longTextStyle", + "unsubscribeText": "unsubscribeText", + "webversionText": "webversionText" + }, + "_globalStyles": { + "backgroundColor": "$root.content().theme().frameTheme().backgroundColor", + "linkStyle.face": "$root.content().theme().frameTheme().linkStyle().face", + "linkStyle.color": "$root.content().theme().frameTheme().linkStyle().color", + "linkStyle.size": "$root.content().theme().frameTheme().linkStyle().size", + "linkStyle.decoration": "$root.content().theme().frameTheme().linkStyle().decoration", + "longTextStyle.align": "$root.content().theme().frameTheme().longTextStyle().align", + "longTextStyle.face": "$root.content().theme().frameTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().frameTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().frameTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "id": "", + "backgroundColor": null, + "preheaderText": "", + "linkStyle.face": null, + "linkStyle.color": null, + "linkStyle.size": null, + "linkStyle.decoration": null, + "preheaderLinkOption": "[unsubscribe_link]", + "longTextStyle.align": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "unsubscribeText": "Unsubscribe", + "webversionText": "View in your browser" + }, + "customStyle": null, + "_complex": true, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 28, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "preheaderText": { + "_writeable": false, + "_category": "content", + "_name": "PreHeader Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_help": "This text will be shown on some email clients as a preview of the email contents", + "_usecount": 2 + }, + "linkStyle": { + "_writeable": false, + "_name": "Link", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Link']", + "position": { + "start": { + "line": 64, + "col": 27 + }, + "end": { + "line": 64, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 64, + "col": 53 + }, + "end": { + "line": 64, + "col": 77 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 64, + "col": 79 + }, + "end": { + "line": 64, + "col": 101 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 64, + "col": 103 + }, + "end": { + "line": 64, + "col": 120 + } + } + }, + { + "type": "property", + "name": "-ko-text-decoration", + "value": "@[decoration]", + "position": { + "start": { + "line": 64, + "col": 122 + }, + "end": { + "line": 64, + "col": 157 + } + } + } + ], + "type": "linkStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "decoration": "decoration=none" + }, + "_globalStyles": {}, + "_defaultValues": { + "decoration": "none" + }, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "decoration": { + "_writeable": false, + "_name": "Decoration", + "_widget": "select", + "_options": "none=None|underline=Underline", + "_category": "content", + "type": "decoration", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "preheaderLinkOption": { + "_writeable": false, + "_name": "Unsubscribe Link", + "_widget": "select", + "_options": "[profile_link]=Profile|[unsubscribe_link]=Unsubscribe|none=None", + "_help": "If -None- is selected, preHeader text will be shown", + "_category": "content", + "type": "preheaderLinkOption", + "_initialized": true, + "_usecount": 4 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "_usecount": 5 + }, + "unsubscribeText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Unsubscribe Link", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "webversionText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Web Link Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "sideArticleBlock imagePos": { + "_writeable": false, + "_name": "Image position", + "_widget": "select", + "_options": "left=Left|right=Right", + "_category": "content", + "type": "imagePos", + "_initialized": true + }, + "sideArticleBlock imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "120=Small|166=Medium|258=Big", + "_category": "content", + "type": "imageWidth", + "_initialized": true + }, + "sideArticleBlock": { + "_writeable": false, + "_name": "Image+Text Block", + "_globalStyle": "_theme_.contentTheme", + "_variant": "imagePos", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "sideArticleBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "backgroundColor": "backgroundColor", + "titleVisible": "titleVisible=true", + "buttonVisible": "buttonVisible=true", + "imageWidth": "imageWidth=166", + "imagePos": "imagePos=left", + "titleTextStyle": "titleTextStyle", + "longTextStyle": "longTextStyle", + "buttonStyle": "buttonStyle", + "image": "image", + "longText": "longText", + "buttonLink": "buttonLink", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "titleText": "titleText" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size", + "titleTextStyle.align": "$root.content().theme().contentTheme().titleTextStyle().align", + "titleTextStyle.face": "$root.content().theme().contentTheme().titleTextStyle().face", + "titleTextStyle.color": "$root.content().theme().contentTheme().titleTextStyle().color", + "titleTextStyle.size": "$root.content().theme().contentTheme().titleTextStyle().size", + "longTextStyle.lineHeight": "$root.content().theme().contentTheme().longTextStyle().lineHeight", + "longTextStyle.align": "$root.content().theme().contentTheme().longTextStyle().align", + "buttonStyle.align": "$root.content().theme().contentTheme().buttonStyle().align", + "buttonStyle.face": "$root.content().theme().contentTheme().buttonStyle().face", + "buttonStyle.color": "$root.content().theme().contentTheme().buttonStyle().color", + "buttonStyle.size": "$root.content().theme().contentTheme().buttonStyle().size", + "buttonStyle.buttonColor": "$root.content().theme().contentTheme().buttonStyle().buttonColor", + "buttonStyle.radius": "$root.content().theme().contentTheme().buttonStyle().radius" + }, + "_defaultValues": { + "customStyle": false, + "titleVisible": true, + "buttonVisible": true, + "imageWidth": "166", + "imagePos": "left", + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "image.url": "", + "image.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "titleTextStyle.align": null, + "titleTextStyle.face": null, + "titleTextStyle.color": null, + "titleTextStyle.size": null, + "longTextStyle.lineHeight": null, + "longTextStyle.align": null, + "buttonStyle.align": null, + "buttonStyle.face": null, + "buttonStyle.color": null, + "buttonStyle.size": null, + "buttonStyle.buttonColor": null, + "buttonStyle.radius": null, + "buttonLink.url": "", + "image.src": "", + "titleText": "Title", + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    ", + "buttonLink.text": "BUTTON" + }, + "customStyle": null, + "_complex": true, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "titleVisible": { + "_writeable": false, + "_name": "Show Title", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 1 + }, + "buttonVisible": { + "_writeable": false, + "_name": "Show Button", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "120=Small|166=Medium|258=Big", + "_category": "content", + "type": "imageWidth", + "_initialized": true, + "_usecount": 22 + }, + "imagePos": { + "_writeable": false, + "_name": "Image position", + "_widget": "select", + "_options": "left=Left|right=Right", + "_category": "content", + "type": "imagePos", + "_initialized": true, + "_usecount": 4 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 5 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 3 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 13 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 3 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 12 + }, + "image": { + "_writeable": false, + "_name": "Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "buttonLink": { + "_writeable": false, + "_name": "Button", + "_category": "content", + "type": "link", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "_usecount": 81, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "titleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + } + }, + "textBlock": { + "_writeable": false, + "_name": "Text Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "textBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "backgroundColor": "backgroundColor", + "longTextStyle": "longTextStyle", + "longText": "longText", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.lineHeight": "$root.content().theme().contentTheme().longTextStyle().lineHeight", + "longTextStyle.align": "$root.content().theme().contentTheme().longTextStyle().align", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "longTextStyle.lineHeight": null, + "longTextStyle.align": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    \r\n

    Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    " + }, + "customStyle": null, + "_complex": true, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 7 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 14, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + } + }, + "singleArticleBlock imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "166=Small|258=Medium|350=Big|534=Full", + "_category": "content", + "type": "imageWidth", + "_initialized": true + }, + "singleArticleBlock": { + "_writeable": false, + "_name": "Image/Text Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "singleArticleBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "titleVisible": "titleVisible=true", + "buttonVisible": "buttonVisible=true", + "imageVisible": "imageVisible=true", + "imageWidth": "imageWidth=534", + "titleTextStyle": "titleTextStyle", + "longTextStyle": "longTextStyle", + "buttonStyle": "buttonStyle", + "image": "image", + "longText": "longText", + "buttonLink": "buttonLink", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "text": "text" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size", + "titleTextStyle.align": "$root.content().theme().contentTheme().titleTextStyle().align", + "titleTextStyle.face": "$root.content().theme().contentTheme().titleTextStyle().face", + "titleTextStyle.color": "$root.content().theme().contentTheme().titleTextStyle().color", + "titleTextStyle.size": "$root.content().theme().contentTheme().titleTextStyle().size", + "longTextStyle.lineHeight": "$root.content().theme().contentTheme().longTextStyle().lineHeight", + "longTextStyle.align": "$root.content().theme().contentTheme().longTextStyle().align", + "buttonStyle.align": "$root.content().theme().contentTheme().buttonStyle().align", + "buttonStyle.face": "$root.content().theme().contentTheme().buttonStyle().face", + "buttonStyle.color": "$root.content().theme().contentTheme().buttonStyle().color", + "buttonStyle.size": "$root.content().theme().contentTheme().buttonStyle().size", + "buttonStyle.buttonColor": "$root.content().theme().contentTheme().buttonStyle().buttonColor", + "buttonStyle.radius": "$root.content().theme().contentTheme().buttonStyle().radius" + }, + "_defaultValues": { + "customStyle": false, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "imageWidth": "534", + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "image.url": "", + "image.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "titleTextStyle.align": null, + "titleTextStyle.face": null, + "titleTextStyle.color": null, + "titleTextStyle.size": null, + "longTextStyle.lineHeight": null, + "longTextStyle.align": null, + "buttonStyle.align": null, + "buttonStyle.face": null, + "buttonStyle.color": null, + "buttonStyle.size": null, + "buttonStyle.buttonColor": null, + "buttonStyle.radius": null, + "buttonLink.url": "", + "image.src": "", + "text": "Section Title", + "longText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.

    ", + "buttonLink.text": "BUTTON" + }, + "customStyle": null, + "_complex": true, + "titleVisible": { + "_writeable": false, + "_name": "Show Title", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 1 + }, + "buttonVisible": { + "_writeable": false, + "_name": "Show Button", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "imageVisible": { + "_writeable": false, + "_name": "Show Image", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 1 + }, + "imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "166=Small|258=Medium|350=Big|534=Full", + "_category": "content", + "type": "imageWidth", + "_initialized": true, + "_usecount": 3 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 5 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 10 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 3 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 12 + }, + "image": { + "_writeable": false, + "_name": "Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 2 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 5 + }, + "longText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "buttonLink": { + "_writeable": false, + "_name": "Button", + "_category": "content", + "type": "link", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "_usecount": 51, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "fixedImageHeightVisible": { + "_writeable": false, + "_name": "Fix image height", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "externalBackgroundVisible": { + "_writeable": false, + "_name": "Transparent background", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true + }, + "doubleArticleBlock": { + "_writeable": false, + "_name": "2 Columns Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "doubleArticleBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "backgroundColor": "backgroundColor", + "titleVisible": "titleVisible=true", + "buttonVisible": "buttonVisible=true", + "imageVisible": "imageVisible=true", + "fixedImageHeightVisible": "fixedImageHeightVisible=true", + "titleTextStyle": "titleTextStyle", + "longTextStyle": "longTextStyle", + "buttonStyle": "buttonStyle", + "leftImage": "leftImage", + "leftLongText": "leftLongText", + "leftButtonLink": "leftButtonLink", + "rightImage": "rightImage", + "rightLongText": "rightLongText", + "rightButtonLink": "rightButtonLink", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "imageHeight": "imageHeight", + "leftTitleText": "leftTitleText", + "rightTitleText": "rightTitleText" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size", + "titleTextStyle.align": "$root.content().theme().contentTheme().titleTextStyle().align", + "titleTextStyle.face": "$root.content().theme().contentTheme().titleTextStyle().face", + "titleTextStyle.color": "$root.content().theme().contentTheme().titleTextStyle().color", + "titleTextStyle.size": "$root.content().theme().contentTheme().titleTextStyle().size", + "longTextStyle.lineHeight": "$root.content().theme().contentTheme().longTextStyle().lineHeight", + "longTextStyle.align": "$root.content().theme().contentTheme().longTextStyle().align", + "buttonStyle.align": "$root.content().theme().contentTheme().buttonStyle().align", + "buttonStyle.face": "$root.content().theme().contentTheme().buttonStyle().face", + "buttonStyle.color": "$root.content().theme().contentTheme().buttonStyle().color", + "buttonStyle.size": "$root.content().theme().contentTheme().buttonStyle().size", + "buttonStyle.buttonColor": "$root.content().theme().contentTheme().buttonStyle().buttonColor", + "buttonStyle.radius": "$root.content().theme().contentTheme().buttonStyle().radius" + }, + "_defaultValues": { + "customStyle": false, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "fixedImageHeightVisible": true, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage.url": "", + "imageHeight": "100", + "leftImage.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "titleTextStyle.align": null, + "titleTextStyle.face": null, + "titleTextStyle.color": null, + "titleTextStyle.size": null, + "longTextStyle.lineHeight": null, + "longTextStyle.align": null, + "buttonStyle.align": null, + "buttonStyle.face": null, + "buttonStyle.color": null, + "buttonStyle.size": null, + "buttonStyle.buttonColor": null, + "buttonStyle.radius": null, + "leftButtonLink.url": "", + "rightImage.url": "", + "rightImage.alt": "", + "rightButtonLink.url": "", + "leftImage.src": "", + "leftTitleText": "Title", + "leftLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "leftButtonLink.text": "BUTTON", + "rightImage.src": "", + "rightTitleText": "Title", + "rightLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "rightButtonLink.text": "BUTTON" + }, + "customStyle": null, + "_complex": true, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "titleVisible": { + "_writeable": false, + "_name": "Show Title", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "buttonVisible": { + "_writeable": false, + "_name": "Show Button", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "imageVisible": { + "_writeable": false, + "_name": "Show Image", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "fixedImageHeightVisible": { + "_writeable": false, + "_name": "Fix image height", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 4 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 10 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 6 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 6 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 6 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 4 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 25 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 4 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 6 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 24 + }, + "leftImage": { + "_writeable": false, + "_name": "Left Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "leftLongText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Left Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "leftButtonLink": { + "_writeable": false, + "_name": "Left Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "rightImage": { + "_writeable": false, + "_name": "Right Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "rightLongText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Right Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "rightButtonLink": { + "_writeable": false, + "_name": "Right Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "_usecount": 114, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "imageHeight": { + "_writeable": false, + "_name": "Image Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true, + "_usecount": 2 + }, + "leftTitleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + }, + "rightTitleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + } + }, + "tripleArticleBlock": { + "_writeable": false, + "_name": "3 Columns Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "tripleArticleBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "backgroundColor": "backgroundColor", + "titleVisible": "titleVisible=true", + "buttonVisible": "buttonVisible=true", + "imageVisible": "imageVisible=true", + "fixedImageHeightVisible": "fixedImageHeightVisible=true", + "titleTextStyle": "titleTextStyle", + "longTextStyle": "longTextStyle", + "buttonStyle": "buttonStyle", + "leftImage": "leftImage", + "leftLongText": "leftLongText", + "leftButtonLink": "leftButtonLink", + "middleImage": "middleImage", + "middleLongText": "middleLongText", + "middleButtonLink": "middleButtonLink", + "rightImage": "rightImage", + "rightLongText": "rightLongText", + "rightButtonLink": "rightButtonLink", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "imageHeight": "imageHeight", + "leftTitleText": "leftTitleText", + "middleTitleText": "middleTitleText", + "rightTitleText": "rightTitleText" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size", + "titleTextStyle.align": "$root.content().theme().contentTheme().titleTextStyle().align", + "titleTextStyle.face": "$root.content().theme().contentTheme().titleTextStyle().face", + "titleTextStyle.color": "$root.content().theme().contentTheme().titleTextStyle().color", + "titleTextStyle.size": "$root.content().theme().contentTheme().titleTextStyle().size", + "longTextStyle.lineHeight": "$root.content().theme().contentTheme().longTextStyle().lineHeight", + "longTextStyle.align": "$root.content().theme().contentTheme().longTextStyle().align", + "buttonStyle.align": "$root.content().theme().contentTheme().buttonStyle().align", + "buttonStyle.face": "$root.content().theme().contentTheme().buttonStyle().face", + "buttonStyle.color": "$root.content().theme().contentTheme().buttonStyle().color", + "buttonStyle.size": "$root.content().theme().contentTheme().buttonStyle().size", + "buttonStyle.buttonColor": "$root.content().theme().contentTheme().buttonStyle().buttonColor", + "buttonStyle.radius": "$root.content().theme().contentTheme().buttonStyle().radius" + }, + "_defaultValues": { + "customStyle": false, + "titleVisible": true, + "buttonVisible": true, + "imageVisible": true, + "fixedImageHeightVisible": true, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage.url": "", + "imageHeight": "90", + "leftImage.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "titleTextStyle.align": null, + "titleTextStyle.face": null, + "titleTextStyle.color": null, + "titleTextStyle.size": null, + "longTextStyle.lineHeight": null, + "longTextStyle.align": null, + "buttonStyle.align": null, + "buttonStyle.face": null, + "buttonStyle.color": null, + "buttonStyle.size": null, + "buttonStyle.buttonColor": null, + "buttonStyle.radius": null, + "leftButtonLink.url": "", + "middleImage.url": "", + "middleImage.alt": "", + "middleButtonLink.url": "", + "rightImage.url": "", + "rightImage.alt": "", + "rightButtonLink.url": "", + "leftImage.src": "", + "leftTitleText": "Title", + "leftLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "leftButtonLink.text": "BUTTON", + "middleImage.src": "", + "middleTitleText": "Title", + "middleLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "middleButtonLink.text": "BUTTON", + "rightImage.src": "", + "rightTitleText": "Title", + "rightLongText": "

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.

    ", + "rightButtonLink.text": "BUTTON" + }, + "customStyle": null, + "_complex": true, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "titleVisible": { + "_writeable": false, + "_name": "Show Title", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 3 + }, + "buttonVisible": { + "_writeable": false, + "_name": "Show Button", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 6 + }, + "imageVisible": { + "_writeable": false, + "_name": "Show Image", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 6 + }, + "fixedImageHeightVisible": { + "_writeable": false, + "_name": "Fix image height", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 6 + }, + "titleTextStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 62, + "col": 27 + }, + "end": { + "line": 62, + "col": 51 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 62, + "col": 53 + }, + "end": { + "line": 62, + "col": 75 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 62, + "col": 77 + }, + "end": { + "line": 62, + "col": 94 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 62, + "col": 96 + }, + "end": { + "line": 62, + "col": 120 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 3 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 3 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 3 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 6 + }, + "_usecount": 15 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Paragraph", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 9 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 9 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 9 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true, + "_usecount": 3 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 6 + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 37 + }, + "buttonStyle": { + "_writeable": false, + "_name": "Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 6 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 6 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 6 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 9 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 6 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 3 + }, + "_usecount": 36 + }, + "leftImage": { + "_writeable": false, + "_name": "Left Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "leftLongText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Left Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "leftButtonLink": { + "_writeable": false, + "_name": "Left Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "middleImage": { + "_writeable": false, + "_name": "Central Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "middleLongText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Central Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "middleButtonLink": { + "_writeable": false, + "_name": "Central Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "rightImage": { + "_writeable": false, + "_name": "Right Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "rightLongText": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Right Text", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + }, + "rightButtonLink": { + "_writeable": false, + "_name": "Right Button", + "_category": "content", + "type": "buttonLink", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + }, + "_usecount": 168, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "imageHeight": { + "_writeable": false, + "_name": "Image Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true, + "_usecount": 3 + }, + "leftTitleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + }, + "middleTitleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + }, + "rightTitleText": { + "_writeable": false, + "_name": "Title Text", + "_category": "wysiwyg", + "type": "titleText", + "_initialized": true, + "_usecount": 2 + } + }, + "logoBlock longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "logoBlock imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "166=Small|258=Medium|350=Big", + "_category": "content", + "type": "imageWidth", + "_initialized": true + }, + "logoBlock": { + "_writeable": false, + "_name": "Logo Block", + "_globalStyle": "_theme_.contentTheme", + "_variant": "externalBackgroundVisible", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[externalBackgroundColor]", + "position": { + "start": { + "line": 208, + "col": 27 + }, + "end": { + "line": 208, + "col": 76 + } + } + } + ], + "_context": "block", + "type": "logoBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "externalBackgroundVisible": "externalBackgroundVisible=true", + "image": "image", + "imageWidth": "imageWidth=258", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "externalTextStyle": "externalTextStyle", + "backgroundColor": "backgroundColor", + "longTextStyle": "longTextStyle" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "externalTextStyle.face": "$root.content().theme().contentTheme().externalTextStyle().face", + "externalTextStyle.color": "$root.content().theme().contentTheme().externalTextStyle().color", + "externalTextStyle.size": "$root.content().theme().contentTheme().externalTextStyle().size", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "externalBackgroundVisible": true, + "imageWidth": "258", + "id": "", + "externalBackgroundColor": null, + "image.url": "", + "image.alt": "", + "externalTextStyle.face": null, + "externalTextStyle.color": null, + "externalTextStyle.size": null, + "backgroundColor": null, + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "image.src": "" + }, + "customStyle": null, + "_complex": true, + "externalBackgroundVisible": { + "_writeable": false, + "_name": "Transparent background", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "image": { + "_writeable": false, + "_name": "Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + }, + "imageWidth": { + "_writeable": false, + "_name": "Image Size", + "_widget": "select", + "_options": "166=Small|258=Medium|350=Big", + "_category": "content", + "type": "imageWidth", + "_initialized": true, + "_usecount": 10 + }, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 33, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "externalTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 73, + "col": 35 + }, + "end": { + "line": 73, + "col": 59 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 73, + "col": 61 + }, + "end": { + "line": 73, + "col": 83 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 73, + "col": 85 + }, + "end": { + "line": 73, + "col": 102 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 73, + "col": 104 + }, + "end": { + "line": 73, + "col": 128 + } + } + } + ], + "type": "textStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "_usecount": 3 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "_usecount": 3 + } + }, + "titleBlock": { + "_writeable": false, + "_name": "Title", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "titleBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "bigTitleStyle": "bigTitleStyle", + "text": "text" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "bigTitleStyle.align": "$root.content().theme().contentTheme().bigTitleStyle().align", + "bigTitleStyle.face": "$root.content().theme().contentTheme().bigTitleStyle().face", + "bigTitleStyle.color": "$root.content().theme().contentTheme().bigTitleStyle().color", + "bigTitleStyle.size": "$root.content().theme().contentTheme().bigTitleStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "bigTitleStyle.align": null, + "bigTitleStyle.face": null, + "bigTitleStyle.color": null, + "bigTitleStyle.size": null, + "text": "Section Title" + }, + "customStyle": null, + "_complex": true, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 12, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "bigTitleStyle": { + "_writeable": false, + "_name": "Title", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 76, + "col": 31 + }, + "end": { + "line": 76, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 76, + "col": 57 + }, + "end": { + "line": 76, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 76, + "col": 81 + }, + "end": { + "line": 76, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 76, + "col": 100 + }, + "end": { + "line": 76, + "col": 124 + } + } + } + ], + "type": "bigTitleStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 1 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 5 + }, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 2 + } + }, + "imageBlock longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "imageBlock": { + "_writeable": false, + "_name": "Image", + "_globalStyle": "_theme_.contentTheme", + "_variant": "gutterVisible", + "_category": "content", + "_context": "block", + "type": "imageBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "gutterVisible": "gutterVisible=false", + "longTextStyle": "longTextStyle", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "image": "image" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "gutterVisible": false, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "image.url": "", + "image.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "image.src": "" + }, + "customStyle": null, + "_complex": true, + "gutterVisible": { + "_writeable": false, + "_name": "Show Gutter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 7 + }, + "_usecount": 26, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "image": { + "_writeable": false, + "_name": "Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 4 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 10 + } + }, + "doubleImageBlock longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "doubleImageBlock": { + "_writeable": false, + "_name": "Two Image Gallery", + "_globalStyle": "_theme_.contentTheme", + "_variant": "gutterVisible", + "_category": "content", + "_context": "block", + "type": "doubleImageBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "gutterVisible": "gutterVisible=false", + "fixedImageHeightVisible": "fixedImageHeightVisible=true", + "longTextStyle": "longTextStyle", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "leftImage": "leftImage", + "imageHeight": "imageHeight", + "rightImage": "rightImage" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "gutterVisible": false, + "fixedImageHeightVisible": true, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage.url": "", + "imageHeight": "180", + "leftImage.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "rightImage.url": "", + "rightImage.alt": "", + "leftImage.src": "", + "rightImage.src": "" + }, + "customStyle": null, + "_complex": true, + "gutterVisible": { + "_writeable": false, + "_name": "Show Gutter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "fixedImageHeightVisible": { + "_writeable": false, + "_name": "Fix image height", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 8 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 8 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 8 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 8 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 25 + }, + "_usecount": 86, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "leftImage": { + "_writeable": false, + "_name": "Left Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 8 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 20 + }, + "imageHeight": { + "_writeable": false, + "_name": "Image Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true, + "_usecount": 4 + }, + "rightImage": { + "_writeable": false, + "_name": "Right Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 8 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 20 + } + }, + "tripleImageBlock longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true + } + }, + "tripleImageBlock": { + "_writeable": false, + "_name": "Three Image Gallery", + "_globalStyle": "_theme_.contentTheme", + "_variant": "gutterVisible", + "_category": "content", + "_context": "block", + "type": "tripleImageBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "gutterVisible": "gutterVisible=false", + "fixedImageHeightVisible": "fixedImageHeightVisible=true", + "longTextStyle": "longTextStyle", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "leftImage": "leftImage", + "imageHeight": "imageHeight", + "middleImage": "middleImage", + "rightImage": "rightImage" + }, + "_globalStyles": { + "longTextStyle.linksColor": "$root.content().theme().contentTheme().longTextStyle().linksColor", + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "longTextStyle.face": "$root.content().theme().contentTheme().longTextStyle().face", + "longTextStyle.color": "$root.content().theme().contentTheme().longTextStyle().color", + "longTextStyle.size": "$root.content().theme().contentTheme().longTextStyle().size" + }, + "_defaultValues": { + "customStyle": false, + "gutterVisible": false, + "fixedImageHeightVisible": true, + "longTextStyle.linksColor": null, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "leftImage.url": "", + "imageHeight": "160", + "leftImage.alt": "", + "longTextStyle.face": null, + "longTextStyle.color": null, + "longTextStyle.size": null, + "middleImage.url": "", + "middleImage.alt": "", + "rightImage.url": "", + "rightImage.alt": "", + "leftImage.src": "", + "middleImage.src": "", + "rightImage.src": "" + }, + "customStyle": null, + "_complex": true, + "gutterVisible": { + "_writeable": false, + "_name": "Show Gutter", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "fixedImageHeightVisible": { + "_writeable": false, + "_name": "Fix image height", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 12 + }, + "longTextStyle": { + "_writeable": false, + "_name": "Alternative Text", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['AaZz']", + "position": { + "start": { + "line": 66, + "col": 31 + }, + "end": { + "line": 66, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 66, + "col": 57 + }, + "end": { + "line": 66, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 66, + "col": 81 + }, + "end": { + "line": 66, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 66, + "col": 100 + }, + "end": { + "line": 66, + "col": 124 + } + } + } + ], + "type": "longTextStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "lineHeight": "lineHeight", + "align": "align", + "linksColor": "linksColor" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 12 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 12 + }, + "size": { + "_writeable": false, + "_name": "Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 12 + }, + "lineHeight": { + "_writeable": false, + "_name": "Line Height", + "_widget": "select", + "_options": "normal=Normal|150%=1.5 Lines|200%=Double", + "_category": "content", + "type": "lineHeight", + "_initialized": true + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true + }, + "linksColor": { + "_writeable": false, + "_name": "Link Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 37 + }, + "_usecount": 124, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 4 + }, + "leftImage": { + "_writeable": false, + "_name": "Left Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 8 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 20 + }, + "imageHeight": { + "_writeable": false, + "_name": "Image Height", + "_widget": "integer", + "_category": "content", + "type": "height", + "_initialized": true, + "_usecount": 6 + }, + "middleImage": { + "_writeable": false, + "_name": "Central Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 8 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 20 + }, + "rightImage": { + "_writeable": false, + "_name": "Right Image", + "_category": "content", + "type": "image", + "_initialized": true, + "_processedDefs": { + "src": "src", + "url": "url", + "alt": "alt" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "src": { + "_writeable": false, + "_name": "Image", + "_widget": "src", + "_category": "wysiwyg", + "type": "src", + "_initialized": true, + "_usecount": 4 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 8 + }, + "alt": { + "_writeable": false, + "_name": "Alternative Text", + "_widget": "text", + "_help": "Alternative text will be shown on email clients that does not download image automatically", + "_category": "content", + "type": "alt", + "_initialized": true, + "_usecount": 4 + }, + "_usecount": 20 + } + }, + "buttonBlock": { + "_writeable": false, + "_name": "Button Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "buttonBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "bigButtonStyle": "bigButtonStyle", + "link": "link" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "bigButtonStyle.align": "$root.content().theme().contentTheme().bigButtonStyle().align", + "bigButtonStyle.face": "$root.content().theme().contentTheme().bigButtonStyle().face", + "bigButtonStyle.color": "$root.content().theme().contentTheme().bigButtonStyle().color", + "bigButtonStyle.size": "$root.content().theme().contentTheme().bigButtonStyle().size", + "bigButtonStyle.buttonColor": "$root.content().theme().contentTheme().bigButtonStyle().buttonColor", + "bigButtonStyle.radius": "$root.content().theme().contentTheme().bigButtonStyle().radius" + }, + "_defaultValues": { + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "bigButtonStyle.align": null, + "bigButtonStyle.face": null, + "bigButtonStyle.color": null, + "bigButtonStyle.size": null, + "bigButtonStyle.buttonColor": null, + "bigButtonStyle.radius": null, + "link.url": "", + "link.text": "BUTTON" + }, + "customStyle": null, + "_complex": true, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 20, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "bigButtonStyle": { + "_writeable": false, + "_name": "Big Button", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-bind-text", + "value": "@['Button']", + "position": { + "start": { + "line": 81, + "col": 29 + }, + "end": { + "line": 81, + "col": 55 + } + } + }, + { + "type": "property", + "name": "-ko-font-family", + "value": "@face", + "position": { + "start": { + "line": 81, + "col": 57 + }, + "end": { + "line": 81, + "col": 79 + } + } + }, + { + "type": "property", + "name": "-ko-color", + "value": "@color", + "position": { + "start": { + "line": 81, + "col": 81 + }, + "end": { + "line": 81, + "col": 98 + } + } + }, + { + "type": "property", + "name": "-ko-font-size", + "value": "@[size]px", + "position": { + "start": { + "line": 81, + "col": 100 + }, + "end": { + "line": 81, + "col": 124 + } + } + }, + { + "type": "property", + "name": "-ko-background-color", + "value": "@buttonColor", + "position": { + "start": { + "line": 81, + "col": 126 + }, + "end": { + "line": 81, + "col": 160 + } + } + }, + { + "type": "property", + "name": "padding-left", + "value": "5px", + "position": { + "start": { + "line": 81, + "col": 162 + }, + "end": { + "line": 81, + "col": 179 + } + } + }, + { + "type": "property", + "name": "-ko-border-radius", + "value": "@[radius]px", + "position": { + "start": { + "line": 81, + "col": 181 + }, + "end": { + "line": 81, + "col": 211 + } + } + } + ], + "type": "buttonStyle", + "_initialized": true, + "_processedDefs": { + "face": "face", + "color": "color", + "size": "size", + "align": "align", + "buttonColor": "buttonColor", + "radius": "radius" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "face": { + "_writeable": false, + "_name": "Font", + "_widget": "select", + "_options": "Arial, Helvetica, sans-serif=Arial|Arial Black, Arial Black, Gadget, sans-serif=Arial Black|Comic Sans MS, Comic Sans MS5, cursive=Comic Sans|Courier New, Courier New, monospace=Courier|Georgia, serif=Georgia|Impact, sans-serif=Impact|Lucida Console, Monaco, monospace=Lucida Console|Lucida Sans Unicode, Lucida Grande, sans-serif=Lucida Sans Unicode|Times New Roman, Times, serif=Times New Roman|Verdana, Geneva, sans-serif=Verdana", + "_category": "content", + "type": "face", + "_initialized": true, + "_usecount": 2 + }, + "_complex": true, + "color": { + "_writeable": false, + "_name": "Text Color", + "_widget": "color", + "_category": "content", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "size": { + "_writeable": false, + "_name": "Text Size", + "_widget": "select", + "_options": "8|9|10|11|12|13|14|15|16|18|20|22|25|28|31", + "_category": "content", + "type": "size", + "_initialized": true, + "_usecount": 2 + }, + "align": { + "_writeable": false, + "_name": "Alignment", + "_widget": "select", + "_options": "left=Left|right=Right|center=Center", + "_category": "content", + "type": "align", + "_initialized": true, + "_usecount": 3 + }, + "buttonColor": { + "_writeable": false, + "_name": "Button Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "radius": { + "_writeable": false, + "_name": "Corner Radius", + "_widget": "integer", + "_max": "20", + "_help": "Attention - this property is not supported on all email clients (i.e. Outlook)", + "_category": "style", + "type": "radius", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 12 + }, + "link": { + "_writeable": false, + "_name": "Link", + "_category": "content", + "type": "link", + "_initialized": true, + "_processedDefs": { + "text": "text", + "url": "url" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "text": { + "_writeable": false, + "_category": "wysiwyg", + "_name": "Paragraph", + "_widget": "text", + "type": "text", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "url": { + "_writeable": false, + "_name": "Link", + "_widget": "url", + "_category": "content", + "type": "url", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 3 + } + }, + "hrBlock": { + "_writeable": false, + "_name": "Separator Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[backgroundColor]", + "position": { + "start": { + "line": 221, + "col": 28 + }, + "end": { + "line": 221, + "col": 69 + } + } + } + ], + "_context": "block", + "type": "hrBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "backgroundColor": "backgroundColor", + "hrStyle": "hrStyle" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor", + "hrStyle.hrWidth": "$root.content().theme().contentTheme().hrStyle().hrWidth", + "hrStyle.hrHeight": "$root.content().theme().contentTheme().hrStyle().hrHeight", + "hrStyle.color": "$root.content().theme().contentTheme().hrStyle().color" + }, + "_defaultValues": { + "customStyle": false, + "id": "", + "externalBackgroundColor": null, + "backgroundColor": null, + "hrStyle.hrWidth": null, + "hrStyle.hrHeight": null, + "hrStyle.color": null + }, + "customStyle": null, + "_complex": true, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 10, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "hrStyle": { + "_writeable": false, + "_name": "Separator Style", + "_category": "style", + "_previewBindings": [ + { + "type": "property", + "name": "height", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 25 + }, + "end": { + "line": 50, + "col": 37 + } + } + }, + { + "type": "property", + "name": "width", + "value": "200%", + "position": { + "start": { + "line": 50, + "col": 39 + }, + "end": { + "line": 50, + "col": 50 + } + } + }, + { + "type": "property", + "name": "bottom", + "value": "20px", + "position": { + "start": { + "line": 50, + "col": 52 + }, + "end": { + "line": 50, + "col": 64 + } + } + }, + { + "type": "property", + "name": "-ko-border-bottom", + "value": "@[hrHeight]px solid @color", + "position": { + "start": { + "line": 50, + "col": 66 + }, + "end": { + "line": 50, + "col": 111 + } + } + } + ], + "type": "hrStyle", + "_initialized": true, + "_processedDefs": { + "color": "color", + "hrWidth": "hrWidth", + "hrHeight": "hrHeight" + }, + "_globalStyles": {}, + "_defaultValues": {}, + "color": { + "_writeable": false, + "_name": "Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 1 + }, + "_complex": true, + "hrWidth": { + "_writeable": false, + "_name": "Width", + "_widget": "select", + "_options": "10|20|30|40|50|60|70|80|90|100", + "_category": "content", + "type": "hrWidth", + "_initialized": true, + "_usecount": 2 + }, + "hrHeight": { + "_writeable": false, + "_name": "Line height", + "_widget": "integer", + "_max": "80", + "_category": "content", + "type": "hrHeight", + "_initialized": true, + "_usecount": 2 + }, + "_usecount": 5 + } + }, + "spacerBlock": { + "_writeable": false, + "_name": "Spacer Block", + "_globalStyle": "_theme_.contentTheme", + "_category": "content", + "_previewBindings": [ + { + "type": "property", + "name": "-ko-background-color", + "value": "@[externalBackgroundColor]", + "position": { + "start": { + "line": 208, + "col": 27 + }, + "end": { + "line": 208, + "col": 76 + } + } + } + ], + "_context": "block", + "type": "spacerBlock", + "_initialized": true, + "_processedDefs": { + "customStyle": "customStyle=false", + "externalBackgroundVisible": "externalBackgroundVisible=true", + "id": "id", + "externalBackgroundColor": "externalBackgroundColor", + "spacerSize": "spacerSize", + "backgroundColor": "backgroundColor" + }, + "_globalStyles": { + "externalBackgroundColor": "$root.content().theme().contentTheme().externalBackgroundColor", + "backgroundColor": "$root.content().theme().contentTheme().backgroundColor" + }, + "_defaultValues": { + "customStyle": false, + "externalBackgroundVisible": true, + "id": "", + "externalBackgroundColor": null, + "spacerSize": "24", + "backgroundColor": null + }, + "customStyle": null, + "_complex": true, + "externalBackgroundVisible": { + "_writeable": false, + "_name": "Transparent background", + "_widget": "boolean", + "_category": "content", + "type": "visible", + "_initialized": true, + "_usecount": 2 + }, + "id": { + "_writeable": false, + "_category": "content", + "_widget": "id", + "type": "id", + "_initialized": true, + "_usecount": 1 + }, + "_usecount": 11, + "externalBackgroundColor": { + "_writeable": false, + "_name": "External Background", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + }, + "spacerSize": { + "_writeable": false, + "_name": "Height", + "_widget": "integer", + "_max": "90", + "_min": "4", + "_category": "content", + "type": "spacerSize", + "_initialized": true, + "_usecount": 4 + }, + "backgroundColor": { + "_writeable": false, + "_name": "Background Color", + "_widget": "color", + "_category": "style", + "type": "color", + "_initialized": true, + "_usecount": 2 + } + }, + "themes": { + "default": { + ".contentTheme.longTextStyle.linksColor": "#3f3f3f", + ".frameTheme.longTextStyle.linksColor": "#cccccc", + ".frameTheme.backgroundColor": "#3f3f3f", + ".frameTheme.linkStyle.face": "Arial, Helvetica, sans-serif", + ".frameTheme.linkStyle.color": "#ffffff", + ".frameTheme.linkStyle.size": "13", + ".frameTheme.linkStyle.decoration": "underline", + ".frameTheme.longTextStyle.align": "left", + ".frameTheme.longTextStyle.face": "Arial, Helvetica, sans-serif", + ".frameTheme.longTextStyle.color": "#919191", + ".frameTheme.longTextStyle.size": "13", + ".contentTheme.externalBackgroundColor": "#bfbfbf", + ".contentTheme.externalTextStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.externalTextStyle.color": "#f3f3f3", + ".contentTheme.externalTextStyle.size": "18", + ".contentTheme.backgroundColor": "#ffffff", + ".contentTheme.longTextStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.longTextStyle.color": "#3f3f3f", + ".contentTheme.longTextStyle.size": "13", + ".contentTheme.titleTextStyle.align": "left", + ".contentTheme.titleTextStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.titleTextStyle.color": "#3f3f3f", + ".contentTheme.titleTextStyle.size": "18", + ".contentTheme.longTextStyle.lineHeight": "normal", + ".contentTheme.longTextStyle.align": "left", + ".contentTheme.buttonStyle.align": "left", + ".contentTheme.buttonStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.buttonStyle.color": "#3f3f3f", + ".contentTheme.buttonStyle.size": "13", + ".contentTheme.buttonStyle.buttonColor": "#bfbfbf", + ".contentTheme.buttonStyle.radius": "4", + ".contentTheme.bigTitleStyle.align": "center", + ".contentTheme.bigTitleStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.bigTitleStyle.color": "#3f3f3f", + ".contentTheme.bigTitleStyle.size": "22", + ".contentTheme.hrStyle.hrWidth": "100", + ".contentTheme.hrStyle.hrHeight": "1", + ".contentTheme.hrStyle.color": "#3f3f3f", + ".contentTheme.bigButtonStyle.align": "center", + ".contentTheme.bigButtonStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.bigButtonStyle.color": "#3f3f3f", + ".contentTheme.bigButtonStyle.size": "22", + ".contentTheme.bigButtonStyle.buttonColor": "#bfbfbf", + ".contentTheme.bigButtonStyle.radius": "4", + ".contentTheme.shareButtonStyle.radius": "4", + ".contentTheme.shareButtonStyle.face": "Arial, Helvetica, sans-serif", + ".contentTheme.shareButtonStyle.size": "13", + ".contentTheme.shareButtonStyle.buttonColor": "#bfbfbf", + ".contentTheme.shareButtonStyle.color": "#3f3f3f" + } + } + }, + "templateName": "template", + "_blocks": [ + { + "root": "template", + "block": "preheaderBlock", + "context": "block" + }, + { + "root": "template", + "block": "footerBlock", + "context": "block" + }, + { + "root": "template", + "block": "template", + "context": "template" + }, + { + "root": "template", + "block": "logoBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "sideArticleBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "singleArticleBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "titleBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "textBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "tripleArticleBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "doubleArticleBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "hrBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "buttonBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "imageBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "doubleImageBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "tripleImageBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "bigSocialBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "shareBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "spacerBlock", + "context": "block", + "container": "mainBlocks" + }, + { + "root": "template", + "block": "socialBlock", + "context": "block", + "container": "mainBlocks" + } + ], + "version": "1.1.16" +} \ No newline at end of file diff --git a/packages/editor/spec/data/template-versafix-1.html b/packages/editor/spec/data/template-versafix-1.html new file mode 100644 index 00000000..cc77de68 --- /dev/null +++ b/packages/editor/spec/data/template-versafix-1.html @@ -0,0 +1,1582 @@ + + + + + + + TITLE + + + + + + +
    + +
    + + + + + +
    +
    +
    + + + + + +
    + + + + + + +
    Unsubscribe
    +
    + + + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + +
    +
    + + + + + +
    + + + + +
    +
    + + + + + + + +
    +
    + + + + + +
    + + + +
    + + + + + + + + + + +
    Title
    + +
    BUTTON
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Section Title
    + +
    BUTTON
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + + + +
    Section Title
    +
    + + + + + + + +
    +
    + + + +
    +
    + + + + + + + +
    +
    + + + + + + +
    + + + + + + + + + + + +
    Title
    + +
    BUTTON
    + + + + + + + + + + + +
    Title
    + +
    BUTTON
    + + + + + + + + + + + +
    Title
    + +
    BUTTON
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Title
    + +
    BUTTON
    + + + + + + + + + + + +
    Title
    + +
    BUTTON
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + + +
    + +
     
    +
    + + + + + + + +
    +
    + + + + + +
    + +
    BUTTON
    +
    + + + + + + + +
    +
    + + + +
    +
    + + + +
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + +
    + + + + +
    +
    + + + + + +
    + + + + +
    + + + + +
    +
    + + + + + + + +
    +
    + + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + + + + +
    +
    + + + + + + +
    +
    + + + + + + + +
    +
    + + + + + +
    + +
    + + + + +
    + + +
    Share +
    + +
    + + + + +
    + + +
    Share +
    + + + +
    + + + + +
    + + +
    Share +
    + + + +
    +
    + + + + + +
    + +
    + + + + +
    + + +
    Share +
    + +
    + + + + +
    + + +
    Share +
    + + + +
    + + + + +
    + + +
    Share +
    + + + +
    +
    + + + + + +
    + +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    + +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    + + + + + +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    +
    + + + + +
    + + +
    Share +
    + + + + + +
    +
    + + + + + + + +
    +
    + + + + + +
     
    +
     
    +
    + + + + + + + + +
    +
    + + + + + +
    + + + +
    + + + + +
    +
    + + + +
    + + + + + +
    +
    + + + + + +
    + + + + +
    Unsubscribe
    +
    + + +
    \ No newline at end of file diff --git a/packages/editor/spec/data/template-versafix-1.model.json b/packages/editor/spec/data/template-versafix-1.model.json new file mode 100644 index 00000000..82ce0f2d --- /dev/null +++ b/packages/editor/spec/data/template-versafix-1.model.json @@ -0,0 +1,159 @@ +{ + "type": "template", + "customStyle": false, + "preheaderVisible": true, + "titleText": "TITLE", + "preheaderBlock": { + "type": "preheaderBlock", + "customStyle": false, + "id": "", + "backgroundColor": null, + "preheaderText": "", + "linkStyle": { + "type": "linkStyle", + "face": null, + "color": null, + "size": null, + "decoration": null + }, + "preheaderLinkOption": "[unsubscribe_link]", + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "unsubscribeText": "Unsubscribe", + "webversionText": "View in your browser" + }, + "sponsor": { + "type": "sponsor", + "visible": true, + "src": "img/sponsor.gif", + "url": "", + "alt": "sponsor" + }, + "footerBlock": { + "type": "footerBlock", + "customStyle": false, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "id": "", + "backgroundColor": null, + "linkStyle": { + "type": "linkStyle", + "face": null, + "color": null, + "size": null, + "decoration": null + }, + "longText": "

    Email sent to [mail]

    ", + "disiscrivitiText": "Unsubscribe" + }, + "mainBlocks": { + "type": "blocks", + "blocks": [] + }, + "theme": { + "type": "theme", + "frameTheme": { + "type": "frameTheme", + "backgroundColor": "#3f3f3f", + "longTextStyle": { + "type": "longTextStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#919191", + "size": "13", + "lineHeight": null, + "align": "left", + "linksColor": "#cccccc" + }, + "linkStyle": { + "type": "linkStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#ffffff", + "size": "13", + "decoration": "underline" + } + }, + "contentTheme": { + "type": "contentTheme", + "longTextStyle": { + "type": "longTextStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "13", + "lineHeight": "normal", + "align": "left", + "linksColor": "#3f3f3f" + }, + "externalBackgroundColor": "#bfbfbf", + "externalTextStyle": { + "type": "textStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#f3f3f3", + "size": "18", + "align": null + }, + "backgroundColor": "#ffffff", + "titleTextStyle": { + "type": "textStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "18", + "align": "left" + }, + "buttonStyle": { + "type": "buttonStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "13", + "align": "left", + "buttonColor": "#bfbfbf", + "radius": "4" + }, + "bigTitleStyle": { + "type": "bigTitleStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "22", + "align": "center" + }, + "hrStyle": { + "type": "hrStyle", + "color": "#3f3f3f", + "hrWidth": "100", + "hrHeight": "1" + }, + "bigButtonStyle": { + "type": "buttonStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "22", + "align": "center", + "buttonColor": "#bfbfbf", + "radius": "4" + }, + "shareButtonStyle": { + "type": "shareButtonStyle", + "face": "Arial, Helvetica, sans-serif", + "iconColorType": "black", + "color": "#3f3f3f", + "size": "13", + "align": null, + "buttonColor": "#bfbfbf", + "radius": "4" + } + } + } +} \ No newline at end of file diff --git a/packages/editor/spec/data/template-versafix-1.save1.json b/packages/editor/spec/data/template-versafix-1.save1.json new file mode 100644 index 00000000..6254528c --- /dev/null +++ b/packages/editor/spec/data/template-versafix-1.save1.json @@ -0,0 +1,279 @@ +{ + "type": "template", + "customStyle": false, + "preheaderVisible": true, + "titleText": "TITLE", + "preheaderBlock": { + "type": "preheaderBlock", + "customStyle": false, + "id": "ko_preheaderBlock_1", + "backgroundColor": null, + "preheaderText": "", + "linkStyle": { + "type": "linkStyle", + "face": null, + "color": null, + "size": null, + "decoration": null + }, + "preheaderLinkOption": "[unsubscribe_link]", + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "unsubscribeText": "Unsubscribe", + "webversionText": "View in your browser" + }, + "sponsor": { + "type": "sponsor", + "visible": true, + "src": "http://127.0.0.1:9006/templates/versafix-1/img/sponsor.gif", + "url": "", + "alt": "sponsor" + }, + "footerBlock": { + "type": "footerBlock", + "customStyle": false, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "id": "ko_footerBlock_2", + "backgroundColor": null, + "linkStyle": { + "type": "linkStyle", + "face": null, + "color": null, + "size": null, + "decoration": null + }, + "longText": "

    Email sent to [mail]

    ", + "disiscrivitiText": "Unsubscribe" + }, + "mainBlocks": { + "type": "blocks", + "blocks": [ + { + "type": "logoBlock", + "customStyle": false, + "externalBackgroundVisible": true, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "imageWidth": "258", + "id": "ko_logoBlock_4", + "externalBackgroundColor": null, + "externalTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "backgroundColor": null, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + } + }, + { + "type": "bigSocialBlock", + "customStyle": false, + "bigSocialIconType": "rdbl", + "bigSocialIconSize": "48", + "fbVisible": true, + "fbUrl": "", + "twVisible": true, + "twUrl": "", + "ggVisible": true, + "ggUrl": "", + "webVisible": false, + "webUrl": "", + "inVisible": true, + "inUrl": "", + "piVisible": false, + "piUrl": "", + "flVisible": false, + "flUrl": "", + "viVisible": false, + "viUrl": "", + "instVisible": true, + "instUrl": "", + "youVisible": true, + "youUrl": "", + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "longText": null, + "id": "ko_bigSocialBlock_7", + "externalBackgroundColor": null, + "backgroundColor": null + }, + { + "type": "sideArticleBlock", + "customStyle": false, + "backgroundColor": null, + "titleVisible": true, + "buttonVisible": false, + "imageWidth": "166", + "imagePos": "left", + "titleTextStyle": { + "type": "textStyle", + "face": null, + "color": null, + "size": null, + "align": null + }, + "longTextStyle": { + "type": "longTextStyle", + "face": null, + "color": null, + "size": null, + "lineHeight": null, + "align": null, + "linksColor": null + }, + "buttonStyle": { + "type": "buttonStyle", + "face": null, + "color": null, + "size": null, + "align": null, + "buttonColor": null, + "radius": null + }, + "image": { + "type": "image", + "src": "", + "url": "", + "alt": "" + }, + "longText": "

    My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph My long paragraph 

    ", + "buttonLink": { + "type": "link", + "text": "BUTTON", + "url": "" + }, + "id": "ko_sideArticleBlock_3", + "externalBackgroundColor": null, + "titleText": "My title" + } + ] + }, + "theme": { + "type": "theme", + "frameTheme": { + "type": "frameTheme", + "backgroundColor": "#3f3f3f", + "longTextStyle": { + "type": "longTextStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#919191", + "size": "13", + "lineHeight": null, + "align": "left", + "linksColor": "#cccccc" + }, + "linkStyle": { + "type": "linkStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#ffffff", + "size": "13", + "decoration": "underline" + } + }, + "contentTheme": { + "type": "contentTheme", + "longTextStyle": { + "type": "longTextStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "13", + "lineHeight": "normal", + "align": "left", + "linksColor": "#3f3f3f" + }, + "externalBackgroundColor": "#bfbfbf", + "externalTextStyle": { + "type": "textStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#f3f3f3", + "size": "18", + "align": null + }, + "backgroundColor": "#ffffff", + "titleTextStyle": { + "type": "textStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "18", + "align": "left" + }, + "buttonStyle": { + "type": "buttonStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "13", + "align": "left", + "buttonColor": "#bfbfbf", + "radius": "4" + }, + "bigTitleStyle": { + "type": "bigTitleStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "22", + "align": "center" + }, + "hrStyle": { + "type": "hrStyle", + "color": "#3f3f3f", + "hrWidth": "100", + "hrHeight": "1" + }, + "bigButtonStyle": { + "type": "buttonStyle", + "face": "Arial, Helvetica, sans-serif", + "color": "#3f3f3f", + "size": "22", + "align": "center", + "buttonColor": "#bfbfbf", + "radius": "4" + }, + "shareButtonStyle": { + "type": "shareButtonStyle", + "face": "Arial, Helvetica, sans-serif", + "iconColorType": "black", + "color": "#3f3f3f", + "size": "13", + "align": null, + "buttonColor": "#bfbfbf", + "radius": "4" + } + } + } +} \ No newline at end of file diff --git a/packages/editor/spec/declarations-spec.js b/packages/editor/spec/declarations-spec.js new file mode 100644 index 00000000..546c22ec --- /dev/null +++ b/packages/editor/spec/declarations-spec.js @@ -0,0 +1,289 @@ +'use strict'; +/* globals describe: false, it: false, expect: false */ +/* globals process: false, console: false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['../src/js/converter/declarations.js', 'console', './utils.js', './domutils.js', 'console', '../node_modules/mensch']); + +var cheerio = require('cheerio'); +mockery.registerMock('jquery', cheerio); + +mockery.registerMock('jsep', require('../node_modules/jsep/src/jsep.js')); +mockery.registerMock('mensch/lib/parser.js', function() { + var parse = require('../node_modules/mensch').parse; + return parse.apply(parse, arguments); +}); +var elaborateDeclarations = require('../src/js/converter/declarations.js'); +var templateUrlConverter = function(url) { return '.'+url; }; + +var mockedBindingProvider = function(a, b) { + // console.log("binding provider for", a, b); + return "$" + a + "[" + b + "]"; +}; + +describe('Style declaration processor', function() { + + it('should not loose simple properties after a -ko-property', function() { + var styleSheet, declarations, previewBindings; + styleSheet = require('mensch/lib/parser.js')("#{\n" + 'color: red; -ko-color: @color; background-color: white' + "}", { + comments: true, + position: true + }); + declarations = styleSheet.stylesheet.rules[0].declarations; + previewBindings = elaborateDeclarations(undefined, declarations, templateUrlConverter, mockedBindingProvider); + expect(previewBindings).toEqual("virtualAttrStyle: 'color: '+($color[undefined]())+'; '+'background-color: white;'+''"); + + styleSheet = require('mensch/lib/parser.js')("#{\n" + 'color: red; background-color: white; -ko-color: @color' + "}", { + comments: true, + position: true + }); + declarations = styleSheet.stylesheet.rules[0].declarations; + previewBindings = elaborateDeclarations(undefined, declarations, templateUrlConverter, mockedBindingProvider); + expect(previewBindings).toEqual("virtualAttrStyle: 'color: '+($color[undefined]())+'; '+'background-color: white;'+''"); + + }); + + it('should not mix virtualStyle and virtualAttrStyle bindings', function() { + var styleSheet, declarations, previewBindings; + styleSheet = require('mensch/lib/parser.js')("#{\n" + '-ko-bind-text: @[\'Pulsante\']; -ko-font-family: @face; -ko-color: @color; -ko-font-size: @[size]px; -ko-background-color: @buttonColor; padding-left: 5px; -ko-border-radius: @[radius]px; padding: 5px;' + "}", { + comments: true, + position: true + }); + declarations = styleSheet.stylesheet.rules[0].declarations; + previewBindings = elaborateDeclarations(undefined, declarations, templateUrlConverter, mockedBindingProvider); + expect(previewBindings).toEqual("virtualAttrStyle: 'padding-left: 5px; '+'padding: 5px;'+'', text: 'Pulsante', virtualStyle: { fontFamily: $face[undefined](), color: $color[undefined](), fontSize: $size[undefined]()+'px', backgroundColor: $buttonColor[undefined](), borderRadius: $radius[undefined]()+'px' }"); + }); + + it('should mantain spaces and ; when removing/replacing declarations', function() { + var result; + result = elaborateDeclarations('color: red; -ko-color: @color; background-color: white', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; background-color: white"); + + result = elaborateDeclarations('color: red;-ko-color: @color;background-color: white', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red;color: red;background-color: white"); + }); + + + it('should correctly parse multiline declarations', function() { + var result; + + result = elaborateDeclarations('\tcolor: red;\n\t-ko-color: @color;\n\tbackground-color: white\n', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("\tcolor: red;\n\tcolor: red;\n\tbackground-color: white\n"); + }); + + it('should support modifiers', function() { + var result; + result = elaborateDeclarations('width: 10%; -ko-width: @[mywidth]%', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("width: 10%; width: 10%"); + + result = elaborateDeclarations('width: 10px; -ko-width: @[mywidth]px', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("width: 10px; width: 10px"); + + result = elaborateDeclarations('src: url(\'path\'); -ko-src: url(\'@myurl\')', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("src: url(\'.path\'); src: url(\'.path\')"); + + result = elaborateDeclarations('src: url("path"); -ko-src: url("@myurl")', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("src: url(\".path\"); src: url(\".path\")"); + + result = elaborateDeclarations('src: url(path); -ko-src: url(@myurl)', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("src: url(.path); src: url(.path)"); + + }); + + it('should be able to remove display: none', function() { + var result; + result = elaborateDeclarations('a: 1; display: none; b: 2', undefined, templateUrlConverter, mockedBindingProvider, undefined, undefined, true); + expect(result).toEqual("a: 1; ; b: 2"); + }); + + it('should support composed properties and hardcoded values', function() { + var result; + result = elaborateDeclarations('border: 1px 2px 3px 4px; -ko-border: @border1 @border2 3px @border4', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("border: 1px 2px 3px 4px; border: 1px 2px 3px 4px"); + }); + + it('should support conditional properties', function() { + var result, styleSheet, declarations; + styleSheet = require('mensch/lib/parser.js')("#{\n" + 'color: red; -ko-color: @mycolor; -ko-color-if: mycondition' + "}", { + comments: true, + position: true + }); + declarations = styleSheet.stylesheet.rules[0].declarations; + result = elaborateDeclarations(undefined, declarations, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("virtualAttrStyle: 'color: '+(($mycondition[undefined]()) ? $mycolor[undefined]() : null)+';'+''"); + + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-if: mycondition', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + }); + + it('should support simple expressions in conditional properties', function() { + var result, styleSheet, declarations; + styleSheet = require('mensch/lib/parser.js')("#{\n" + 'color: red; -ko-color: @mycolor; -ko-color-if: mycondition gt 1 and mycondition lt 3' + "}", { + comments: true, + position: true + }); + declarations = styleSheet.stylesheet.rules[0].declarations; + result = elaborateDeclarations(undefined, declarations, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("virtualAttrStyle: 'color: '+(((($mycondition[undefined]() > 1) && ($mycondition[undefined]() < 3))) ? $mycolor[undefined]() : null)+';'+''"); + + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-if: mycondition gt 1 and mycondition lt 3', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-ifnot: mycondition gt 1 and mycondition lt 3', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-ifnot: mycondition eq "ciao ciao"', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + + }); + + it('should support complex expressions in conditional properties', function() { + var result; + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-ifnot: mycondition eq "ciao ciao" and mycondition neq "miao" or mycondition lte 1 or Color.lighter(mycondition, "#00000") gte "#CCCCCC"', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-ifnot: !mycondition || true ? myobj.color : "red"', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toEqual("color: red; color: red; "); + }); + + it('should expect defaults', function() { + var result, exception; + try { + result = elaborateDeclarations('-ko-color: red', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Cannot find default/); + + try { + result = elaborateDeclarations('color: red blue; -ko-color: @a @b @c @d', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Cannot find default/); + }); + + // TODO the first now works (we support "or") while the seconds raise a different exception. + it('should raise an exception on unknown tokens in condition expressions', function() { + var result, exception; + try { + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-if: mycondition gt 1 xor mycondition lt 3', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Syntax error/); + + try { + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-if: mycondition gtn 1', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Syntax error/); + + }); + + it('should raise an exception on element styles applied with no element', function() { + var result, exception; + try { + result = elaborateDeclarations('-ko-attr-href: @myhref', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Attributes and bind declarations/); + + try { + result = elaborateDeclarations('-ko-bind-text: @mytext', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Attributes and bind declarations/); + + }); + + // TODO switching to JSEP raises an "'Found an unsupported expression type: Compound'"" exception, instead. + it('should raise an exception on unbalanced string values', function() { + var result, exception; + try { + result = elaborateDeclarations('color: red; -ko-color: @mycolor; -ko-color-if: mycondition eq "ciao ciao"a', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Syntax error/); + }); + + it('should raise an exception when -if and -ifnot are used on the same property', function() { + var result, exception; + try { + result = elaborateDeclarations('color: red; -ko-color-ifnot: mycondition; -ko-color: @mycolor; -ko-color-if: mycondition eq "ciao ciao"', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Unexpected error/); + }); + + + // TODO maybe this doesn't apply anymore?? + it('should raise errors on bad modifiers', function() { + var result, exception; + try { + result = elaborateDeclarations('src: url(\'path\'); -ko-src: @[myurl!mymod]', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/Syntax error /); + }); + + it('should raise errors on missing default value', function() { + var result, exception; + try { + result = elaborateDeclarations('-ko-color: @mycolor', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Cannot find default/); + }); + + it('should not alter the result when no -ko declarations are used', function() { + var result; + result = elaborateDeclarations('width: 10%; width: 20%', undefined, templateUrlConverter, mockedBindingProvider); + expect(result).toBe(null); + }); + + it('should raise errors on unexpected default values when using modifiers', function() { + var result, exception; + try { + result = elaborateDeclarations('width: 10%; -ko-width: @[mywidth]px', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Cannot find default/); + + try { + result = elaborateDeclarations('width: 10px; -ko-width: @[mywidth]%', undefined, templateUrlConverter, mockedBindingProvider); + } catch (e) { + exception = e; + } + expect(result).toEqual(undefined); + expect(exception).toMatch(/^Cannot find default/); + }); + + it('should camel case stles but not attributes', function() { + var result; + var $ = cheerio.load(''); + result = elaborateDeclarations('-ko-attr-data-attribute: @myvalue; background-color: red; -ko-background-color: @mycolor', undefined, templateUrlConverter, mockedBindingProvider, $('a')[0]); + expect("virtualAttr: { 'data-attribute': $myvalue[ciao]() }, virtualAttrStyle: 'background-color: '+($mycolor[red]())+';'+''").toEqual($('a').attr('data-bind')); + }); + +}); \ No newline at end of file diff --git a/packages/editor/spec/mensch-spec.js b/packages/editor/spec/mensch-spec.js new file mode 100644 index 00000000..2617af00 --- /dev/null +++ b/packages/editor/spec/mensch-spec.js @@ -0,0 +1,114 @@ +'use strict'; +/* globals describe: false, it: false, expect: false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['../src/js/converter/declarations.js', 'console', './utils.js', './domutils.js', 'console', '../node_modules/mensch']); +var currentDocument; +mockery.registerMock('jquery', function() { + return currentDocument.apply(currentDocument, arguments); +}); +mockery.registerMock('mensch/lib/parser.js', function() { + var parse = require('../node_modules/mensch').parse; + return parse.apply(parse, arguments); +}); + +var utils = require('../src/js/converter/utils.js'); + + +describe('Mensch parser', function() { + + it('should return expected positions', function() { + var styleText = " \nselector \n{\n color: red\n;\t}\n selector2{a:b}"; + var styleSheet = require('mensch/lib/parser.js')(styleText, { + comments: true, + position: true + }); + var declarations = styleSheet.stylesheet.rules[0].declarations; + + expect(styleSheet.stylesheet.rules[0].position).toEqual({ + start: { + line: 2, + col: 1 + }, + end: { + line: 3, + col: 1 + } + }); + expect(declarations[0].position).toEqual({ + start: { + line: 4, + col: 2 + }, + end: { + line: 5, + col: 1 + } + }); + expect(styleSheet.stylesheet.rules[1].position).toEqual({ + start: { + line: 6, + col: 2 + }, + end: { + line: 6, + col: 11 + } + }); + + + var replacedText = styleText; + replacedText = utils.removeStyle(replacedText, styleSheet.stylesheet.rules[1].position.start, styleSheet.stylesheet.rules[1].position.end, 0, 0, 0, 'CCC'); + replacedText = utils.removeStyle(replacedText, declarations[0].position.start, declarations[0].position.end, 0, 0, 0, 'BBB'); + replacedText = utils.removeStyle(replacedText, styleSheet.stylesheet.rules[0].position.start, styleSheet.stylesheet.rules[0].position.end, 0, 0, 0, 'AAA'); + expect(replacedText).toEqual(" \nAAA{\n BBB;\t}\n CCC{a:b}"); + }); + + it('should return expected positions 2', function() { + var styleText = "a { b: c; d: e }\na { b: c; d: e }"; + var styleSheet = require('mensch/lib/parser.js')(styleText, { + comments: true, + position: true + }); + var declarations = styleSheet.stylesheet.rules[0].declarations; + + expect(styleSheet.stylesheet.rules[0].position).toEqual({ + start: { + line: 1, + col: 1 + }, + end: { + line: 1, + col: 3 + } + }); + expect(declarations[0].position).toEqual({ + start: { + line: 1, + col: 5 + }, + end: { + line: 1, + col: 9 + } + }); + expect(styleSheet.stylesheet.rules[1].position).toEqual({ + start: { + line: 2, + col: 1 + }, + end: { + line: 2, + col: 3 + } + }); + + var replacedText = styleText; + replacedText = utils.removeStyle(replacedText, declarations[1].position.start, declarations[1].position.end, 0, 0, 0, 'D:E'); + replacedText = utils.removeStyle(replacedText, declarations[0].position.start, declarations[0].position.end, 0, 0, 0, 'B:C'); + replacedText = utils.removeStyle(replacedText, styleSheet.stylesheet.rules[0].position.start, styleSheet.stylesheet.rules[0].position.end, 0, 0, 0, 'A'); + expect(replacedText).toEqual("A{ B:C; D:E}\na { b: c; d: e }"); + }); + +}); \ No newline at end of file diff --git a/packages/editor/spec/model-spec.js b/packages/editor/spec/model-spec.js new file mode 100644 index 00000000..86426026 --- /dev/null +++ b/packages/editor/spec/model-spec.js @@ -0,0 +1,88 @@ +'use strict'; +/* globals it:false, describe:false, expect:false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['console', './domutils.js']); +var currentDocument; +mockery.registerMock('jquery', function() { + return currentDocument.apply(currentDocument, arguments); +}); + +describe('Model generator', function() { + + /* + ensurePathAndGetBindValue: modelEnsurePathAndGetBindValue.bind(undefined, false), + getBindValue: modelEnsurePathAndGetBindValue.bind(undefined, true), + generateModel: _generateModel, + getDef: _getDef, + createOrUpdateBlockDef: _modelCreateOrUpdateBlockDef, + checkModel: checkModel + */ + describe('ensurePathAndGetBindValue', function() { + + /* + main.js.processBlock: var bindingProvider = modelDef.ensurePathAndGetBindValue.bind(undefined, defs, themeUpdater, rootModelName, templateName, ''); + main.js.processBlock: var localWithBindingProvider = modelDef.ensurePathAndGetBindValue.bind(undefined, defs, themeUpdater, rootModelName); + main.js.processBlock: var modelBindValue = modelDef.ensurePathAndGetBindValue (defs, themeUpdater, rootModelName, templateName, '', blockName); + main.js.translateTemplate: modelDef.ensurePathAndGetBindValue (defs, themeUpdater, templateName, templateName, '', containerName+".blocks", "[]"); + + main.js.createBlockEditor: var withBindingProvider = modelDef.getBindValue.bind(undefined, defs, themeUpdater, rootModelName, templateName); + + stylesheet.js.processStylesheetRules: bindingProvider = localWithBindingProvider.bind(this, 'theme', ''); + stylesheet.js.processStylesheetRules: bindingProvider = localWithBindingProvider.bind(this, localBlockName, ''); + */ + + + + it('should return expected positions', function() { + var styleText = " \nselector \n{\n color: red\n;\t}\n selector2{a:b}"; + var styleSheet = require('mensch/lib/parser.js')(styleText, { + comments: true, + position: true + }); + var declarations = styleSheet.stylesheet.rules[0].declarations; + + expect(styleSheet.stylesheet.rules[0].position).toEqual({ + start: { + line: 2, + col: 1 + }, + end: { + line: 3, + col: 1 + } + }); + expect(declarations[0].position).toEqual({ + start: { + line: 4, + col: 2 + }, + end: { + line: 5, + col: 1 + } + }); + expect(styleSheet.stylesheet.rules[1].position).toEqual({ + start: { + line: 6, + col: 2 + }, + end: { + line: 6, + col: 11 + } + }); + + var utils = require('../src/js/converter/utils.js'); + + var replacedText = styleText; + replacedText = utils.removeStyle(replacedText, styleSheet.stylesheet.rules[1].position.start, styleSheet.stylesheet.rules[1].position.end, 0, 0, 0, 'CCC'); + replacedText = utils.removeStyle(replacedText, declarations[0].position.start, declarations[0].position.end, 0, 0, 0, 'BBB'); + replacedText = utils.removeStyle(replacedText, styleSheet.stylesheet.rules[0].position.start, styleSheet.stylesheet.rules[0].position.end, 0, 0, 0, 'AAA'); + expect(replacedText).toEqual(" \nAAA{\n BBB;\t}\n CCC{a:b}"); + }); + + }); + +}); \ No newline at end of file diff --git a/packages/editor/spec/stylesheet-spec.js b/packages/editor/spec/stylesheet-spec.js new file mode 100644 index 00000000..efc58ee2 --- /dev/null +++ b/packages/editor/spec/stylesheet-spec.js @@ -0,0 +1,186 @@ +'use strict'; +/* globals console:false, describe:false, it:false, expect:false, jasmine:false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['../src/js/converter/declarations.js', 'console', './utils.js', './domutils.js', 'console', '../node_modules/mensch']) + +mockery.registerMock('jquery', require('cheerio')); + +mockery.registerMock('mensch/lib/parser.js', function() { + var parse = require('../node_modules/mensch').parse; + return parse.apply(parse, arguments); +}); +var processStylesheetRules = require('../src/js/converter/stylesheet.js'); + +var mockedWithBindingProvider = function(x, y, a, b) { + return "$" + x + '.' + a + "[" + b + "]"; +}; + +var blockDefsUpdater = function() { + console.log("BDU", arguments); +}; + +var themeUpdater = function() { + console.log("TU", arguments); +}; + +describe('Stylesheet declaration processor', function() { + + it('should add "namespacing" to every rule', function() { + var result; + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules('a { b: c }', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("a{ b: c }"); + + result = processStylesheetRules('a{b:c}', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("a{b:c}"); + + result = processStylesheetRules('a, b { b: c } @media all { c { d: e } }', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("a, b{ b: c } @media all { c{ d: e } }"); + + // processStylesheetRules('a { b: c }', undefined, mockedBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + }); + + it('should process simple -ko properties', function() { + var result; + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules('a { b: c; -ko-b: @myc }', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("a{ b: c; b: c}"); + + result = processStylesheetRules('prova{color: #3f3f3f;-ko-color:@[\'#3f3f3f\'];}\r\nprova{color: #3f3f3f;-ko-color:@[\'#3f3f3f\'];}', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("prova{color: #3f3f3f;color: #3f3f3f;}\r\nprova{color: #3f3f3f;color: #3f3f3f;}"); + + }); + + it('should process [data-ko-block=] directive', function() { + var result; + + var blockDefsUpdater = jasmine.createSpy("blockDefsUpdater"); + + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules('a[data-ko-block=foo] { b: c; -ko-b: @myc }', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo{ b: c; b: c } "); + + expect(blockDefsUpdater).toHaveBeenCalledWith('foo', '', { contextName: 'block' }); + // blockDefsUpdater.calls.reset(); + + result = processStylesheetRules('a[data-ko-block=foo], [data-ko-block=foo] a { b: c; -ko-b: @myc }', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo, foo a{ b: c; b: c } "); + + // expect(blockDefsUpdater).toHaveBeenCalledWith('foo', '', undefined, 'block'); + // expect(blockDefsUpdater.calls.count()).toEqual(2); + // blockDefsUpdater.calls.reset(); + + result = processStylesheetRules('a[data-ko-block=foo],\n [data-ko-block=foo] a { b: c; -ko-b: @myc }', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo, foo a{ b: c; b: c } "); + + result = processStylesheetRules('a[data-ko-block=foo]{}b[data-ko-block=foo]{}', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo{} bfoo{} "); + + result = processStylesheetRules('a[data-ko-block=foo] { } b[data-ko-block=foo] { } ', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo{ } bfoo{ } "); + + result = processStylesheetRules('a[data-ko-block=foo]{\n}b[data-ko-block=foo]{\n}', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" afoo{\n} bfoo{\n} "); + + }); + + it('should throw error on multiple different [data-ko-block=] directive', function() { + var result, exception; + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + try { + result = processStylesheetRules('a[data-ko-block=foo], b[data-ko-block=bar] { b: c; -ko-b: @myc }', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + } catch (e) { + exception = e; + } + expect(result).toBe(undefined); + expect(exception).toMatch(/^Found multiple/); + }); + + it('should process multiline [data-ko-block=] directive', function() { + var result; + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules(' a[data-ko-block=foo] {\n b: c;\n -ko-b: @myc\n }\n', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" \n afoo{\n b: c;\n b: c\n }\n "); + + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules(' f { g: h; }\n i{j:k}\n a[data-ko-block=foo] {\n b: c;\n -ko-b: @myc\n }\n', undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual(" f{ g: h; }\n i{j:k}\n \n afoo{\n b: c;\n b: c\n }\n "); + + + result = processStylesheetRules("\n [data-ko-block=tripleArticleBlock] .links-color a,\n [data-ko-block=tripleArticleBlock] .links-color a:hover {\n color: #3f3f3f;\n -ko-color: @longTextStyle.linksColor;\n text-decoration: underline;\n }\na{b:c}", undefined, mockedWithBindingProvider, blockDefsUpdater, themeUpdater, '.', 'template', 'block'); + expect(result).toEqual("\n \n tripleArticleBlock .links-color a, tripleArticleBlock .links-color a:hover{\n color: #3f3f3f;\n color: #3f3f3f;\n text-decoration: underline\n }\n a{b:c}"); + }); + + it('should ignore comments or unknown rules but keep them', function() { + var result; + // function(style, rules, localWithBindingProvider, blockDefsUpdater, themeUpdater, basePath, rootModelName, templateName) { + result = processStylesheetRules('/* first */a { b: c; /* second */-ko-b: @myc }/* third */', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("/* first */a{ b: c; /* second */b: c}/* third */"); + + result = processStylesheetRules('@keyframes{a{-ko-b:@c}}a {b:c}', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("@keyframes{a{-ko-b:@c}}a{b:c}"); + }); + + it('should parse unsupported supports rules', function() { + var result; + result = processStylesheetRules('@supports cips {a{b:1;-ko-b:@myb}}a {b:c}', undefined, mockedWithBindingProvider, undefined, undefined, '.', 'template', 'block'); + expect(result).toEqual("@supports cips {a{b:1;b: 1}}a{b:c}"); + }); + + it('should parse -ko-blockdefs definitions', function() { + var result; + var blockDefsUpdater = jasmine.createSpy("blockDefsUpdater"); + result = processStylesheetRules('@supports -ko-blockdefs { color { widget: color } color:preview { -ko-color: @color } }', undefined, mockedWithBindingProvider, blockDefsUpdater, undefined, '.', 'template', 'block'); + expect(result).toEqual(""); + expect(blockDefsUpdater).toHaveBeenCalledWith('color', '', { widget: 'color' }); + expect(blockDefsUpdater).toHaveBeenCalledWith('color', undefined, { previewBindings: [{ + type: 'property', + name: '-ko-color', + value: '@color', + position: { + start: { + line: 1, + col: 67 + }, + end: { + line: 1, + col: 85 + } + } + }]}); + // console.log("BBB", blockDefsUpdater.calls); + }); + + it('should parse -ko-blockdefs definitions, even empty declarations', function() { + var result; + var blockDefsUpdater = jasmine.createSpy("blockDefsUpdater"); + result = processStylesheetRules('@supports -ko-blockdefs { color { } }', undefined, mockedWithBindingProvider, blockDefsUpdater, undefined, '.', 'template', 'block'); + expect(blockDefsUpdater).toHaveBeenCalledWith('color', '', {}); + expect(result).toEqual(""); + // console.log("BBB", blockDefsUpdater.calls); + }); + + it('should parse -ko-blockdefs definitions, even quoted values', function() { + var result; + var blockDefsUpdater = jasmine.createSpy("blockDefsUpdater"); + result = processStylesheetRules('@supports -ko-blockdefs { color { label: "esc\'aped" } }', undefined, mockedWithBindingProvider, blockDefsUpdater, undefined, '.', 'template', 'block'); + expect(blockDefsUpdater).toHaveBeenCalledWith('color', '', { name: 'esc\'aped' }); + expect(result).toEqual(""); + // console.log("BBB", blockDefsUpdater.calls); + }); + + it('should raise an error when mixing preview selctor with other declarations', function() { + var result, exception; + try { + result = processStylesheetRules('@supports -ko-blockdefs { color, color:preview { } }', undefined, mockedWithBindingProvider, blockDefsUpdater, undefined, '.', 'template', 'block'); + } catch (e) { + exception = e; + } + expect(result).toBeUndefined(); + expect(exception).toMatch(/^Cannot mix/); + // console.log("BBB", blockDefsUpdater.calls); + }); + +}); \ No newline at end of file diff --git a/packages/editor/spec/wrapper-spec.js b/packages/editor/spec/wrapper-spec.js new file mode 100644 index 00000000..9f6860b1 --- /dev/null +++ b/packages/editor/spec/wrapper-spec.js @@ -0,0 +1,192 @@ +'use strict'; +/* globals describe: false, it: false, expect: false */ + +var mockery = require('mockery'); +mockery.enable(); +mockery.registerAllowables(['../src/js/converter/declarations.js', './wrapper.js', 'console', './utils.js', './domutils.js', 'console', '../node_modules/mensch', 'fs', 'path', 'mkdirp']); + +var main = require('../src/js/converter/main.js'); +var fs = require('fs'); + +mockery.registerMock('knockout', require('../node_modules/knockout')); +// mockery.registerMock('knockout.wrap', require('../node_modules/knockout.wrap/knockout.wrap.js')); +mockery.registerMock('knockoutjs-reactor', require('../node_modules/ko-reactor/dist/ko-reactor.js')); +// mockery.registerMock('knockout-undomanager', require('../node_modules/knockout-undomanager/knockout-undomanager.js')); + +var undoserializer = require("../src/js/undomanager/undoserializer.js"); +var console = require("console"); + +var ko = require('knockout'); +// var undoManager = require('knockout-undomanager'); +var undoManager = require('../src/js/undomanager/undomanager.js'); +var modelDef = require('../src/js/converter/model.js'); + +describe('model wrapper and undomanager', function() { + + it('should be able to load previous data and deal with variants', function() { + + var templateDef = JSON.parse("" + fs.readFileSync("spec/data/template-versafix-1.def.json")); + var content = main.wrappedResultModel(templateDef); + + var savedModel = JSON.parse("" + fs.readFileSync("spec/data/template-versafix-1.save1.json")); + content._wrap(savedModel); + + // loaded correctly? + expect(content().mainBlocks().blocks()[2]().titleText()).toEqual("My title"); + + // able to switch to another variant + expect(content().mainBlocks().blocks()[0]().externalBackgroundVisible()).toEqual(true); + content().mainBlocks().blocks()[0]()._nextVariant(); + expect(content().mainBlocks().blocks()[0]().externalBackgroundVisible()).toEqual(false); + }); + + it('should support undo/redo and full model replacement', function() { + + var templateDef = JSON.parse("" + fs.readFileSync("spec/data/template-versafix-1.def.json")); + var content = main.wrappedResultModel(templateDef); + + var titleBlock = modelDef.generateModel(templateDef._defs, 'titleBlock'); + + var jsonContent = ko.toJSON(content); + + var undoRedoStack = undoManager(content, { + levels: 100, + undoLabel: ko.computed(function() { return "Undo (#COUNT#)"; }), + redoLabel: ko.computed(function() { return "Redo"; }) + }); + + undoRedoStack.setUndoActionMaker(undoserializer.makeUndoAction.bind(undefined, content)); + undoserializer.watchEnabled(true); + undoRedoStack.setModeOnce(); + + expect(content().titleText()).toEqual("TITLE"); + + content().titleText('New Title 1'); + + expect(content().titleText()).toEqual("New Title 1"); + + undoRedoStack.undoCommand.execute(); + + expect(content().titleText()).toEqual("TITLE"); + + undoRedoStack.redoCommand.execute(); + + expect(content().titleText()).toEqual("New Title 1"); + + content().mainBlocks().blocks.push(titleBlock); + + /* This is not supported in the current code + var unwrapped = ko.utils.parseJson(jsonContent); + content(unwrapped); + + expect(content().titleText()).toEqual("TITLE"); + + content().titleText('New Title 2'); + + expect(content().titleText()).toEqual("New Title 2"); + + undoRedoStack.undoCommand.execute(); + + expect(content().titleText()).toEqual("TITLE"); + */ + + }); + + it('should support undo/redo of move actions', function() { + + var templateDef = JSON.parse("" + fs.readFileSync("spec/data/template-versafix-1.def.json")); + var content = main.wrappedResultModel(templateDef); + + var titleBlock1 = modelDef.generateModel(templateDef._defs, 'titleBlock'); + var titleBlock2 = modelDef.generateModel(templateDef._defs, 'titleBlock'); + var titleBlock3 = modelDef.generateModel(templateDef._defs, 'titleBlock'); + + var jsonContent = ko.toJSON(content); + + var undoRedoStack = undoManager(content, { + levels: 100, + undoLabel: ko.computed(function() { return "Undo (#COUNT#)"; }), + redoLabel: ko.computed(function() { return "Redo"; }) + }); + + undoRedoStack.setUndoActionMaker(undoserializer.makeUndoAction.bind(undefined, content)); + undoserializer.watchEnabled(true); + undoRedoStack.setModeOnce(); + + var blocks = content().mainBlocks().blocks; + + blocks.push(titleBlock1); + blocks.push(titleBlock2); + blocks.push(titleBlock3); + + blocks()[0]().text('Title 1'); + blocks()[1]().text('Title 2'); + blocks()[2]().text('Title 3'); + + expect(blocks()[0]().text()).toEqual("Title 1"); + expect(blocks()[2]().text()).toEqual("Title 3"); + + var debug = function(prefix, blocks) { + for (var i = 0; i < blocks().length; i++) { + console.log(prefix, i, blocks()[i]().text()); + } + }; + + undoserializer.setListener(function(path, child, oldVal, item) { + console.log("UL:", path, oldVal, item.status, item.index, item.moved, item.value.text); + }); + + debug("A", blocks); + + blocks.subscribe(function (changes) { + var ch = ko.toJS(changes); + for (var i = 0; i < ch.length; i++) { + console.log("AC", i, ch[i].status, ch[i].index, ch[i].moved, ch[i].value.text); + } + }, undefined, 'arrayChange'); + + // using undomanager Merge modes + undoRedoStack.setModeMerge(); + blocks.valueWillMutate(); + var removed = blocks.splice(2, 1); + blocks.splice(0, 0, removed[0]); + blocks.valueHasMutated(); + undoRedoStack.setModeOnce(); + + debug("B", blocks); + + expect(blocks()[0]().text()).toEqual("Title 3"); + expect(blocks()[2]().text()).toEqual("Title 2"); + + undoRedoStack.undoCommand.execute(); + + debug("C", blocks); + + expect(blocks()[0]().text()).toEqual("Title 1"); + expect(blocks()[2]().text()).toEqual("Title 3"); + + /* This is not supported in the current code + + // using "move action" (sortable with move strategy will use valueWillMute/hasMutated + blocks.valueWillMutate(); + var underlyingBlocks = ko.utils.unwrapObservable(blocks); + var removed2 = underlyingBlocks.splice(2, 1); + underlyingBlocks.splice(0, 0, removed2[0]); + blocks.valueHasMutated(); + + debug("D", blocks); + + expect(blocks()[0]().text()).toEqual("Title 3"); + expect(blocks()[2]().text()).toEqual("Title 2"); + + undoRedoStack.undoCommand.execute(); + + debug("E", blocks); + + expect(blocks()[0]().text()).toEqual("Title 1"); + expect(blocks()[2]().text()).toEqual("Title 3"); + */ + + }); + +}); \ No newline at end of file diff --git a/packages/editor/src/css/app_standalone.less b/packages/editor/src/css/app_standalone.less new file mode 100644 index 00000000..bb757a51 --- /dev/null +++ b/packages/editor/src/css/app_standalone.less @@ -0,0 +1,7 @@ +@import "../../node_modules/font-awesome/less/font-awesome.less"; +@import 'style_mosaico.less'; + +@fa-font-path: "fontawesome"; + +@import (less) "../../node_modules/toastr/toastr.less"; +@import (less) "../../node_modules/evol-colorpicker/css/evol-colorpicker.css"; \ No newline at end of file diff --git a/packages/editor/src/css/app_standalone_material.less b/packages/editor/src/css/app_standalone_material.less new file mode 100644 index 00000000..ca73283f --- /dev/null +++ b/packages/editor/src/css/app_standalone_material.less @@ -0,0 +1,386 @@ +@import 'app_standalone.less'; + +@accent-color: #900000; // #A01020; // #ff9800; +@background-color: #eeeeee; +// @link-color: #ff9800; +// @link-color: #ff5722; // #ea1c0d; +@link-color: #ff5722; // #ea1c0d; + +@font-family: "Noto Sans", "Helvetica Neue", Helvetica, Arial, "Nimbus Sans L", "Liberation Sans", Arimo, sans-serif; +@standard-border-radius: 2px; +@info-border-radius: @standard-border-radius; +@button-border-radius: @standard-border-radius; +@large-balloon-border-radius: 2px; + +@object-background-color: #DDDDDD; +// @mosaico-object-shadow: 1px 1px 2px lighten(@shadow-color, 30%); + +@input-background-color: white; +@input-border-color: lighten(@text-color, 20%); + +@mosaico-selection-color: @link-color; + +#main-preview #preview-toolbar { + padding: 1px 5px; +} + +#toolbar { + padding: 1px 5px; +} + +@button-background-color: @link-color; +@button-border-color: transparent; + +@ui-tabs-panel-padding: 0; + +// @button-hover-background-color: + +.button-style() { + text-transform: uppercase; +} + +#main-edit-area .tool { + border-radius: 100%; + padding: 4px; + padding-bottom: 2px; + box-shadow: 1px 1px 3px @shadow-color; +} + +#toolbar, #preview-toolbar { + .ui-button { + padding-top: 7px; + padding-bottom: 7px; + line-height: 22px; + + background-color: @mosaico-ui-background-color; + &:hover, &.pressed { + background-color: lighten(@mosaico-ui-background-color, 10%); + } + &.selected, &.ui-state-active { + border-bottom: 2px solid @button-text-color; + border-top: 0; + } + &.ui-button-disabled, &.ui-button-disabled .ui-icon, &.ui-button-disabled .ui-button-text { + color: mix(@mosaico-ui-background-color, @button-text-color); + } + } +} + +#main-toolbox #tooltabs.ui-tabs > .ui-tabs-nav { + box-shadow: 0 0 10px @shadow-color; + position: absolute; + left: 0; + right: 0; + z-index: 105; // the panel is 100, and the main toolbar 110 +} + +#main-toolbox #tooltabs.ui-tabs { + .ui-tabs-nav { + font-size: 1em; + li { + margin: 1px 1px 0 0; + line-height: @topbar-height - 4px; + } + } +} + +.addblockbutton { + box-shadow: 1px 1px 3px @shadow-color; +} + +.tabs-style(@activeclass: ~'.active', @buttonstyle: false) { + + text-transform: uppercase; + + & when (@buttonstyle) { + border-bottom: 0; + background-color: transparent; + } + li > a when (@buttonstyle) { + background-color: transparent; + &:hover { + background-color: lighten(@mosaico-ui-background-color, 10%); + border-bottom: 3px solid lighten(@mosaico-ui-background-color, 10%); + } + } + + li@{activeclass} a { + & when(@buttonstyle) { + background-color: transparent; + color: @button-text-color; + border-bottom: 3px solid @button-text-color; + } + } +} + +#main-toolbox { + .blockCheck input[type=checkbox] { + &:checked + .checkbox-replacer:after, + & + .checkbox-replacer:before { + border-radius: 50%; + // padding: 5px; + box-shadow: 1px 1px 2px @shadow-color; + } + + & + .checkbox-replacer:after, + &:checked + .checkbox-replacer:before { + border-radius: 30px; + background-color: lighten(@button-background-color, 20%); + color: @button-text-color; + // margin: 0 -2px; + } + & + .checkbox-replacer:after { + padding-left: 15px; + margin-left: -15px; + border-color: transparent; + } + &:checked + .checkbox-replacer:before { + padding-right: 15px; + margin-right: -15px; + border-color: transparent; + } + } + + + .objEdit .propInput input[type=checkbox] { + &:checked + .checkbox-replacer:before { + margin-left: 20px; + background-color: @button-background-color; + } + & + .checkbox-replacer:after, + & + .checkbox-replacer:before { + content: " "; + display: block; + transition: margin-left .2s, background-color .2s; + } + & + .checkbox-replacer:before { + width: 20px; + height: 20px; + background-color: white; + border-radius: 50%; + font-size: 120%; + box-shadow: 1px 1px 3px @shadow-color; + } + &:checked + .checkbox-replacer:after { + background-color: lighten(@button-background-color, 20%); + } + & + .checkbox-replacer:after { + width: 34px; + height: 14px; + margin: -16px 2px 0 2px; + border-radius: 7px; + background-color: lighten(@text-color, 30%); + } + } + +} +.mo .objEdit input[type=checkbox]+.checkbox-replacer:before { + color: @button-background-color; +} + +.mo .propInput .data-select select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.mo .propInput .data-select:after { + background-color: transparent; + color: lighten(@text-color, 30%); +} +.mo .propInput .evo-pointer:before { + background-color: white; + color: lighten(@text-color, 30%); +} +.mo .propInput .data-integer .ui-spinner-button .ui-button-text { + background-color: transparent; + color: lighten(@text-color, 30%); +} +.mo .propInput .data-select:hover:after, +.mo .propInput .evo-pointer:hover:before, +.mo .ui-button.ui-spinner-button.ui-state-hover, +.mo .propInput .data-integer .ui-button-text, +.mo .propInput .data-integer .ui-spinner-button:hover .ui-button-text { + color: @button-background-color; +} + +.mo .propInput .ui-spinner .ui-spinner-input { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.mo .ui-button.ui-spinner-button { + background-color: transparent; + // color: lighten(@text-color, 30%); + .ui-button-text .ui-icon { + color: lighten(@text-color, 30%); + } +} + +#main-toolbox .objLabel.level1 { + font-weight: bold; + border-bottom-width: 1px; +} + +.mo .objPreview { + border-width: 0; + box-shadow: 1px 1px 3px @shadow-color; +} + +.mo .objLabel { + border-bottom: 0; + font-weight: bold; + font-size: 80%; +} + +.mo .objEdit.level1 { + border-top: 2px solid @accent-color; +} + +#main-toolbox .objLabel.level1 { + font-size: 1em; + padding-top: .5em; +} + +.mo #toolstyles .objLabel.level1, .mo #tooltheme .objLabel.level1 { + padding-left: 70px; +} + +.mo .objLabel.level0 { + border-bottom: none; +} + +.input-style() { + box-shadow: none; +} + +.mo { + a { + &:link, &:visited { + color: white; + } + } +} +#main-toolbox { + .noSelectedBlock, .customStyleHelp, .objEmpty, .galleryEmpty { + font-size: 1em; + } + .noSelectedBlock, .customStyleHelp, .objEmpty { + margin-left: -15px; + padding-left: 25px; + padding-right: 25px; + width: ~"calc(100% + 40px)"; + } +} + + + +& when(true) { + .mo .objEdit.level1 { + background-color: white; + box-shadow: 1px 1px 3px #888; + border-top: 0; + padding: 6px; + padding-top: .5em; + } + + .mo #toolstyles, .mo #tooltheme { + .objEdit.level1 { + border-top-left-radius: 30px; + .objLabel.level1 { + padding-bottom: 0; + padding-top: 1em; + } + } + } + + .mo .objPreview { + border-width: 0; + box-shadow: inset 1px 1px 4px rgba(0,0,0,.3); + top: 4px; + left: 4px; + } + + .mo #toolstyles .objLabel.level1, .mo #tooltheme .objLabel.level1 { + padding-left: 60px; + } + + .mo .propInput input[type=text], + .mo .propInput input[type=number], + .mo .propInput input[type=url], + .mo .propInput select, + .mo .propInput .data-select select, + .mo .propInput .ui-spinner .ui-spinner-input { + border-width: 0 0 2px 0; + background-color: transparent; + &:hover, &:focus { + border-color: @link-color; + } + } + + .mo .propInput .data-color input[type=text] { + margin-left: 35px; + &:hover, &:focus { + margin-left: 35px; + } + } + + .mo .propInput .evo-pointer { + border-radius: 50%; + width: 30px; + border: 0; + box-shadow: 1px 1px 3px @shadow-color; + &:before { + content: none; + display: none; + } + } + + /* evo color specific changes for material-like look */ + .mo .evo-pop { + min-width: 250px; + + &:before { + display: block; + content: ""; + background-color: rgba(158, 158, 158, 0.19); + position: absolute; + left: 0; + right: 0; + height: 43px; + bottom: 0; + } + + th.ui-widget-content { + text-align: center; + font-weight: normal; + } + + .evo-more { + text-align: right; + padding: 7px 5px; + a { + color: @link-color; + text-transform: uppercase; + font-weight: bold; + } + } + + .evo-color { + padding: 6px 3px 2px 4px; + } + + } + + // file manager broser button + .mo .propInput .ui-textbutton .ui-textbutton-button { + border-radius: 50%; + box-shadow: 1px 1px 3px @shadow-color; + } + +} + +.wintitle() { + color: @button-text-color; + .ui-icon { + color: @button-text-color; + } +} diff --git a/packages/editor/src/css/badesender-image-gallery.less b/packages/editor/src/css/badesender-image-gallery.less new file mode 100644 index 00000000..4e679081 --- /dev/null +++ b/packages/editor/src/css/badesender-image-gallery.less @@ -0,0 +1,274 @@ +//////// +// GALLERY TABS & PANELS +//////// + +.gallery-panel { + text-align: center; + + .uploadzone { + margin-left: 0; + margin-right: 0; + } + .mo-uploadzone { + position: relative; + padding: 2em; + border: 2px dotted #808080; + } + .fileupload { + z-index: 10; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + min-width: 100%; + min-height: 100%; + font-size: 999px; + text-align: right; + opacity: 0; + outline: none; + cursor: inherit; + display: block; + } + .workzone { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; + } + .progress { + opacity: 0.5; + width: 80%; + margin-left: 10%; + position: absolute; + bottom: 30%; + height: 20px; + border: 2px solid black; + } + .progress-bar { + height: 20px; + background-color: black; + } +} + +//////// +// TOOLBAR +//////// + +//----- IMAGE GALLERY TOOLBOX + +@gallery-gutter: 4px; + +#toolimagestab { + padding: 0; + position: absolute; + top: var(--top-bar-height); + right: 0; + height: calc(100vh - var(--top-bar-height)); + left: 0; + + .ui-tabs-panel { + position: absolute; + top: var(--top-bar-height); + right: 0; + height: calc(100vh - var(--top-bar-height)); + left: 0; + display: flex; + flex-direction: column; + + .gallery-thumbs { + .scrolling-shadow(); + flex-grow: 1; + overflow: auto; + margin-left: -18px; + margin-right: -18px; + } + } +} +.gallery-thumbs--badsender > div { + display: flex; + flex-wrap: wrap; + margin-left: 18px; + margin-right: 18px; + margin-top: 1em; +} + +.gallery-thumbs__remove { + position: absolute; + top: 0; + right: 0; + background: @link-color; + color: white; + border: 0; + outline: 0; + align-items: middle; + justify-content: center; + margin: 0; + padding: 0; + width: 24px; + height: 24px; + border-radius: 24px; + line-height: 0; + transform: translate(25%, -25%); + z-index: 2; + display: none; +} +.draggable-item:hover .gallery-thumbs__remove { + display: flex; +} + +//////// +// GALLERY TABS +//////// + +// `slidebar` is the wrapper of the gallery +// originaly it's 3px less than the left bar +.slidebar { + width: var(--left-bar-width); + height: 100vh; + background: white; + + .pane-title { + height: var(--top-bar-height); + } +} + +// .mo seems to be the wrapper for not interfering with mailing HTML +.mo .tabs_horizontal:not(#tooltabs) { + .ui-tabs-nav { + background: @mosaico-background-color; + + li { + margin: 0; + border-bottom: 0; + + a { + padding-left: 1em; + padding-right: 1em; + } + &:not(.ui-state-active) { + color: rgba(255, 255, 255, 0.75); + } + &.ui-state-active a { + background: white; + } + } + } + .ui-tabs-panel { + border: 0; + } +} + +//----- IMAGE GALLERY DIALOG + +@dialog-margin: 32px; + +#dialogGallery { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 200; + background: rgba(0, 0, 0, 0.8); + padding: @dialog-margin; + display: flex; + justify-content: center; + + .tabs_horizontal { + background: white; + width: 100%; + max-width: 1024px; + position: relative; + } + .close { + visibility: hidden; + cursor: pointer; + width: 24px; + display: block; + position: absolute; + top: 6px; + right: 6px; + + &:before { + visibility: visible; + font-size: 24px; + font-family: FontAwesome; + content: '\f00d'; + position: relative; + top: 0px; + right: 0px; + width: 24px; + height: 24px; + } + } + .gallery-panel { + position: absolute; + top: @topbar-height; + right: 0; + bottom: 0; + left: 0; + text-align: center; + padding: 0.5em 0; + display: flex; + flex-direction: column; + } + .img-dropzone { + position: relative; + margin: 0 0.5em 0.5em; + flex-grow: 0; + flex-shrink: 0; + background-color: @mosaico-background-color; + border-radius: 5px; + padding: 5px; + + &.ui-state-highlight:before { + .makeDroppable(); + line-height: 45px; + height: auto; + top: -10px; + bottom: -10px; + } + &.ui-state-draghover:before { + background-color: fade(@mosaico-selection-color, 80%); + animation: none; + } + } + .uploadzone { + font-size: 1.2em; + } + .dialog-gallery-wrapper { + .scrolling-shadow(); + flex-grow: 1; + overflow: auto; + padding: 0 7px; + + ul, + li { + list-style: none; + margin: 0; + } + ul { + display: inline-block; + font-size: 0; + line-height: 0; + } + li { + display: inline-block; + padding: 7px; + font-size: initial; + margin: 4px; + overflow: hidden; + width: 125px; + height: 125px; + box-shadow: 0 0 1px @mosaico-shadow-color; + + &:hover { + transform: scale(1.05); + box-shadow: 0 0 15px @mosaico-shadow-color; + } + } + } +} diff --git a/packages/editor/src/css/badsender-colorpicker.less b/packages/editor/src/css/badsender-colorpicker.less new file mode 100644 index 00000000..e8beb11c --- /dev/null +++ b/packages/editor/src/css/badsender-colorpicker.less @@ -0,0 +1,91 @@ +@import (less) + '../../../../node_modules/@easylogic/colorpicker/dist/colorpicker.css'; + +.badsender-colorpicker__bucket { + border-radius: 50%; + width: 30px; + height: 30px; + border: 0; + box-shadow: 1px 1px 3px #727272; + font-size: 1em; + line-height: normal; + vertical-align: middle; + display: inline-block; + border: 1px solid transparent; + padding: 5px 7px; + color: #303030; + background-color: white; + margin: 0; + position: absolute; + z-index: 5; + left: 0; + top: 0; +} +.badsender-colorpicker__picker { + position: absolute; + z-index: 10; + left: 0; + transform: translateX(calc(-50% + 15px)); + transition: opacity 0.15; +} +.badsender-colorpicker__picker--hidden { + pointer-events: none; + opacity: 0; +} +// this rule mess-up with the colorpicker… reverse that +.mo .propInput .data-color .badsender-colorpicker input[type='text'] { + &, + &:hover { + margin: 0; + } +} +// don't show input[number] spinner +.easylogic-colorpicker + .colorpicker-body + > .information + > .information-item + > .input-field + input[type='number'] { + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; +} +// but we need it for the placement of the color bucket +// • make it more specific —__—' +.mo .propInput .data-color > input[type='text'] { + margin-left: 35px; + + &:hover, + &:focus { + box-shadow: none; + border-style: dashed; + background-color: transparent; + border-color: rgba(0, 0, 0, 0.2); + } +} +// remove opacity control & resize color control +.easylogic-colorpicker .colorpicker-body > .control > .hue > .hue-container { + height: 24px; +} +.easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar { + height: 75%; +} +.easylogic-colorpicker.sketch > .colorpicker-body > .control > .opacity { + display: none; +} +// Fix context menu placement +.easylogic-colorpicker .colorsets-contextmenu { + top: auto !important; + left: auto !important; + right: 0; + // mosaico editor styles interfere with colorpicker + margin: 0; + padding: 0; +} +// custom clear button +.badsender-colorpicker__clear-button { + background: none; + border: 0; + margin-left: 0.5rem; + font-size: 1.2rem; +} diff --git a/packages/editor/src/css/badsender-editor.less b/packages/editor/src/css/badsender-editor.less new file mode 100644 index 00000000..5a31f5e8 --- /dev/null +++ b/packages/editor/src/css/badsender-editor.less @@ -0,0 +1,498 @@ +// this the equivalent of app_standalone_material.less + +@import '../../../../node_modules/font-awesome/less/font-awesome.less'; + +@import 'style_mosaico.less'; + +@fa-font-path: '/fa/fonts'; + +@import (less) '../../../../node_modules/toastr/toastr.less'; + +// Override variables + +@tab-text-color: #555; + +@font-family: 'PT Sans', sans-serif; +@standard-border-radius: 2px; +@info-border-radius: @standard-border-radius; +@button-border-radius: @standard-border-radius; +@large-balloon-border-radius: 2px; + +@object-background-color: #dddddd; + +@input-background-color: white; +@input-border-color: lighten(@text-color, 20%); + +@mosaico-selection-color: @link-color; + +:root { + --left-bar-width: @leftsidebar-width; + --top-bar-height: @topbar-height; +} + +body { + background: var(--v-secondary-base); +} + +// http://lea.verou.me/2012/04/background-attachment-local/ +.scrolling-shadow() { + background: + /* Shadow covers */ linear-gradient( + white 30%, + rgba(255, 255, 255, 0) + ), + linear-gradient(rgba(255, 255, 255, 0), white 70%) 0 100%, + // Shadows + radial-gradient( + farthest-side at 50% 0, + rgba(0, 0, 0, 0.35), + rgba(0, 0, 0, 0) + ), + radial-gradient( + farthest-side at 50% 100%, + farthest-side, + rgba(0, 0, 0, 0.35), + rgba(0, 0, 0, 0) + ) + 0 100%; + background: + /* Shadow covers */ linear-gradient( + white 30%, + rgba(255, 255, 255, 0) + ), + linear-gradient(rgba(255, 255, 255, 0), white 70%) 0 100%, + // Shadows + radial-gradient( + farthest-side at 50% 0, + rgba(0, 0, 0, 0.35), + rgba(0, 0, 0, 0) + ), + radial-gradient( + farthest-side at 50% 100%, + rgba(0, 0, 0, 0.35), + rgba(0, 0, 0, 0) + ) + 0 100%; + background-repeat: no-repeat; + background-color: white; + background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px; + + /* Opera doesn't support this in the shorthand */ + background-attachment: local, local, scroll, scroll; +} +.visually-hidden() { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; +} + +.makeDroppable() { + .resetFont(); + font-weight: bold; + + content: attr(data-drop-content); + text-align: center; + line-height: 24px; + position: absolute; + // animation: pulse .5s ease-out 0s 4 alternate; + animation: droppable-pulsate 1s ease-in-out infinite alternate; + top: -14px; + left: -10px; + height: 24px; + background-color: var(--v-accent-darken2); + background-clip: content-box; + color: white; + right: -10px; + border: 2px dashed var(--v-accent-lighten2); + // this z-index prevent using fileupload by showing the droppable + // under the mo-dropzone + z-index: 10; + pointer-events: none; +} + +@keyframes droppable-pulsate { + 0% { + opacity: 0.4; + } + 100% { + opacity: 0.1; + } +} + +// --------------- PAGE --------------- +// | toolbar +// main-toolbox | main-edit-area +// tooltabs | +// toolimages | +// tooldebug | +// tooltheme | + +#main-preview #preview-toolbar { + padding: 1px 5px; +} + +// remove absolute positioned logo +#loading > a { + display: none; +} + +@button-background-color: @link-color; +@button-border-color: transparent; + +@ui-tabs-panel-padding: 0; + +.button-style() { + text-transform: uppercase; + background: var(--v-primary-base); + + &:hover { + background: var(--v-primary-darken1); + } +} + +@keyframes border-color-selection-pulsate { + 0% { + border-color: @mosaico-outline-color; + } + 40% { + border-color: var(--v-primary-base); + } + 60% { + border-color: var(--v-primary-base); + } + 100% { + border-color: @mosaico-outline-color; + } +} + +#main-edit-area { + .isdragging .sortable-blocks-edit.empty:after { + } + // BUTTONS + .tool { + border-radius: 100%; + padding: 4px; + padding-bottom: 2px; + box-shadow: 1px 1px 3px @shadow-color; + background-color: var(--v-primary-base); + + &:hover { + background-color: var(--v-primary-darken1); + } + } +} + +@import 'badsender-main-toolbox.less'; + +#main-wysiwyg-area { + // this fix glitching screen in Chrome when hovering editable blocs + background: white; +} + +.addblockbutton { + box-shadow: 1px 1px 3px @shadow-color; +} + +.mo { + a { + &:link, + &:visited { + color: white; + } + } +} + +//////// +// EDITOR'S TOP TABS +//////// + +@tab-text-color: #555; + +.mo .ui-tabs-nav { + height: @topbar-height; + display: flex; + color: @tab-text-color; + + li, + a { + height: 100%; + } + + li { + border-bottom: 3px solid transparent; + color: @tab-text-color; + + &.ui-state-active { + border-bottom-color: currentColor; + } + &:hover, + &.pressed { + background-color: lighten(@mosaico-ui-background-color, 10%); + } + } + + a { + color: currentColor; + display: flex; + align-items: center; + justify-content: center; + text-transform: uppercase; + font-weight: bold; + outline: 0; + } + .fa { + margin-right: 0.5em; + } +} + +@import 'badsender-topbar.less'; + +//////// +// OTHER THINGS +//////// + +.mo .objEdit input[type='checkbox'] + .checkbox-replacer:before { + color: @button-background-color; +} + +.mo .propInput .data-select select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.mo .propInput .data-select:after { + background-color: transparent; + color: lighten(@text-color, 30%); +} +.mo .propInput .evo-pointer:before { + background-color: white; + color: lighten(@text-color, 30%); +} +.mo .propInput .data-integer .ui-spinner-button .ui-button-text { + background-color: transparent; + color: lighten(@text-color, 30%); +} +.mo .propInput .data-select:hover:after, +.mo .propInput .evo-pointer:hover:before, +.mo .ui-button.ui-spinner-button.ui-state-hover, +.mo .propInput .data-integer .ui-button-text, +.mo .propInput .data-integer .ui-spinner-button:hover .ui-button-text { + color: var(--v-accent-base); +} + +.mo .propInput .ui-spinner .ui-spinner-input { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.mo .ui-button.ui-spinner-button { + background-color: transparent; + // color: lighten(@text-color, 30%); + .ui-button-text .ui-icon { + color: lighten(@text-color, 30%); + } +} + +#main-toolbox .objLabel.level1 { + font-weight: bold; + border-bottom-width: 1px; +} + +.mo .objPreview { + border-width: 0; + box-shadow: 1px 1px 3px @shadow-color; +} + +.mo .objLabel { + border-bottom: 0; + font-weight: bold; + font-size: 80%; +} + +.mo .objEdit.level1 { + border-top: 2px solid @accent-color; +} + +#main-toolbox .objLabel.level1 { + font-size: 1em; + padding-top: 0.5em; +} + +.mo #toolstyles .objLabel.level1, +.mo #tooltheme .objLabel.level1 { + padding-left: 70px; +} + +.mo .objLabel.level0 { + border-bottom: none; +} + +.input-style() { + box-shadow: none; +} +& when(true) { + .mo .objEdit.level1 { + background-color: white; + box-shadow: 1px 1px 3px #888; + border-top: 0; + padding: 6px; + padding-top: 0.5em; + } + + .mo #toolstyles, + .mo #tooltheme { + .objEdit.level1 { + border-top-left-radius: 30px; + .objLabel.level1 { + padding-bottom: 0; + padding-top: 1em; + } + } + } + + .mo .objPreview { + border-width: 0; + box-shadow: inset 1px 1px 4px rgba(0, 0, 0, 0.3); + top: 4px; + left: 4px; + } + + .mo #toolstyles .objLabel.level1, + .mo #tooltheme .objLabel.level1 { + padding-left: 60px; + } + + .mo .propInput input[type='text'], + .mo .propInput input[type='number'], + .mo .propInput input[type='url'], + .mo .propInput select, + .mo .propInput .data-select select, + .mo .propInput .ui-spinner .ui-spinner-input { + border-width: 0 0 2px 0; + background-color: transparent; + &:hover, + &:focus { + border-color: @link-color; + } + } + + .mo .propInput .data-color input[type='text'] { + margin-left: 35px; + &:hover, + &:focus { + margin-left: 35px; + } + } + + .mo .propInput .evo-pointer { + border-radius: 50%; + width: 30px; + border: 0; + box-shadow: 1px 1px 3px @shadow-color; + &:before { + content: none; + display: none; + } + } + + // file manager broser button + .mo .propInput .ui-textbutton .ui-textbutton-button { + border-radius: 50%; + box-shadow: 1px 1px 3px @shadow-color; + } +} + +.mo { + .propEditor { + display: flex; + align-items: center; + } +} + +.wintitle() { + color: @button-text-color; + .ui-icon { + color: @button-text-color; + } +} + +@import 'badesender-image-gallery.less'; + +//----- BACKGROUND-IMAGE WIDGET + +.data-bgimage { + button { + .button-style(); + text-transform: none; + } +} + +//////// +// COLORPICKER +//////// + +// As a reminder +// .mo .propInput .evo-pointer { +// z-index: 5; +// } + +.evo-pop { + z-index: 10; + + .evo-palette { + td { + height: 24px; + } + th { + background: white; + } + } +} + +//////// +// tinyMCE custom style +//////// + +// add a class to fix button width for toolbar to compute size +// see badsender-text-editor.js for more details + +.mce-fontsizedialogbutton { + width: 120px !important; +} + +// make knockout effect available on block hover +@media (min-width: 1100px) { + #main-wysiwyg-area replacedbody:before, + #main-wysiwyg-area replacedbody:after { + z-index: 12; + pointer-events: none; + } +} + +.mo .propInput input[type='text']:hover, +.mo .propInput input[type='number']:hover, +.mo .propInput input[type='url']:hover, +.mo .propInput select:hover, +.mo .propInput .data-select select:hover, +.mo .propInput .ui-spinner .ui-spinner-input:hover, +.mo .propInput input[type='text']:focus, +.mo .propInput input[type='number']:focus, +.mo .propInput input[type='url']:focus, +.mo .propInput select:focus, +.mo .propInput .data-select select:focus, +.mo .propInput .ui-spinner .ui-spinner-input:focus { + border-color: var(--v-accent-base); +} + +.mo .ui-tabs-nav li:hover, +.mo .ui-tabs-nav li.pressed { + background: var(--v-accent-lightent4); +} + +@import (less) './badsender-image-cropper.less'; +@import (less) './badsender-mobile-preview.less'; +@import (less) './badsender-colorpicker.less'; diff --git a/packages/editor/src/css/badsender-image-cropper.less b/packages/editor/src/css/badsender-image-cropper.less new file mode 100644 index 00000000..6de460ba --- /dev/null +++ b/packages/editor/src/css/badsender-image-cropper.less @@ -0,0 +1,128 @@ +@import (less) '../../../../node_modules/cropperjs/dist/cropper.css'; + +.bs-img-cropper { + --bs-ic-gutter: 2rem; + --bs-ic-actions: 200px; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0, 0, 0, 0.85); + z-index: 100; + opacity: 0; + transition: opacity 0.3s; +} +.bs-img-cropper--active { + opacity: 1; +} +.bs-img-cropper__in { + position: absolute; + top: var(--bs-ic-gutter); + bottom: var(--bs-ic-gutter); + left: 50%; + right: -50%; + max-width: 1280px; + transform: translateX(-50%); + background: white; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5); + + .fa-times { + position: absolute; + right: 0; + top: 0; + font-size: 2em; + } +} +.bs-img-cropper__croppie { + --bc-ic-zoom-slider: 25px; + --bc-ic-zoom-slider: 50px; + max-height: calc( + 100vh - calc(var(--bs-ic-gutter) * 4) - var(--bc-ic-zoom-slider) + ); + max-width: calc(100% - calc(var(--bs-ic-gutter) * 2)); + position: absolute; + top: var(--bs-ic-gutter); + right: var(--bs-ic-gutter); + bottom: var(--bs-ic-gutter); + left: var(--bs-ic-gutter); +} +.bs-img-cropper__actions { + position: absolute; + right: var(--bs-ic-gutter); + bottom: calc(var(--bs-ic-gutter) / 2); + z-index: 2; + display: flex; +} +.bs-img-cropper__button { + background: var(--v-secondary-darken1); + border: 0; + font-size: inherit; + transition: background 0.3s; + padding: 0.5em 0.75em; + color: white; + margin-left: 1rem; + border-radius: 2px; + + svg { + fill: currentColor; + display: block; + } + + &:hover { + background: var(--v-secondary-darken2); + } +} +.bs-img-cropper__button--secondary { + background: white; + box-shadow: inset 0 0 0 1px var(--v-secondary-darken1); + color: var(--v-secondary-darken1); + + &:hover { + color: white; + } +} + +.bs-img-cropper__fa-svg { + width: 24px; + height: 24px; +} + +.bs-img-cropper__button--group { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + + + .bs-img-cropper__button { + margin: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } +} +.bs-img-cropper__sizes { + border: 1px solid var(--v-secondary-darken1); + border-radius: 2px; + display: flex; +} +.bs-img-cropper__size { + width: 5rem; + display: flex; + flex-direction: column; + + + .bs-img-cropper__size { + border-left: 1px solid var(--v-secondary-darken1); + } +} +.bs-img-cropper__size-label { + display: block; + font-size: 0.6rem; + text-transform: uppercase; + background: var(--v-secondary-darken1); + color: white; +} +.bs-img-cropper__size-input { + width: 100%; + border: solid var(--v-secondary-darken1); + border-width: 1px 0 0; + flex: 1 1 auto; + text-align: right; +} diff --git a/packages/editor/src/css/badsender-main-toolbox.less b/packages/editor/src/css/badsender-main-toolbox.less new file mode 100644 index 00000000..8692659f --- /dev/null +++ b/packages/editor/src/css/badsender-main-toolbox.less @@ -0,0 +1,146 @@ +#main-toolbox { + .noSelectedBlock, + .customStyleHelp, + .objEmpty, + .galleryEmpty { + font-size: 1em; + } + .noSelectedBlock, + .customStyleHelp, + .objEmpty { + margin-left: -15px; + padding-left: 25px; + padding-right: 25px; + width: ~'calc(100% + 40px)'; + } + + .draggable-item { + margin-left: @gallery-gutter; + margin-right: @gallery-gutter; + // // http://stackoverflow.com/questions/28200574/make-math-happen-inside-css-calc-with-less#answer-28210969 + width: calc(33% ~'-' (@gallery-gutter*2)); + } + .draggable-item:nth-child(3) ~ .draggable-item { + margin-top: @gallery-gutter; + } + .draggable.image { + width: 111px; + height: 111px; + } + + //////// + // TOPBAR + //////// + + #tooltabs.ui-tabs { + .ui-tabs-nav { + background: var(--v-secondary-base); + box-shadow: 0 0 10px @shadow-color; + // position: absolute; + // left: 0; + // right: 0; + // z-index: 105; // the panel is 100, and the main toolbar 110 + font-size: 1em; + + .tooltabs__item { + margin: 0; + line-height: @topbar-height - 4px; + color: white; + } + .tooltabs__item:hover { + color: white; + background: var(--v-secondary-lighten1); + } + .tooltabs__item.ui-state-active { + background: var(--v-secondary-darken1); + color: var(--v-accent-base); + // border-bottom-color: var(--v-accent-base); + } + } + } + + .tooltabs__top-bar { + display: flex; + height: @topbar-height; + } + .tooltabs__list { + flex: 1 1 auto; + } + .tooltabs__top-logo { + height: @topbar-height; + padding: 4px; + object-fit: contain; + // a { + // } + + img { + display: block; + height: 100%; + width: auto; + // height: @topbar-height - 4px; + // width: auto; + } + } + // .ool + .objEdit.level1.selectable.selecteditem:after { + border-color: var(--v-accent-base); + } + + //////// + // TOGGLES + //////// + + .blockCheck input[type='checkbox'] { + &:checked + .checkbox-replacer:after, + & + .checkbox-replacer:before { + border-radius: 50%; + box-shadow: 1px 1px 2px @shadow-color; + } + + & + .checkbox-replacer:after, + &:checked + .checkbox-replacer:before { + border-radius: 30px; + background-color: var(--v-accent-lighten3); + // color: @button-text-color; + } + & + .checkbox-replacer:after { + padding-left: 15px; + margin-left: -15px; + border-color: transparent; + } + &:checked + .checkbox-replacer:before { + padding-right: 15px; + margin-right: -15px; + border-color: transparent; + } + } + + .objEdit .propInput input[type='checkbox'] { + &:checked + .checkbox-replacer:before { + margin-left: 20px; + background-color: var(--v-accent-base); + } + & + .checkbox-replacer:before { + content: ' '; + display: block; + width: 20px; + height: 20px; + background-color: white; + border-radius: 50%; + font-size: 120%; + box-shadow: 1px 1px 3px @shadow-color; + } + &:checked + .checkbox-replacer:after { + background-color: var(--v-accent-lighten3); + } + & + .checkbox-replacer:after { + content: ' '; + display: block; + width: 34px; + height: 14px; + margin: -16px 2px 0 2px; + border-radius: 7px; + background-color: lighten(@text-color, 30%); + } + } +} diff --git a/packages/editor/src/css/badsender-mobile-preview.less b/packages/editor/src/css/badsender-mobile-preview.less new file mode 100644 index 00000000..3d9483f6 --- /dev/null +++ b/packages/editor/src/css/badsender-mobile-preview.less @@ -0,0 +1,60 @@ +// keep a #main-preview for better overrides +#main-preview { + #preview-toolbar { + height: 40px; + display: flex; + justify-content: center; + padding: 0; + + .ui-buttonset { + // overrides JS styles + display: flex !important; + } + .ui-button { + width: 5rem; + background: none; + color: white; + &:hover { + background-color: var(--v-secondary-lighten1); + } + &.ui-state-active { + background-color: var(--v-secondary-darken1); + color: white; + pointer-events: none; + box-shadow: inset 0 -3px 0 0 var(--v-accent-base); + } + } + .fa { + color: currentColor; + font-size: 1.5rem; + } + } + #frame-container::after { + display: none; + } +} + +.is-desktop-preview #main-wysiwyg-area .visibility_mobile, +.is-mobile-preview #main-wysiwyg-area .visibility_desktop_only { + display: none !important; + mso-hide: all !important; /* hide elements in Outlook 2007-2013 */ + visibility: hidden !important; + max-height: 0 !important; + font-size: 0 !important; + line-height: 0 !important; + padding: 0 !important; +} + +.is-mobile-preview #main-wysiwyg-area replacedbody { + max-width: 350px; +} + +// .is-mobile-preview #main-wysiwyg-area .visibility_mobile { +// max-height: none !important; +// font-size: 1px !important; +// display: block !important; +// overflow: visible !important; +// visibility: visible !important; +// line-height: 1px !important; +// float: none !important; +// } diff --git a/packages/editor/src/css/badsender-topbar.less b/packages/editor/src/css/badsender-topbar.less new file mode 100644 index 00000000..2f662781 --- /dev/null +++ b/packages/editor/src/css/badsender-topbar.less @@ -0,0 +1,123 @@ +#toolbar { + padding: 0 0 0 5px; + display: flex; + background: var(--v-secondary-base); + + .rightButtons { + display: flex; + } + + .ui-button { + padding-top: 7px; + padding-bottom: 7px; + line-height: 22px; + color: white; + background-color: var(--v-secondary-base); + border-radius: 0; + border: 0; + + .ui-icon, + .ui-button-text { + color: currentColor; + } + + &:hover, + &.pressed { + background-color: var(--v-secondary-lighten1); + } + &.selected, + &.ui-state-active { + border-top: 0; + } + &.ui-button-disabled, + &.ui-button-disabled .ui-icon, + &.ui-button-disabled .ui-button-text { + opacity: 0.5; + } + &.ui-state-active { + background-color: var(--v-secondary-darken1); + box-shadow: inset 0 -3px 0 0 var(--v-accent-base); + } + } +} +// NAME INPUT +.creation-name { + flex: 1 1 auto; + display: flex; + border: solid var(--v-secondary-lighten2); + border-width: 0 1px; + + .ui-button { + margin-right: 0; + text-align: left; + } + + input { + font: inherit; + color: white; + background: none; + padding-left: 7px; + border: 0; + outline: 0; + } + + p, + input { + flex: 1 1 auto; + } +} + +// DOWNLOAD BUTTON + +#toolbar #downloadForm { + display: inline-flex; +} +.download-form { + position: relative; +} +.download-form__menu { + opacity: 0; + pointer-events: none; + position: absolute; + right: 0; + top: (@topbar-height - 4px); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5); + transition: opacity 0.5s; + margin: 0; + + .ui-button { + display: block; + margin: 0; + text-transform: capitalize; + border-radius: 0; + } +} +.download-form:hover .download-form__menu, +.download-form__menu:hover { + opacity: 1; + pointer-events: initial; +} +#toolbar .download-form__btn-menu { + margin: 0; +} +// MOBILE PREVIEW +// • revert some styles from mosaico +@media (max-width: (@screen-lg-max)) { + #toolbar { + label[for='previewFrameToggle'] { + display: block; + + .fa { + font-size: 1.25rem; + } + } + .ui-button[for='showGallery'] { + .ui-icon { + margin-right: 0; + } + .ui-button-text { + // display: block; + } + } + } +} diff --git a/packages/editor/src/css/contact-popup.less b/packages/editor/src/css/contact-popup.less new file mode 100644 index 00000000..599aa2ad --- /dev/null +++ b/packages/editor/src/css/contact-popup.less @@ -0,0 +1,47 @@ +.popup-container { + position: fixed; + background: rgba(0, 0, 0, .5); + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 900; + justify-content: center; + align-items: center; + display: none; + opacity: 0; + + &.is-open { + display: flex; + transition: opacity .4s; + } + + &, + .in { + min-height: 0 !important; + } + + .in { + background: white; + width: 50%; + padding: 20px; + position: relative; + } + + .popup-close { + position: absolute; + top: 0; + right: 5px; + font-size: 1.5em; + cursor: pointer; + + &:hover { + color: @accent-color; + } + } + + iframe { + display: block !important; + width: 100%; + } +} diff --git a/packages/editor/src/css/safarihack.css b/packages/editor/src/css/safarihack.css new file mode 100644 index 00000000..fd364814 --- /dev/null +++ b/packages/editor/src/css/safarihack.css @@ -0,0 +1,25 @@ +/* +Safari Hack: Safari create reflow glitches due to a webkit bug with border-spacing (cellspacing) +when the template being edited makes use of horizontal border spacing. + See: https://github.com/voidlabs/mosaico/issues/53 +The following are terrible hacks to make this happens less often. +It seems something similar happens to Chrome, too; + See:; https://github.com/voidlabs/mosaico/issues/85 +So we broadened the application of this hack to include Chrome. +*/ +@media screen and (min-color-index:0) and (-webkit-min-device-pixel-ratio:0) { @media { + #main-wysiwyg-area table:not(.img-wysiwyg), #main-wysiwyg-area .selected table:not(.img-wysiwyg):hover { + position: relative; + } + #main-wysiwyg-area table:not(.img-wysiwyg):hover, #main-wysiwyg-area .selected table:not(.img-wysiwyg) { + position: static; + } +}} +/* +After enabling the dashed outlines for editable contents we had reports from webkit based +browsers (Safari) users of flickering similar to the previous issues. + See: https://github.com/voidlabs/mosaico/issues/430 +Then we separated semi-transparent hover effect from the selection effect into before/after so +that we never have to change the opacity or the border size dynamically and this seems to make Safari +happier. +*/ diff --git a/packages/editor/src/css/style_elements.less b/packages/editor/src/css/style_elements.less new file mode 100644 index 00000000..465fe469 --- /dev/null +++ b/packages/editor/src/css/style_elements.less @@ -0,0 +1,501 @@ +/************************************************************************************************************************** + * COMMON USE, BASIC ELEMENTS + * Primitive html tags, common base classes, buttons, base forms, dropdown... + *************************************************************************************************************************/ + +/************************************************************************************************************************** + * BASIC HTML ELEMENTS + *************************************************************************************************************************/ + +a, a:link, a:visited, a:active, #site-slogan { + color: @link-color; + text-decoration: none; + li & { + color: @link-color; // reset system.css + } +} +a:hover /*, a:active*/ { + color: @link-active-color; + li & { + color: @link-active-color; // reset system.css + } +} +a.disabled, a.disabled:link, a.disabled:visited { + color: @link-disabled-color; +} + +b, strong { + font-weight: bold; +} + +i, em { + font-style: italic; +} + +ul, ol { + margin: .5em 0; + padding: 0 0 0 1.5em; + li { + margin: .5em 0; + a, a:active, a:link, a:visited { + white-space: nowrap; + } + } +} + +p { + margin: 1em 0; + .grey { + color: @text-greyed-color; + } +} + +small { + font-size: smaller; +} + +big { + font-size: larger; +} + +h1 { + font-size: 2em; + margin: .5em 0; +} +h2, h3.box_title { + font-size: 1.5em; + margin: .5em 0; +} +h3 { + font-size: 1.3em; + margin: .5em 0; +} + +dl { + margin-bottom: 1.5em; + dt { + font-weight: bold; + } + dd { + margin-left: 10px; + font-style: italic; + } +} +hr { + border: 0; + border-top: @table-border-style; + margin: 1em 0; +} +blockquote { + font-style: italic; + border-left: @table-border-style; + padding: .5em +} +code { + display: inline-block; + border-left: @table-border-style; + padding: .5em +} + +table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + margin: @element-margin-vertical 0 @element-margin-vertical 0; + border-bottom: 2px solid @table-border-color; + + tr.even, tr.odd { // Reset system.css + border: none; + padding: 0; + background-color: transparent; + } + th { + padding: .5em .7em; + + font-weight: bold; + border-top: 0 none; + border-bottom: @table-border-style; + vertical-align: middle; + background-color: @table-header-color; + } + td { + padding: .1em .7em; + height: 3.3em; + + background-color: @table-odd-row-background-color; + border-top: 0 none; + vertical-align: middle; + &.active { + background-color: @table-odd-row-background-color; + } + } + > tr.even > td, > tbody > tr.even > td { + background-color: @table-even-row-background-color; + &.active { + background-color: @table-even-row-background-color; + } + } + + //border-radius: @large-border-radius @large-border-radius 0 0; + //overflow: hidden; + tr:first-child { + th:first-child { + border-top-left-radius: @large-border-radius; + } + th:last-child { + border-top-right-radius: @large-border-radius; + } + } + + /*&.thead-fixed { + //margin: -@body-padding-top 0; + margin: 0; + }*/ + .checkbox_cell { + width: 3em; + } + tr.selected td, tr.selected td.active { + background-color: @table-row-selected-background-color !important; + } + tr.odd.selected td, tr.odd.selected td.active, tr:nth-child(odd).selected td, tr:nth-child(odd).selected td.active { + background-color: mix(@background-color, @table-row-selected-background-color, 30%) !important; + } +} +.table-wrapper-scroll { + width: 100%; + overflow-x: auto; +} +caption { + color: @link-color; + font-weight: bold; + text-align: left; + padding: .5em .7em; +} +div.showall { // Copia degli stili di TD + padding: 0 .7em .5em .7em; + vertical-align: middle; + .clear-block; +} + +/************************************************************************************************************************** + * HTML HELPERS + * Additional generic elements + *************************************************************************************************************************/ + +// ul.links, copied by drupal's system.css to be used in mosaico +ul.links { + margin: 0; + padding: 0; + &.inline { + display: inline; + } + li { + display: inline; + list-style-type: none; + padding: 0 0.5em; + } +} + +.small { + font-size: 80%; +} + +.big { + font-size: 120%; +} + +.clear-block { + clear: both; +} + +.margin-top { + margin-top: .5em; +} + +.overflow-hidden { + overflow: hidden; +} + +.quarter-width { + width: 25% !important; +} +.half-width { + width: 50% !important; +} +.three-quarter-width { + width: 75% !important; +} +.full-width { + width: 100% !important; +} +.normal-width { + width: auto !important; +} + +.clickable { + cursor: pointer; +} + +.help { + background-color: @highlight-background-color; + //border-radius: @info-border-radius; + margin: 1em 0; + padding: .8em; + p:first-child { + margin-top: 0; + } + p:last-child { + margin-bottom: 0; + } +} + +.dropdown { + .dropdown-style(); +} +.dropdown-container { + position: relative; + white-space: nowrap; // Split buttons need a nowrapped container + display: inline-block; + .container-inline & { + display: inline-block; + } + .form-item & { + margin: 0 .5em 0 0; // So it equals the input-base margin-right; + } +} + +/** + * ICONS FIX + */ +[class^="icon-"]:before, [class*=" icon-"]:before { + margin-right: 0; + margin-left: 0; +} + +i.icon { + cursor: default; +} +a:link i.icon { + cursor: pointer; +} +.icon_red { color: @red; } +.icon_green { color: @green; } +img.icon { + vertical-align: text-top; +} +a.hint, a.info { + color: lighten(@text-color, 20%); // NOTE: we had !important here, but it break things, so we removed it.. but why did we add it initially?? + font-size: 80%; + vertical-align: top; + margin: 0 .2em; + &:hover { + color: @link-color; + } + h1 &, h2 &, h3 & { + font-size: 60%; + } + li & { + color: lighten(@text-color, 20%); + } +} +a.hint { + cursor: help; +} + +.suffix_icon { + font-size: 80%; +} + +div.info { + padding: .5em; + background-color: @highlight-background-color; + margin: .5em 0; +} + + +.menu_step_circle { + display: inline-block; + background-color: @object-background-color; color: @text-color; + padding: 0.3em 0.6em; margin: 0px 0.2em 0 0; border-radius: 1em; + &.current { + background-color: @accent-color; + } + &.disabled { + color: @text-greyed-color; + } +} + +/************************************************************************************************************************** + * BUTTONS + *************************************************************************************************************************/ + +/* +button::-moz-focus-inner, +input[type="reset"]::-moz-focus-inner, +input[type="button"]::-moz-focus-inner, +input[type="submit"]::-moz-focus-inner, +input[type="file"] > input[type="button"]::-moz-focus-inner { + border: none; +} +*/ + +a.button_dropdown_split { + border-left: @input-border-size solid @text-color; + padding-left: .5em; +} +.button_links a.button_dropdown_split, .links.inline a.button_dropdown_split, .cell_links a.button_dropdown_split { + .button-style(); +} +.button_links a.button_dropdown_split, .links.inline a.button_dropdown_split, .cell_links a.button_dropdown_split, .top_links a.button_dropdown_split { + margin-left: -1.5em; + border-left: @input-border-size solid @button-border-color-split !important; // !important is needed to match .big and .primary + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; + z-index: 2; +} + +a.button, input.form-submit { + .button-style(); +} + +ul.links { + a { + font-weight: bold; + } +} + +ul.button_links li, ul.inline li { + padding: 0; + a { + .button-style(); + img { + vertical-align: text-top; + margin: 0 .5em 0 0; + } + } +} +/*#main */ul.buttonbar { + white-space: nowrap; + > li, > .dropdown-container > li { + margin: 0 1px 0 0; + float: left; + a, a.big { + margin-left: 0; + margin-right: 0; + border-radius: 0; + &.with_button_dropdown_split { + margin-right: @input-margin-right; + } + } + &.first a { + border-radius: @button-border-radius 0 0 @button-border-radius; + &.big { + border-radius: @large-button-border-radius 0 0 @large-button-border-radius; + } + } + &.last a { + border-radius: 0 @button-border-radius @button-border-radius 0; + &.big { + border-radius: 0 @large-button-border-radius @large-button-border-radius 0; + } + } + } + &.top_links { + margin-left: .5em; + } + .clear-after; +} + +ul.cell_links { + > li, > .dropdown-container > li { + padding: 0; + > a { + .button-style(); + margin: 0 .5em 0 0; + } + } + + a.button_dropdown_split { + margin-top: 0; + margin-bottom: 0; + } + + td & { + text-align: right; + } +} +.td_cell_links { + text-align: right; + white-space: nowrap; +} + +ul.top_links, ul.box_top_links { + float: right; + text-align: right; // Cosi' anche quando va su 2 righe rimane a DX + > * { + line-height: normal; + text-align: left; + margin-bottom: .4em; // Prevent page title or page buttons to overlap when they wraps on multiple lines. + } + li a, a.button_dropdown_split { + .button-style(); + border-radius: @large-button-border-radius; + padding: .25em .4em; + font-size: 1.3em; + } + li { + padding: 0; + a { + margin: 0px 0px 0px .5em; + } + } + a.button_dropdown_split { + margin: 0 0 0 -1em; + } + .dropdown { + margin-left: .5em; + } +} + +ul.popup_links { + .popup-links-style(); +} +.dropdown ul.popup_links { + margin: -@dropdown-padding-v -@dropdown-padding-h; + > li > a, > .dropdown-container > li > a { + text-align: left; + width: 100%; + } +} + +/************************************************************************************************************************** + * FORM + *************************************************************************************************************************/ + +// WARN: direct selectors are only used by mosaico (no .form-select-wrapper here) +select, textarea { + .input-style; +} +input:disabled, select:disabled, textarea:disabled { + opacity: 0.5 !important; // Come chosen +} + +::placeholder { + color: @input-placeholder-color; + opacity: 1; +} + +/************************************************************************************************************************** + * TOOLTIPS, WINDOWS... + *************************************************************************************************************************/ + +.async_loading { + color: transparent; + text-align: center; + background: url(../../../../misc/others/loading.gif) no-repeat 50% 50% transparent; // TODO remove me + opacity: .5; +} + +.async_loading_iframe { + background: url(../../../../misc/others/loadingbig.gif) no-repeat 50% 50% transparent; // TODO remove me +} diff --git a/packages/editor/src/css/style_elements_jquery.less b/packages/editor/src/css/style_elements_jquery.less new file mode 100644 index 00000000..a491ce7b --- /dev/null +++ b/packages/editor/src/css/style_elements_jquery.less @@ -0,0 +1,344 @@ +/************************************************************************************************************************** + * JQUERY UI + * + * Needs style_elements.less. Uses .button() .win() + *************************************************************************************************************************/ + +// Layout helpers +.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 !important;width: 1px;} // ALT: clip: rect(1px, 1px, 1px, 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; /* support: IE7 */} +.ui-helper-zfix {width: 100%;height: 100%;top: 0;left: 0;position: absolute;opacity: 0;filter:Alpha(Opacity=0);} +.ui-front {z-index: @zindex-dialog-modal; } + +// Interaction Cues +.ui-state-disabled {cursor: default !important;} + +// states and images +.ui-icon {display: block;text-indent: -99999px;overflow: hidden;background-repeat: no-repeat;} + +// Overlays +.ui-widget-overlay {position: fixed;top: 0;left: 0;width: 100%;height: 100%;} +.ui-widget-overlay {background: #aaaaaa none;opacity: .6;filter: Alpha(Opacity=60);} +.ui-widget-shadow {margin: -8px 0 0 -8px;padding: 8px;background: #aaaaaa none;opacity: .3;filter: Alpha(Opacity=30);border-radius: 8px;} + +.ui-corner-all { border-radius: @standard-border-radius; } + +.ui-button { + .button-style(); + + .ui-button-text, .ui-icon { + color: @button-text-color; + } + &.ui-button-icon-only { + .ui-icon { margin: 0 .1em; } + .ui-button-text { display: none; } + } + &.ui-button-disabled { + .button-style.disabled(); + .ui-button-text, .ui-icon { + .button-style.disabled .link; + } + } + &.ui-state-active { + .button-style.pressed(); + } +} + +.ui-buttonset { + .buttonset-style(); +} + +.ui-dialog { + .win(); + position: absolute; + overflow: hidden; + width: 300px; + padding: 0; + font-size: 1em; + z-index: @zindex-dialog; + + .ui-dialog-titlebar { + .wintitle(); + font-size: 1.1em; + + .ui-dialog-title { + float: left; margin: .1em 16px .2em 0; + } + .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 35%; + width: 21px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; + cursor: pointer; + border: 0 none; + background: none transparent; + //background-color: transparent; + box-shadow: none; + &::-moz-focus-inner { + border: none; + } + + .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; + left: 50%; + margin-left: -8px; + } + + &.ui-button-icon-only .ui-button-text { + display: block; + line-height: normal; + padding: .4em; + text-indent: -9999999px; + } + } + } + .ui-dialog-content { + border: 0; padding: .5em 1em; background: none; zoom: 1; + max-height: 600px; // Il max-height + position: relative; + .async_loading_iframe { + margin: -.5em 0 0 0; + } + } + .async_loading_iframe { + width: 100%; height: 100%; + min-height: 100px; + &.with_bg { + width: 10%; height: 6%; min-height: 50px; + position: absolute; left: 45%; top: 47%; + } + &.over { + position: absolute; left: 0; top: 0; + } + } + .ui-dialog-buttonpane { + text-align: center; + background-image: none; + margin: .5em 0 0 0; + border: none; + padding: .3em 0; + } + &.dialog_info .ui-dialog-titlebar { + background: none mix(@dialog-title-background-color, @blue, 50%); + } + &.dialog_warn .ui-dialog-titlebar { + background: none mix(@dialog-title-background-color, @red, 50%); + } + &.dialog_ok .ui-dialog-titlebar { + background: none mix(@dialog-title-background-color, @green, 50%); + } + &.dialog_standard_href .ui-dialog-content { // Dialog loaded using iframe (standard) + padding: 0; + min-height: 600px; + } + &.dialog_ajax_href .ui-dialog-content, &.dialog_standard_content .ui-dialog-content, &.dialog_standard_rel .ui-dialog-content { + overflow: auto; + } + &.no-close .ui-dialog-titlebar-close { display: none; } + //.ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } + + // Prevent dotted outline on full focused dialog on FF + &:focus, &:-moz-focusring { + outline: 0 none !important; + } +} +//.ui-draggable .ui-dialog-titlebar { cursor: move; } + +.ui-menu { + list-style: outside none none; + padding: 0px; + margin: 0px; + display: block; + outline: medium none; + .ui-menu-item { + position: relative; + margin: 0px; padding: 3px 1em 3px 0.4em; + cursor: pointer; + min-height: 0px; + &.ui-state-focus, &.ui-state-active {} + } +} + +.ui-autocomplete { + position: absolute; + top: 0px; + left: 0px; + cursor: default; + + .dropdown(); + min-width: auto; + max-width: none; + margin: 0; padding: 0; + .ui-menu-item { + display: block; + padding: 0.5em; margin: 0; + font-weight: bold; + &.ui-state-focus, &.ui-state-active { + background-color: @button-background-color; + color: @button-text-color; + a { + color: @button-text-color; + } + } + } +} + +.ui-tabs { + .ui-tabs-nav { + border-radius: 0; + } +} + +/** + * JQUERY HORIZONTAL UI TABS + */ +.ui-tabs.tabs_horizontal { + > ul { + padding: 0px 0px 0px .5em; + } + .ui-tabs-panel { + margin-top: .5em; + + &.ui-tabs-noscroll { + padding: 0; + } + } +} + +/** + * JQUERY VERTICAL UI TABS + */ +.ui-tabs.tabs_vertical { + position: relative; + margin: 1em 0; + > ul { + margin: 0; + padding: 0; + text-align: left; + float: left; + li { + width: @elysia_nodes_property_label-width + 1em; + list-style-type: none; + padding: .5em 1em; + margin: 0; + text-align: right; + &.ui-state-active { + background-color: @accent-color; + font-weight: bold; + border-radius: @standard-border-radius 0 0 @standard-border-radius; + a { + color: @text-color; + } + } + } + } + .ui-tabs-panel { + background: @background-color; + border: 1px solid @accent-color; + padding: .5em 1em; + margin: .5em 0; + overflow: auto; + &.ui-tabs-noscroll { + padding: 0; + } + } +} + +.ui-tooltip { // TODO + .win(); + max-width: 300px; + padding: .5em; + z-index: @zindex-tooltip; +} + +.ui-spinner { + display: block; + margin: @input-margin-top 0 @input-margin-bottom 0; padding: 0; + position: relative; + + // hides natives spinner on Chrome, FF and the "clear-cross" by IE10-11 + input[type=number] { + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + &::-ms-clear { + width: 0; + height: 0; + } + -moz-appearance:textfield; + } + .ui-spinner-input { + margin: 0; + margin-right: 2em; + // overlapping rounded corners + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; + } + .ui-spinner-button { + width: 2.5em; + height: 50%; + min-height: inherit; + padding: 0; margin: 0; + position: absolute; + right: 0; + line-height: 1em; + cursor: pointer; + .ui-icon { + display: none; + } + } + .ui-spinner-up { + top: 0; + border-bottom: none; + border-radius: 0 @button-border-radius 0 0; + .ui-button-text:after { + font-family: FontAwesome; + font-weight: normal; + content: "\f0d8"; + } + } + .ui-spinner-down { + bottom: 0; + border-top: none; + border-radius: 0 0 @button-border-radius 0; + .ui-button-text:after { + font-family: FontAwesome; + font-weight: normal; + content: "\f0d7"; + } + } +} + +.ui-icon { + font-family: FontAwesome; + background: none repeat scroll 0 0 transparent; + text-indent: 0; + width: auto; height: auto; + min-width: 16px; + + vertical-align: middle; + margin-top: 0; + margin-right: .5em; +} +.ui-icon-closethick:before { + content: @fa-var-times; +} + +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle, .ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} diff --git a/packages/editor/src/css/style_elements_mixins.less b/packages/editor/src/css/style_elements_mixins.less new file mode 100644 index 00000000..4babaa46 --- /dev/null +++ b/packages/editor/src/css/style_elements_mixins.less @@ -0,0 +1,354 @@ +@ie8hackprop: ~"\9"; // Match solo di IE8 +@ie10modernhack: ~"(-ms-high-contrast: active), (-ms-high-contrast: none), not screen\0"; // Match di IE10+ e altri browser moderni + +@input-padding-v: 5px; // .35em +@input-padding-h: 7px; // .5em +@input-margin-top: 10px; // 0.7em; +@input-margin-bottom: 10px; // 0.7em; +@input-margin-right: 7px; // .5em +@input-border-size: 1px; +@input-base-height: 18px; + +.input-button-common() { + font-size: 1.0em; + line-height: normal; // Firefox uses a "line-height: normal !important" for input elements, resulting in "1.2". If we use "1.2" on chrome we get bigger text (li has 1.25). Using "normal" works fine on both. + min-height: (@input-base-height + @input-border-size * 2 + @input-padding-v * 2); // Select size on Firefox is 18px, while another input is 16px, this creates differences fixed by min-height. + min-height: (@input-base-height + @input-border-size * 2 )@ie8hackprop; // IE8 ignores box-sizing for minheight, so we don't add @input-padding-v + vertical-align: middle; +} + +.button-style() { + .input-button-common(); + display: inline-block; + background-color: @button-background-color; + border: @input-border-size solid @button-border-color; // hidden, but declared to keep size consistency between input and buttons. + color: @button-text-color; + li & { color: @button-text-color; } // Buttons inside LI should preserve their color (declared for "li a") + border-radius: @button-border-radius; + font-weight: bold; + cursor: pointer; + padding: @input-padding-v @input-padding-h; + margin: @input-margin-top @input-margin-right @input-margin-bottom 0; + text-decoration: none; + white-space: nowrap; + text-align: center; + font-weight: bold; + img { + vertical-align: middle; + margin: 0 .2em; + } + &:hover, &.pressed, &.selected /*, &.active*/ { + text-decoration: none; + background-color: @button-hover-background-color; + } + &.disabled { + color: @button-text-color-disabled; + a, .link { // .link serve solo per poter fare l'import a style_elements_jquery.less + color: @button-text-color-disabled; + } + &:hover { + background-color: @button-background-color; + border: @input-border-size solid @button-border-color; + color: @button-text-color-disabled; + } + } + .container-inline & { + // width: auto; // IE8 has issues with this + } + &.inline { + margin: 0 @input-margin-right 0 0; + } + &.primary { + color: @button-primary-text-color; + background-color: @button-primary-background-color; + border-color: @button-primary-border-color; + &:hover, &.pressed, &.selected { + background-color: @button-primary-hover-background-color; +// border-color: darken(@button-primary-border-color, 10%); + } + } + &.big { + font-size: 1.5em; + border-radius: @large-button-border-radius; + padding: @input-padding-v*1.5 @input-padding-h*1.5; + //margin: @input-margin-top @input-margin-right @input-margin-bottom 0; + .suffix_icon { + font-size: 55%; // 53.5% + vertical-align: middle; + } + } + &.with_button_dropdown_split { // Have to be AFTER .big and .primary + padding-right: 1.2em; + &.big { + padding-right: 1.8em; + } + } + &.loading { + opacity: .5; + background-image: none; // Removes base ".loading" style + /* interesting CONTENT REPLACING alternative + position: relative; + color: transparent; + background: none; + background-color: lighten(@button-background-color, 40%); + border-color: lighten(@button-background-color, 40%); + &:after { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + padding: @input-padding-v @input-padding-h; + color: @background-color; + content: '...'; + }*/ + } +} + +.buttonset-style() { + margin-right: @input-margin-right; + vertical-align: middle; + font-size: 0; + > .ui-button { + font-size: @base-font-size; + margin-right: 1px; + border-radius: 0; + &.ui-corner-left { + border-radius: @button-border-radius 0 0 @button-border-radius; + } + &.ui-corner-right { + border-radius: 0 @button-border-radius @button-border-radius 0; + } + } +} + +.input-base() { + .input-button-common; + display: inline-block; + border: @input-border-size solid transparent; + height: auto; + padding: @input-padding-v @input-padding-h; + margin: @input-margin-top 0 @input-margin-bottom 0; + width: 100%; +} + +.input-style() { + .input-base; + color: @input-text-color; + background: none @input-background-color; + border-radius: @standard-border-radius; + border-color: @input-border-color; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset; + transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; + + &:focus { + border-color: @input-focus-border-color; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px fade(@input-focus-border-color, 60); + outline: 0 none; + } + &.inline { + margin-right: .5em; + width: auto; + } +} + +.input-select() { + @media @ie10modernhack { + position: relative; + select { + -webkit-appearance: none; + -moz-appearance: none; + + // IE10 & 11 for appearance: none + &::-ms-expand { + display: none; + } + + padding-right:30px; + + .input-button-common; + // sovrapposizioni arrotondamenti + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; + } + + &:after { + .button-style(); + margin: 0; + + position: absolute; + top: 0; + right: 0; + bottom: 0; + line-height: 30px; + width: 28px; + margin-right: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + + /* + content: "▼"; + font-size: 60%; + */ + + font-family: FontAwesome; + content: "\f0d7"; + font-weight: normal; + + // padding: 0 8px; + pointer-events:none; + // box-sizing: border-box; + } + } +} + +.win() { + border-radius: @large-border-radius; + // IE8 border + border: 0px solid @shadow-color; + border-width: 1px@ie8hackprop; + border-color: fade(@shadow-color, 0%); + box-shadow: 0 2px 20px @shadow-color; + color: @helpwin-text-color; + background-color: @helpwin-background-color; + padding: 0; + overflow: hidden; +} + +.wintitle() { + position: relative; padding: .5em 1em .3em; + + color: @text-color; + .ui-icon { + color: @text-color; + } + background: none @dialog-title-background-color; + border: none; + font-weight: bold; + border-radius: 0; +} + +.popup-links-style() { + > li, > .dropdown-container > li { + display: block; + padding: 0; margin: 0; + //background-color: @popup-background-color; + + > a { // Reverting .button() + display: block; + border: none; + padding: .5em; + margin: 0; + border-radius: 0; + position: relative; + overflow: hidden; text-overflow: ellipsis; // nowrap is in the container (usually .dropdown) + font-weight: bold; + background-color: transparent; + color: @text-color; + img { + vertical-align: text-top; + margin: 0 .5em 0 0; + } + &.disabled { + color: @text-greyed-color !important; + &:hover { + border: none; + } + } + .badge { + position: absolute; + right: 0; + margin-left: 1em; + top: .6em; + } + } + > a when (@button-reversed = true) { + color: @link-color; + } + &:hover { + background-color: @button-background-color; + color: @button-text-color; + a { + color: @button-text-color; + } + } + // add a small border on cell_links inside rows for popup_links in dropdown + .cell_links > li > a { + border-color: mix(@popup-background-color, @text-color, 50%); + } + &.separator { + border-top: 1px solid @button-background-color; + margin: .5em 0; + } + } + &.table_columns { + > li, > .dropdown-container > li { + > a { + display: table-cell; + vertical-align: middle; + width: 100%; + } + > .table_column { + display: table-cell; + vertical-align: middle; + width: auto; + /*.button { + margin: 0 .5em; + color: @button-text-color; + }*/ + } + } + } +} + +@dropdown-padding-v: .5em; +@dropdown-padding-h: 1em; + +.dropdown-style() { + position: absolute; + z-index: @zindex-popup; + margin: 0; // Basic margin for simple dropdown on simple link (button dropdown will declare their margin later) + padding: @dropdown-padding-v @dropdown-padding-h; + border-radius: @button-border-radius; + // IE8 border + border: 0px solid @shadow-color; + border-width: 1px@ie8hackprop; + // trasparented border for supporting browsers + border-color: fade(@shadow-color, 0%); + box-shadow: 0 4px 10px @shadow-color; + background-color: @popup-background-color; +// border: 0; + max-height: 300px; + overflow: auto; + min-width: 100%; + max-width: 25em; + white-space: normal; // dropdown-container inser a nowrap, but the dropdown content could be a simple div with text. + &.dropdown-right { right: 0; } + &.dropdown-bottom { bottom: 0; } + a.button + div.dropdown_spacer + &, .button_links &, .links.inline & { + margin: -.4em 0 0 0; + } + .cell_links &, .top_links &, .box_top_links &, .slide_links & /*, .slide_links a.button + div.dropdown_spacer + &*/ { + margin: .2em 0 0 0; + } + hr { + margin: .5em -@dropdown-padding-h; + border-top: 1px solid lighten(@button-background-color, 40%); // Like button.active + box-shadow: none; + } + .container-inline & { + display: block; + } + .dropdown_footer { + padding: @dropdown-padding-v 0 0 0; margin: 0; + } +} + +.clear-after() { + &:after { + content: ""; + display: table; + clear: both; + } +} +.no-focus() { + &:focus, &:-moz-focusring { outline: 0 none !important; } + &::-moz-focus-inner { border: none; } +} diff --git a/packages/editor/src/css/style_elements_moxie.less b/packages/editor/src/css/style_elements_moxie.less new file mode 100644 index 00000000..b602932e --- /dev/null +++ b/packages/editor/src/css/style_elements_moxie.less @@ -0,0 +1,181 @@ +/************************************************************************************************************************** + * TINYMCE / MOXIEMANAGER HTML ELEMENTS + *************************************************************************************************************************/ + +/** + * moxiemanager window + */ +.moxman-container.moxman-window, .mce-window { + border: none; + border-top-left-radius: @large-border-radius; + border-top-right-radius: @large-border-radius; + border-color: fade(@shadow-color, 0%); + box-shadow: 0 2px 20px @shadow-color; + overflow: hidden; +} +.moxman-window, .mce-window { + .moxman-window-head, .mce-window-head { + background: none @dialog-title-background-color; + font-size: 1.1em; + //border-top-left-radius: @large-border-radius; + //border-top-right-radius: @large-border-radius; + + .moxman-title, .mce-title { + color: @text-color; + } + button.moxman-close, button.mce-close { + //color: @background-color; + font-size: 1.6em; + top: 6px; + &:hover { + color: @text-color; + } + } + } + .moxman-panel, .mce-panel { + background-color: @background-color; + } + .moxman-container-body, .mce-container-body { + .moxman-panel.moxman-first, .mce-panel.mce-first { + border-bottom: none; + } + } + div.moxman-filelist-head { + background-color: @table-odd-row-background-color; + border-bottom: none; //@table-border-style; + } + .moxman-filelist { + border-top: @table-border-style; + .moxman-filelist-row td { + background-color: @table-even-row-background-color; + border-bottom: none; //@table-border-style; + } + .moxman-filelist-odd td { + background-color: @table-odd-row-background-color; + } + tr.moxman-checked, tr.moxman-checked td { + background-color: @table-row-selected-background-color; + color: @text-color; + & div .moxman-txt, & i.moxman-ico { + color: @text-color; + } + } + .moxman-filelist-head-item .moxman-down { + border-top-color: @text-color; + } + .moxman-filelist-head-item .moxman-up { + border-bottom-color: @text-color; + } + /* HIDE CHECKBOX: .moxman-filelist-body td:first-child, .moxman-filelist-head td:first-child { + display: none; + }*/ + } + .moxman-thumbnailview { + border-top: @table-border-style; + .moxman-thumb { + border: 1px solid mix(@background-color, @highlight-background-color, 50%); + &:hover, &.moxman-checked { + outline: 2px solid @table-row-selected-background-color; + } + .moxman-info, &.moxman-active .moxman-info, &.moxman-checked .moxman-info { + background-color: mix(@background-color, @highlight-background-color, 50%); + color: @text-color; + i.moxman-i-checkbox { + // HIDE CHECKBOX: display: none; + background-color: @background-color; + color: @text-color; + border: 1px solid @text-color; + &:before { + color: @text-color; + } + } + } + } + } + i.moxman-i-checkbox, i.mce-i-checkbox { + background-color: transparent; + } + //.mce-btn.mce-active, .mce-btn.mce-active:hover { + + .mce-listbox, .mce-listbox:hover, .mce-listbox.mce-active, .mce-listbox.mce-active:hover, .mce-listbox:focus { + background-color: transparent; + text-shadow: none; + border: 1px solid #C5C5C5; // Could be @button-border-color, but moxiemanager have a different color for other fields + span, .mce-ico { + color: @text-color; + } + i.mce-caret { + border-top-color: @text-color; // Down arrow is written with borders, but uses text color + } + } + .moxman-btn i, .mce-btn i { + text-shadow: none; + } + input, select, textarea, button { // resets the "max-width: 100%;" from style_page.less, otherwise breaking images + max-width: none; + //border: 1px solid @button-border-color; // This doesn't work + } +} + +.moxman-tooltip, .mce-tooltip { // Increases z-index for tooltips called by moxiemanager inside tinymce 3 + z-index: 500000 !important; +} + +.mce-toolbar-grp.mce-panel, .mce-tinymce-inline { + background-color: transparent !important; + border-color: transparent !important; +} + +// Fix tinymce custom-color button (appeared on white upon white without this) +.mce-custom-color-btn button { + color: black !important; + width: 100% !important; + text-align: left !important;; +} +.mce-custom-color-btn:hover button { + color: white !important; +} + +// Fix tinymce color transparent button icon (cross misaligned) +[data-mce-color=transparent] { + line-height: 10px !important; +} + +.mce-menu, .moxman-menu { + .win(); +} + +body.moxman-v2 { + .moxman-btn { + border: none; + background-color: transparent; + button { + background-color: @button-background-color; + color: @button-text-color; + border: 1px solid @button-background-color; + border-radius: @button-border-radius; + i { color: @button-text-color; } + .moxman-caret { border-top-color: @button-text-color; } + } + &.moxman-active button { + background-color: @button-hover-background-color; + } + &.moxman-primary button { + color: @button-primary-text-color; + background-color: @button-primary-background-color; + border: 1px solid @button-primary-background-color; + i { color: @button-primary-text-color; } + .moxman-caret { border-top-color: @button-primary-text-color; } + } + } + .moxman-combobox { + .moxman-textbox { + border-top-left-radius: @button-border-radius; + border-bottom-left-radius: @button-border-radius; + } + .moxman-btn button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + } +} diff --git a/packages/editor/src/css/style_mosaico.less b/packages/editor/src/css/style_mosaico.less new file mode 100644 index 00000000..e435a7cd --- /dev/null +++ b/packages/editor/src/css/style_mosaico.less @@ -0,0 +1,552 @@ +/**************************************************************************************************************************** + * MOSAICO + ***************************************************************************************************************************/ + +/** + * Page html structure: + * + * #page + * #main-edit-area + * #main-wysiwyg-area + * #toolbar .mo + * #main-toolbox .mo + * #tooltabs + * #toolimages + * #tooldebug + * #tooltheme + * #main-preview .mo + * #preview-toolbar + * #frame-container + * #incompatible-browser + * #fake-image-editor + * #loading (usato solo da standalone) + * #moxman-loading + * #toast-container + * #contextmenu-help.mo + * #carousel-container.mo + * + * CSS selector used, beyond the #ids before: + * - .mo e .mo-* + * - .ui-* (ui-helper-hidden-accessible, ui-tooltip) + * - .moxman-* e .mce-* + * - .fa-* (font-awesome, configurable via @fa-css-prefix) + * - .icon-* (fontello: TODO remove me, we currently refer 2 icons from fontello) + * - .evo-* (evo.colorpicker) + * - .toast-* #toast-* (toastr) + */ + +@leftsidebar-width: 400px; +@rightsidebar-width: 340px; +@mainarea-minwidth: 600px; +@topbar-height: 40px; + +@screen-sm-max: 480px; // TODO Remove me, not used by mosaico (see style_page and style_admin) +@screen-md-max: 1020px; // TODO Remove me, not used by mosaico (see style_page and style_admin) +@screen-lg-max: 1460px; // Mosaico live preview will show beyond this + +@mosaico-text-color: @text-color; +@mosaico-background-color: @background-color; +@mosaico-ui-background-color: @sidebar-background-color; +@mosaico-input-border-color: @input-border-color; +@mosaico-button-text-color: @button-text-color; +@mosaico-button-background-color: @button-background-color; +@mosaico-button-background-color-hover: @button-hover-background-color; +@mosaico-button-border-color: @button-border-color; +@mosaico-button-shadow-color: lighten(#fff - @mosaico-button-background-color, 30%); // Used in content +@mosaico-object-background-color: @object-background-color; +@mosaico-object-border-radius: @object-border-radius; +@mosaico-object-shadow: none; +@mosaico-helpwin-background-color: @helpwin-background-color; +@mosaico-helpwin-text-color: @helpwin-text-color; +@mosaico-accent-color: @accent-color; +@mosaico-outline-color: currentcolor; +@mosaico-shadow-color: #808080; +@mosaico-selection-color: #CC0000; + +// Variabili base usate da voxmail: colori, stili +@import "style_variables.less"; + +// Icone font-awesome (.fa-* , configurable via @fa-css-prefix) +@import (optional) "font-awesome/less/font-awesome.less"; + +// Mosaico: editing tools (toolbar, left toolbox, right preview) +@import 'style_mosaico_tools.less'; +// Mosaico: wysiwyg content +@import 'style_mosaico_content.less'; + +// Base mixins for style_elements_* +@import 'style_elements_mixins.less'; +// Styles for tinymce/moxiemanager (uses .moxman-* and .moxie-*) +@import "style_elements_moxie.less"; + +.makeFontAwesome() { // TODO move this in style_utils? + visibility: visible; + font-family: FontAwesome; + color: #333332; + position: relative; + top: 1px; + left: -2px; + display: inline-block; +} + +@keyframes border-color-selection-pulsate { + 0% { border-color: @mosaico-outline-color; } + 40% { border-color: @mosaico-selection-color; } + 60% { border-color: @mosaico-selection-color; } + 100% { border-color: @mosaico-outline-color; } +} + +@keyframes droppable-pulsate { + 0% { opacity: 1 } + 100% { opacity: .1 } +} + +.makeDroppable() { + .resetFont(); + font-weight: bold; + + content: attr(data-drop-content); + text-align: center; + line-height: 24px; + position: absolute; + // animation: pulse .5s ease-out 0s 4 alternate; + animation: droppable-pulsate 1s ease-in-out infinite alternate; + top: -14px; + left: -10px; + height: 24px; + background-color: fade(@mosaico-selection-color, 60%); + background-clip: content-box; + color: white; + right: -10px; + border: 2px dashed @mosaico-selection-color; + // this z-index prevent using fileupload by showing the droppable + // under the mo-dropzone + z-index: 10; + pointer-events: none; +} + +// Note that we avoid altering border/outline widths/opacity on hover/selection because of Webkit bugs (see safarihacks.css) +.makeSelectable(@size: 10px, @selectedSelector: ~'.selected', @selectedSize: 1px, @borderElementSelector: ~':after') { + position: relative; + + &@{borderElementSelector} { + content: ""; + display: block; + position: absolute; + // z-index: 0; + top: -3px; bottom: -3px; + left: -2px - @size; + right: -2px - @size; + + // Use border for selection + border: 1px solid transparent; + border-width: @selectedSize; + border-left-width: @size; + border-right-width: @size; + + // Use outline for hover effects + outline: 1px solid transparent; + // outline-offset: -1px; + + // otherwise this catches clicks and prevent correct selection of underlying text + pointer-events: none; + } + &@{selectedSelector}@{borderElementSelector} { + outline-color: transparent; + // border: @selectedSize dashed @mosaico-selection-color; + // border-left-width: @size; + // border-right-width: @size; + border-color: @mosaico-selection-color; + border-style: dashed solid; + animation: border-color-selection-pulsate 4s infinite; + } + &:hover@{borderElementSelector} { + outline-color: @mosaico-outline-color; + border-top-color: transparent !important; + border-bottom-color: transparent !important; + animation: none; + } + + &@{selectedSelector} { + z-index: 10; + } + &:hover { + z-index: 11; + } + +} + +.makeEditableHover(@size, @editableSelector, @borderElementSelector: ~':before') { + @{editableSelector}@{borderElementSelector} { + content: ""; + display: block; + position: absolute; + // z-index: 0; + top: -3px; bottom: -3px; + left: -7px; right: -7px; + border: 1px dashed transparent; + opacity: 0.3; + + // otherwise this catches clicks and prevent correct selection of underlying text + pointer-events: none; + } + + &:hover @{editableSelector}@{borderElementSelector} { + border-color: @mosaico-outline-color; + } + + &:hover @{editableSelector}:hover@{borderElementSelector} { + border-color: transparent; + } +} + +.resetFont() { + font-family: @font-family; + font-size: 16px; + text-decoration: none !important; +} + +/**************************************************************************************************************************** + * PAGE SETTINGS + * Base styles / reset, full page layout + ***************************************************************************************************************************/ + +body { + background-color: @mosaico-ui-background-color; + margin: 0; + overflow: hidden; /* otherwsie TinyMCE menues sometimes makes scrollbars show in main body */ +} +input, select, textarea, button { // input don't inherit font properties from body by default. + font-family: inherit; + font-size: inherit; + max-width: 100%; +} + +* { + user-select: none; +} +input, +textarea, +[contenteditable], +[contenteditable] *, // makes IE contenteditable content selectable again +.evo-color span // allow selecting for hex colors in colorpicker +{ + user-select: text; +} + +// IE/CH +a[disabledhref] { + color: #06C; + color: -webkit-link; + text-decoration: underline; + cursor: auto; +} + +// FF +a[disabledhref]:-moz-read-write { + text-decoration: underline -moz-anchor-decoration; + color: -moz-hyperlinktext; +} + +/**************************************************************************************************************************** + * LAYOUT + ***************************************************************************************************************************/ + +#page { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +#main-edit-area { + left: 0; + right: 0; + overflow: hidden; +} + +#main-edit-area, #toolbar { + min-width: @mainarea-minwidth; +} + +#toolbar { + z-index: 110 !important; // Bigger than #main-toolbox .ui-tabs .ui-tabs-panel + background-color: @mosaico-ui-background-color; + box-sizing: border-box; + position: absolute; + top: 0; + left: 0; + right: 0; + height: @topbar-height; +} + +#main-toolbox { + backface-visibility: hidden; + display: none; + left: 0; + width: @leftsidebar-width; + box-shadow: 0 0 10px @mosaico-shadow-color, 0 0 5px @mosaico-shadow-color; +} +.withToolbox #main-toolbox { + display: block; +} +.withToolbox #main-edit-area, +.withToolbox #toolbar { + left: @leftsidebar-width; +} + +#main-preview { + backface-visibility: hidden; + display: none; + right: 0; + width: @rightsidebar-width; + //padding: 10px; + overflow: hidden; +} +.withPreviewFrame #main-preview { + display: block; +} +.withPreviewFrame #main-edit-area { + right: (@rightsidebar-width + 5px); +} + +#main-edit-area:before, +#main-edit-area:after, +#frame-container:before, +#frame-container:after { + content: ""; + display: block; + position: absolute; + border: 0; + height: @topbar-height; + box-shadow: 0px 1px 10px @mosaico-shadow-color, 0px 0px 5px @mosaico-shadow-color; + left: 0; + right: 0; + top: 0; + z-index: 100; +} +#main-edit-area:after { + top: auto; + bottom: -@topbar-height; +} +#frame-container:before { + top: -@topbar-height; +} +#frame-container:after { + top: auto; + bottom: -@topbar-height; +} +#main-wysiwyg-area { + position: absolute; + top: @topbar-height; + left: 0; + right: 0; + bottom: 0; + overflow-y: auto; + // http://blog.getpostman.com/2015/01/23/ui-repaint-issue-on-chrome/ + -webkit-transform: translate3d(0,0,0); + // overflow-x: hidden; +} + +/**************************************************************************************************************************** + * GENERIC UTILITIES: + * DRAG&DROP, UPLOADER, TOASTER, TOOLTIP, FONTS, LOADER + ***************************************************************************************************************************/ + +#main-toolbox .draggable { + &.image { + + width: 85px; + height: 85px; + text-align: center; + vertical-align: middle; + + padding: 5px; + border: 0; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + background-origin: content-box; + img { + opacity: 0; + } + } +} +.ui-draggable-dragging { + z-index: 10000; +} +.ui-draggable-dragging.sortable-placeholder { + top: 0 !important; + left: 0 !important; +} + + +.uploading .fileuploadtext { + display: none; +} + +.fileuploadtext { + top: 0px !important; + left: 0px !important; + right: 0px !important; + bottom: 0px !important; + color: #000000; +} +.uploadzone .fileuploadtext { + .resetFont(); + font-weight: bold; +} +.isdragging, .isdraggingimg { + .uploadzone .fileuploadtext { + display: none !important; + } +} +.uploadzone .progress { + display: none; +} +.uploadzone.uploading .progress { + display: block; +} + +/* this is needed to push a dropzone over a "makeDroppable" (greater z-index) + because IE10 doesn't support "pointer-events: none" and images drag/drop from desktop wouldn't work */ +.mo-uploadzone { + position: absolute; + // less than tools, greater than makeDroppable + z-index: 15; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: block; +} + +.toast-bottom-full-width { + margin-left: 25%; + margin-right: 25%; + width: 50% !important; +} + +#toast-container.toast-bottom-full-width > div { + // width: 50% !important; +} + +body > .ui-tooltip { + .win(); + + .resetFont(); + // font-family: @font-family; + // font-size: 1em; + font-size: 14px; + + border-width: 0px; + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; + box-shadow: 0px 0px 5px #AAA; +} + +.ui-helper-hidden-accessible { + border: 0px none; + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0px; + position: absolute !important; + width: 1px; +} + +// Show "profile" icon in TinyMCE - TODO remove me +i.mce-i-newsletter-profile:before { + content: '\e826'; //@see icon-profile14-noout + font-family: "fontello"; +} + +.mo-standalone { + @keyframes loading { + 0% { transform: scale(1, 1) rotate(0deg); } + 50% { transform: scale(1.5, 1.5) rotate(360deg); } + 100% { transform: scale(1, 1) rotate(720deg); } + } + + #loading.loading img { + animation: loading 4s linear infinite; + } +} + +@keyframes broken { + 0% { opacity: 0 } + 95% { opacity: 0 } + 100% { opacity: 1 } +} +#loading.loading div { + animation: broken 10s linear forwards; + padding: 1em; + opacity: 1; +} + +#carousel-dialog { + .carousel-buttons { + position: absolute; right: 5px; bottom: 10px; + } + .carousel-buttons .button { + font-size: 1.2em; + } + .carousel-remember { + font-size: 1.2em; + position: absolute; left: 10px; bottom: 17px; + } + .carousel-remember input { + vertical-align: middle; margin-right: .2em; + } + .owl-carousel { + height: 550px; + } + .owl-controls { + position: absolute; left: 0; right: 0; bottom: 7px; + } + .owl-controls .owl-page.active span { + background-color: @button-background-color; + } + .owl-controls .owl-page span { + background-color: @accent-color; + /*opacity: 1;*/ + } + .carousel-help { + margin-top: 5px; + font-size: 1.2em; + } + .carousel-help-text { + line-height: 1.5em; + } + .carousel-help-text.large-width { + width: 80%; + margin: 0 auto; + } + .carousel-help-text p { + padding: .5em; + } + .carousel-help-image { + } + .carousel-help .left { + margin-right: 20px; + } + .carousel-help .top { + margin-bottom: 10px; + } + .carousel-help-balloon { + display: flex; display: -webkit-flex; display: -ms-flexbox; + align-items: center; -webkit-align-items: center; + /*-ms-flex-align: center; -webkit-box-align: center;*/ + justify-content: center; + text-align: center; + overflow: auto; + padding: 0 .5em; + // fix per IE10 + > div { width: 100% } + } +} diff --git a/packages/editor/src/css/style_mosaico_content.less b/packages/editor/src/css/style_mosaico_content.less new file mode 100644 index 00000000..30f6cea8 --- /dev/null +++ b/packages/editor/src/css/style_mosaico_content.less @@ -0,0 +1,421 @@ +@import (inline) 'safarihack.css'; + +#main-edit-area .editable { + position: relative; + // display: table; +} + +/* minimum size for empty dropzones */ +#main-edit-area .sortable-blocks-edit.empty { + min-height: 200px; + // il solo min-height su IE non centra il flexbox + height: 200px; + display: flex; + justify-content: center; + align-items: center; + margin: 20px 30px; + // flex-direction: column; + border: 2px dashed @mosaico-outline-color; + border-radius: 20px; + animation: border-color-selection-pulsate 4s infinite; + position: relative; +} + +#main-edit-area .sortable-blocks-edit.empty:after { + content: attr(data-empty-content); + // reset font (eredito i colori) + font-size: @base-font-size * 1.6; + font-weight: normal; + text-decoration: none; + font-family: @font-family; + // text-shadow: 1px 1px 0 #FFFFFF, 0 0 10px #FFFFFF; +} + +#main-edit-area .isdragging .sortable-blocks-edit.empty:after { + .makeDroppable(); + height: auto; + bottom: -14px; +} + +@keyframes pulse { + 0% { left: -10px; right: -10px; opacity: .8; } + 100% { left: -30px; right: -30px; opacity: 0; } +} +@keyframes slidein { + 0% { transform: scale(1.5,1.5); opacity: 0; } + 100% { transform: scale( 1, 1); opacity: 1; } +} +@keyframes slidein2 { + 0% { margin-left: -30%; margin-right: 30%; opacity: 0; } + 100% { margin-left: 0; margin-right: 0; opacity: 1; } +} +#main-edit-area .sortable-placeholder { + animation: slidein .2s linear 0s 1; +} +#main-edit-area .sortable-placeholder:after { + content: ""; + position: absolute; + top: -10px; + left: -10px; + right: -10px; + bottom: -10px; + border: 10px solid red; + border-color: rgba(255, 0, 0, .1) red rgba(255, 0, 0, .1) red; + z-index: 50; + opacity: .8; +} + +#main-edit-area .img-wysiwyg { + position: relative; + /* questo dovrebbe avere lo stesso stile dell'immagine rimpiazzata! */ + /* display: inline-block; */ + display: block; + width: auto; +} +#main-edit-area .isdraggingimg .ui-droppable.img-wysiwyg { + &:before { + .makeDroppable(); + line-height: 45px; + height: auto; + top: -10px; + bottom: -10px; + } + &.ui-state-draghover:before { + background-color: fade(@mosaico-selection-color, 80%); + animation: none; + } +} + + +#main-edit-area .isdragging .sortable-blocks-edit > div:not(.sortable-placeholder) + div:not(.sortable-placeholder):not(.ui-sortable-helper):not(.ui-draggable-dragging):before, +#main-edit-area .isdragging .sortable-blocks-edit > div:not(.sortable-placeholder):not(.ui-sortable-helper):not(.ui-draggable-dragging):first-child:before, +#main-edit-area .isdragging .sortable-blocks-edit > div:not(.sortable-placeholder):not(.ui-sortable-helper):not(.ui-draggable-dragging):last-child:after { + .makeDroppable(); +} + +#main-edit-area .isdragging .sortable-blocks-edit > div:not(.sortable-placeholder):not(.ui-sortable-helper):not(.ui-draggable-dragging):last-child:after { + bottom: -20px; + top: auto; +} + +#main-edit-area .editable.sortable-placeholder:hover .tools { + // display: none; + visibility: hidden; +} + +#main-edit-area .editable:hover .tools { + // display: block; + visibility: visible; +} + +#main-edit-area .ui-sortable-helper > *, +#main-edit-area .ui-sortable-helper .tools > * { + opacity: .3; +} +#main-edit-area .ui-sortable-helper .tools, +#main-edit-area .ui-sortable-helper .tools .handle { + opacity: 1; +} + +#main-edit-area .tool { + .button-style(); + + display: inline-block; + text-align: center; + width: 25px; + height: 25px; + // border-radius: 3px; + font-size: 20px; + padding: 3px; + padding-bottom: 2px; + margin: 0; + min-height: 25px; + + box-shadow: 0 0 5px @mosaico-button-shadow-color; + + cursor: pointer; + + input.fileupload { + padding-top: 50px; + } +} +#main-edit-area .tool:hover { + background-color: @mosaico-button-background-color-hover; +} +#main-edit-area .tools .tool.handle { + float: left; + margin-left: 16px; + cursor: move; +} +#main-edit-area .tools .tool.moveup, +#main-edit-area .tools .tool.movedown { + float: left; + margin-left: 3px; +} + +#main-edit-area .tools .tool.delete, +#main-edit-area .tools .tool.clone { + float: right; + margin-left: 3px; +} + +#main-edit-area .tools .tool.delete { + margin-right: 16px; +} + +#main-edit-area .midtools { + // display: none; + visibility: hidden; + z-index: 30; + position: absolute; + bottom: 16px; + // width: 100%; + text-align: left; +} +#main-edit-area .img-wysiwyg:hover .midtools { + // display: block; + visibility: visible; +} +// nascondo un po' di cose durante l'upload +#main-edit-area .uploading { + .midtools { + // display: none !important; + visibility: hidden !important; + } + .fileuploadtext { + // display: none !important; + visibility: hidden !important; + } + .fileupload.withfile { + // display: none; + visibility: hidden; + } +} + + +#main-edit-area .img-wysiwyg .img-size { + visibility: hidden; + position: absolute; + top: 0; + right: 0; + padding: 2px; + font-family: @font-family; + font-size: 12px; + background-color: rgba(128,128,128,.5); + color: white; +} + +#main-edit-area .img-wysiwyg:hover .img-size { + visibility: visible; +} + +#main-edit-area .midtools { + margin-left: 4px; + .tool { + // z-index: 20; + margin-left: 4px; + } +} + +#main-edit-area .tools { + position: absolute; + // display: none; + visibility: hidden; + margin: 0; + top: -16px; + left: 0; + right: 0; + height: 1px; + z-index: 20; + text-align: center; + /* width: 100%;*/ + /* padding: 0.25em; */ +} + +#main-wysiwyg-area { + backface-visibility: hidden; + background-color: white; +} + +#main-edit-area, #main-toolbox, #main-preview { + position: absolute; + top: 0; + bottom: 0; +} + +@keyframes opacityAnimation { + 0% { opacity: 0.6; } + 50% { opacity: 0.3; } + 100% { opacity: 0.6; } +} + +#main-wysiwyg-area { + // Prevent images inside A tags to show "hand cursor" + a[href] { + cursor: default !important; + } + // The ruls above breaks the cursor in tinymce, so fix it: + a[contenteditable] { + cursor: text !important; + } + + // Prevent clicking and show loading whily tinymce is being initialized + .wysiwyg-loading { + pointer-events: none; + animation: opacityAnimation 2s infinite; + } + + // we force inline editable elements to be shown as inline-block in editing + // there are many issues with editing inline (non inline-block) elements so + // this is a sensible behaviour + span, a, b, i, cite, code, em, label, small, strong, sub, sup, q { + &[contenteditable] { + display: inline-block; + } + } + // Force a minimum width for any contenteditable, to prevent it from collapsing + // and becoming "non-selectable" with clicks/touches (we can't expect people to use TAB) + [contenteditable] { + min-width: 1em; + // In Firefox if you put the caret in a span and then delete char by char you can get to a point where the content is empty. + // Even if we force an inline-block, if it is empty it loose its height. So we force a pseudo element as an invisible separator for this specific case. + &:empty::before { + content: "\2063"; + display: inline-block; + position: relative; + } + } + +} + +#main-edit-area { + .mce-edit-focus { + outline: none; + } + + // selectable elements + #main-wysiwyg-area:not(.isdragging):not(.isdraggingimg) { + // blocks + .editable { + .makeSelectable(10px, ~'.selected', 0, ~' .mo-blockselectionhelper'); + + .makeEditableHover(10px, ~'.mce-content-body'); + .makeEditableHover(10px, ~'.selectable-img', ~' .mo-imgselectionhelper:before'); + + } + // texts + .mce-content-body { + .makeSelectable(5px, ~'.selecteditem', 0); + cursor: text; + } + // images + .selectable-img { + .makeSelectable(5px, ~'.selecteditem', 0, ~' .mo-imgselectionhelper:after'); + } + } + + .textMiddle { + text-shadow: none !important; + font-weight: bold; + background-color: fade(white, 20%); + /* border-radius: 5px; */ + padding: 3px; + position: absolute; + top: 2px; + left: 2px; + right: 2px; + } +} + +#main-wysiwyg-area replacedbody { + position: relative; + display: block; + min-height: 100%; + max-width: 700px; + margin: 0 auto !important; + padding: 16px 20px !important; + + @media (min-width: 1400px) { + max-width: 800px; + } + @media (min-width: 1600px) { + max-width: 900px; + } + .withPreviewFrame & { + @media (max-width: 1700px) { + max-width: 700px; + } + @media (min-width: 1700px) { + max-width: 800px; + } + @media (max-width: 1400px) { + &:before, &:after { + display: none; + } + } + } + + + + + @media (min-width: 1100px) { + + &:before, &:after { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + width: 40px; + bottom: 0; + background: linear-gradient( 90deg, + rgba(255,255,255,0) 19%, + white 21%, + white 79%, + rgba(255,255,255,0) 81% + ), linear-gradient( 135deg, + rgba(255,255,255,0) 25%, + rgba(255,255,255,0) 28%, + white 28%, + white 72%, + rgba(255,255,255,0) 72%, + rgba(255,255,255,0) 75% + ), linear-gradient( -135deg, + rgba(255,255,255,0) 25%, + rgba(255,255,255,0) 28%, + white 28%, + white 72%, + rgba(255,255,255,0) 72%, + rgba(255,255,255,0) 75% + ),linear-gradient( 135deg, + rgba(255,255,255,0) 25%, + #CCC 25%, + white 28%, + white 72%, + #CCC 75%, + rgba(255,255,255,0) 75% + ), linear-gradient( -135deg, + rgba(255,255,255,0) 25%, + #CCC 25%, + white 28%, + white 72%, + #CCC 75%, + rgba(255,255,255,0) 75% + ); + background-size: 80px 20px; + background-position: left -40px top 0; + z-index: 1; + } + &:after { + left: auto; + right: 0; + background-position: left 0px top 0; + } + } + +} + +// Add shadow to tinymce buttonbar buttons +.mce-toolbar-grp.mce-panel .mce-btn-group { + box-shadow: 0 0 5px @mosaico-button-shadow-color; +} diff --git a/packages/editor/src/css/style_mosaico_tools.less b/packages/editor/src/css/style_mosaico_tools.less new file mode 100644 index 00000000..ec4cd924 --- /dev/null +++ b/packages/editor/src/css/style_mosaico_tools.less @@ -0,0 +1,1043 @@ +/**************************************************************************************************************************** + * GENERIC TOOLS STYLES + ***************************************************************************************************************************/ + +.mo { + font-family: @font-family; + font-size: @base-font-size; + line-height: 1.5em; +} + +#main-toolbox { + //font-size: 1.1em; + line-height: normal; + + .propEditor .propInput .checkbox-replacer { + padding: 4px 2px; + font-size: 1.2em; + } + .objLabel.level0, .pane-title { + font-size: 1.2em; + } + .objLabel.level1 { + font-size: 1.2em; + } + .noSelectedBlock, .customStyleHelp, .objEmpty, .galleryEmpty { + font-size: 1.2em; + } + .propInput .data-select::after, + .propInput .evo-pointer::before { + width: 31px; + padding: 0 10px; + } + .propInput .ui-textbutton .ui-textbutton-button.ui-button-icon-only { + width: 30px; + padding: 0; + .ui-icon { + margin: 0; + } + } + .propInput .ui-spinner-button { + width: 30px; + .ui-icon { left: 6px; top: 8px } + } + .evo-pop .evo-more { + font-size: 1em; + } +} +#toolimages { + .img-dropzone { + position: relative; + } + .img-dropzone.ui-state-highlight:before { + .makeDroppable(); + line-height: 45px; + height: auto; + top: -10px; + bottom: -10px; + } + .img-dropzone.ui-state-draghover:before { + background-color: fade(@mosaico-selection-color, 80%); + animation: none; + } + + .uploadzone { + font-size: 1.2em; + } +} + +.mo { + @import "style_elements.less"; // (button, dropdown, tooltip, dialog...) + @import (optional) "style_elements_drupal.less"; // TODO remove me + @import "style_elements_jquery.less"; + @import (optional) "style_elements_qtip.less"; // TODO remove me + + *, + *:before, + *:after { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + .ui-icon { + overflow: visible; // preview icons to select desktop/tablet/smartphone are truncated without this. + } + + .fa { // reset .fa + display: inline-block; + font-style: normal; + } + + .buttons { + text-align: center; + padding-top: 3px; + } + + .propInput { + input[type=text], input[type=number], input[type=url], select { + .input-style(); + margin: 0; + + &.invalid, &.error { + border: @input-error-border-style; + } + } + .data-select { + display: block; + .input-select(); + } + .ui-textbutton { + width: 100%; + + // .input_with_submit_icon + display: inline-table; + table-layout: fixed; + margin-right: 0; + vertical-align: middle; + + .ui-textbutton-input.withButton { + display: table-cell; + margin: 0; + margin-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + // .submit_icon + .ui-textbutton-button { + display: table-cell; + margin-right: 0; + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + + .ui-button-text { + line-height: 0; + } + + &.ui-button-icon-only { + .input-button-common; + width: 1.6em; + } + } + } + } + + .propEditor { + display: table; + width: 100%; + } + + .propLabel { + padding: 8px 8px; + padding-left: 0; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 45%; + float: left; + text-align: right; + + // "?" for tooltips + &[title]:before { + .makeFontAwesome(); + float: right; + position: initial; + color: lighten(@text-color, 20%); + content: "\f059"; + font-size: 80%; + line-height: 1.5em; + margin-left: 0.5em; + } + + } + + .propInput { + width: 55%; + float: left; + input, select { width: 100%; } + } + + .notnull.propEditor.checkboxes .propInput { + width: 50%; + } + + .propCheck { + width: 5%; float: left; padding: 5px; display: none; + } + .notnull .propCheck { + display: block + } + + .propLabel:after, .propInput:after, .objEdit:after { + content: ""; + display: table; + } + + .objEdit { + display: block; + width: 100%; + /* background-color: rgba(0,0,0,0.02); */ + &.level1 { + /* border-bottom: 2px solid #f1eee6; */ + background-color: @mosaico-background-color; + padding: 2px; + } + } + + .label.notused { + display: none; + font-size: 50%; + color: @mosaico-shadow-color; + } + .label.notused:before { + content: "[[["; + } + .label.notused:after { + content: "]]]"; + } + + .objLabel.level2 { + color: rgba(255,255,255,0.7); + float: left; + position: absolute; + display: none; + } + .objLabel.level3 { + color: rgba(255,255,255,0.4); + float: left; + position: absolute; + top: 1em; + display: none; + } + + .objEdit.level1 { + /* border-bottom: 2px solid #CCC; */ + padding-top: 4px; + padding-bottom: 2px; + margin-bottom: 3px; + /* padding: 2px; */ + } + .objLabel.level1 { + color: black; + display: block; + /* display: none; */ + } + + #toolstyles .objLabel.level1, + #tooltheme .objLabel.level1 { + padding-left: 60px; + } + + .objLabel { + text-transform: uppercase; + // text-align: center; + border-bottom: 3px solid @accent-color; + color: @mosaico-text-color; + display: block; + margin: -4px -2px 6px; + padding: 5px; + border-radius: 6px 6px 0 0; + } + + .objEdit.level0 { + // border: 1px solid @mosaico-text-color; + padding: 0px 1px; + margin-top: 12px; + } + + .objLabel.level0 { + display: block; + color: @mosaico-text-color; + background-color: @mosaico-background-color; + font-weight: bold; + font-size: 90%; + border-bottom: 3px solid @mosaico-text-color; + border-radius: 0; + padding: 3px 10px; + // margin: -4px -7px 6px -7px; + margin: 0px -7px 8px -7px; + } + .supportsCustomStyles .objLabel.level0 { + margin-right: 70px; + } + + .objEdit.level-1 { + padding: 0 15px; + overflow: auto; + height: 95%; + background-color: @mosaico-background-color; + border-radius: 6px; + } + + .objEdit { + position: relative; + } + .objEdit.level1 { + margin-top: 15px; + } + .objPreview { + width: 50px; + height: 50px; + border-radius: 100%; + position: absolute; + overflow: hidden; + border: 2px solid @accent-color; + top: -11px; + left: 5px; + } + + .objPreview > div { + position: absolute; + bottom: 20%; + left: 20%; + } + + .propEditor { + /* border-bottom: 2px solid #CCC; */ + padding: 2px; + } + .objEdit .propEditor { + padding: 2px 0; + border: 0; + } + + /* questo renderebbe grigini i dati default + .propInput.default input, + .propInput.default select { + color: #CCC; + } + */ + + .propEditor.notnull { + font-weight: bold; + /* background-color: #FFFF80; */ + } + .propEditor.notnull input, + .propEditor.notnull select { + font-weight: bold; + } + .propEditor.notnull input[type=checkbox] { + font-weight: normal; + } + + /* + .propInput.local.default, .propInput.local.default * { display: none; } + .propInput.global.overridden, .propInput.global.overridden * { display: none; } + */ + + .propInput { + position: relative; + } + + .propInput .colorPicker { + padding-right: 30px; + } + + .propInput .data-color input[type=text] { + font-size: 90%; + font-family: monospace; + width: 5.5em; + margin: 0; + margin-left: 85px; + background-color: transparent; + border-color: fade(@mosaico-button-border-color, 20%); + box-shadow: none; + border-style: dashed; + + &:hover, &:focus { + .input-style(); + + font-size: 90%; + font-family: monospace; + width: 5.5em; + margin: 0; + margin-left: 85px; + /* + background: none #e4dfcf; + border-radius: 5px; + border-color: @mosaico-button-border-color; + border-style: solid; + */ + } + + + + } + + .propInput .evo-pointer { + position: absolute; + .input-style(); + margin: 0; + // right: 4px; + // top: 6px; + z-index: 5; + + left: 0px; + top: 0px; + // border-radius: 5px; + width: 80px; + height: 30px; + // border-color: @mosaico-input-border-color; + + // sovrapposizioni arrotondamenti + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; + + &:before { + .button-style(); + + font-family: FontAwesome; + content: "\f0d7"; + font-weight: normal; + + // see .button_dropdown_split styles + border-left: @input-border-size solid fade(@button-border-color-split, 50%) !important; // !important to work also on .big and .primary + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; + + position: absolute; + top: -1px; + right: -1px; + bottom: -1px; + line-height: 30px; + width: 28px; + padding: 0 8px; + margin: 0; + + } + } + + .objEdit input[type=checkbox] { + display: none; + + & + .checkbox-replacer { + width: 1.28571429em; + display: block; + text-align: center; + // Rompe IE10 + // visibility: hidden; + } + + /* , &:checked + .checkbox-replacer:before */ + & + .checkbox-replacer:before { + .makeFontAwesome(); + } + } + + .objEdit input[type=checkbox] { + &:checked + .checkbox-replacer:before { + content: '\f205'; /* '\f096'; */ + } + & + .checkbox-replacer:before { + font-size: 150%; + text-align: center; + content: '\f204'; /* '\f14a'; */ + } + } + + .propCheck input[type=checkbox] { + &:checked + .checkbox-replacer:before { + content: "\f041"; /* tondo con punto '\f192';*/ /* '\f140'; *//* '\f14a'; */ + content: "\f1b2"; /* cubo */ + font-size: 14px; + opacity: 1; + } + & + .checkbox-replacer:before { + content: '\f0ac'; /* asterisco "\f069"; *//* '\f096'; */ + content: "\f1b3"; /* cubi */ + font-size: 14px; + opacity: .8; + } + } + + .propInput .ui-spinner { + width: 100%; + margin: 0; + + .ui-spinner-input { + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; + } + + // NOTE: maybe this could be applied also to non-propInput spinners + .ui-state-default .ui-icon.fa, + .ui-widget-content .ui-icon.fa { + background-image: none; + font-size: 10px; + top: 9px; + } + } + + .propLabel[title] { + text-decoration: underline; + cursor: help; + } + + .noSelectedBlock, .customStyleHelp, .objEmpty, .galleryEmpty, .blockDescription { + padding: 1em; + margin-bottom: .5em; + background-color: @mosaico-object-background-color; + border-radius: @mosaico-object-border-radius; + box-shadow: @mosaico-object-shadow; + color: #4F4F4F; + } + + .customStyleHelp, .objEmpty { + margin-bottom: 1em; + } + + /*************** + * COLOR PICKER + ***************/ + + .evo-pop { + right: 0; + width: auto; + .win(); + border-width: 0; + padding: 3px; + + .evo-palette td { + padding: 12px; + border: none; + } + .evo-palette th, .evo-palette-ie th, .evo-palette2 th { + border: none; + } + .evo-palette, .evo-palette-ie, .evo-palette2 { + border-spacing: 0px 0px; + margin: 0 auto; + width: auto; + border: none; + } + + .evo-palette2 td { + padding: 8px 9px; + } + + .evo-cHist div { + padding: 12px; + margin: 2px; + } + + .evo-color div { + padding: 12px; + margin: 2px; + border-color: #c0c0c0; + } + + .evo-color { + width: 120px; + padding: 1px 3px 2px 4px; + } + + .evo-color span { + font-size: 17px; + margin: 5px 0 4px 4px; + } + + .evo-more { + padding: 4px 5px; + a { + margin-right: 1em; + } + } + } +} + + +/**************************************************************************************************************************** + * TOOLBAR + ***************************************************************************************************************************/ + +#toolbar { + padding: 5px 10px; + + .button, .ui-button, .button_dropdown_split { + margin-top: 0; margin-bottom: 0; + } + + ul.top_right_links { + float: right; + .dropdown { + margin: .2em 0 0 0; + } + } + + // When screen is not big enough to show the preview sidebar, let's hide the preview button + @media (max-width: (@screen-lg-max) ) { + label[for=previewFrameToggle] { + display: none; + } + .ui-button[for=showGallery] { + .ui-icon { margin-right: 0 } + .ui-button-text { display: none } + } + } + + .leftButtons { + float: left; + } + + .rightButtons { + float: right; + } + #downloadForm { + display: inline-block; + } +} + +/**************************************************************************************************************************** + * TOOLBOX + ***************************************************************************************************************************/ + +#main-toolbox { + > div, + > div > div { + height: 100%; + overflow: hidden; + } + + #tooltabs.ui-tabs { + overflow: hidden; + .ui-tabs-panel { + top: @topbar-height; + overflow-y: auto; + overflow-x: hidden; + z-index: 100; + } + + .ui-tabs-nav { + font-size: 1.2em; + padding: 0px 0px 0px 4px; + + li { + margin: 4px 4px 0 0; // margin-top for good tabs also when they wrap on new line. + line-height: @topbar-height - 4px + 1px; + + a { + width: 100%; + padding: 0 .5em; + } + /* + a { + background-color: @mosaico-button-background-color; + color: @mosaico-button-text-color; + text-decoration: none; + font-weight: bold; + &:hover { + background-color: @mosaico-button-background-color-hover; + } + } + &.ui-tabs-active a { + background-color: @mosaico-background-color; + color: @mosaico-text-color; + font-weight: bold; + } + */ + /*a:focus, a:-moz-focusring { + outline: 0 none !important; + }*/ + } + } + .ui-tabs-panel { + margin: 0; padding: 0.7em; + position: absolute; + bottom: @ui-tabs-panel-padding; + left: @ui-tabs-panel-padding; + right: @ui-tabs-panel-padding; + z-index: 100; + background-color: @mosaico-background-color; + } + + } + + .draggable-item { + display: inline-block; + } + .draggable { + width: 100px; + height: 100px; + overflow: hidden; + border: 2px solid black; + z-index: 100; + display: inline-block; + } + + .draggable-item .block { + // margin: 3px; + .handle { + cursor: move; + z-index: 120; + position: absolute; + top: 0; bottom: 0; + left: 20px; right: 20px; + // outline: 1px solid green; + } + } + .draggable-item { + position: relative; + + .addblockbutton { + z-index: 1000; + position: absolute; + bottom: 10px; + right: 5px; + display: none; + } + + .image, .block img { + box-shadow: 0 0 1px @mosaico-shadow-color; + margin: 3px 0; + } + + } + + .draggable-item:hover { + + transform: scale(1.05, 1.05); + z-index: 10; + position: relative; + + .addblockbutton { + display: block; + } + + .image { + box-shadow: 0 0 15px @mosaico-shadow-color; + } + .block { + // outline: 2px solid red; + img { + box-shadow: 0 0 15px @mosaico-shadow-color; + } + } + } + + .blockType { + display: none; + } + .block-list { + // suppongo che le immagini siano create per i 340px + max-width: 346px; + } + + // mette i blocchi al 100% + .block-list .draggable-item, + .block-list .draggable-item img { + width: 100%; + } + + .objEdit.level1.selectable { + .makeSelectable(5px, ~'.selecteditem', 0); + } + + .blockCheck { + float: right; + margin-top: -34px; + /* + border-radius: 5px; + border: 1px solid @mosaico-input-border-color; + .reverse & { + background-color: @mosaico-button-background-color; + } + */ + } + + .blockCheck input[type=checkbox] { + + & + .checkbox-replacer { + width: 56px; + } + + & + .checkbox-replacer:after { + .makeFontAwesome; + } + + & + .checkbox-replacer:before, + & + .checkbox-replacer:after, + &:checked + .checkbox-replacer:before, + &:checked + .checkbox-replacer:after { + padding: 1px; + display: block; + float: left; + font-size: 14px; + line-height: 18px; + width: 22px; + opacity: 1; + height: 18px; + // border-radius: 5px; + top: 0; + left: 0; + box-sizing: content-box; + } + + & + .checkbox-replacer:after, + &:checked + .checkbox-replacer:after { + content: "\f1b2"; /* cubo */ + } + + & + .checkbox-replacer:before, + &:checked + .checkbox-replacer:before { + content: "\f1b3"; /* cubi */ + } + + + & + .checkbox-replacer:after, + &:checked + .checkbox-replacer:before { + .input-style(); + + width: 22px; + font-weight: normal; + min-height: 18px; + line-height: 18px; + color: fade(@mosaico-text-color, 50%); + + padding: 2px; + margin: -1px -2px; + // opacity: 0.5; + z-index: 0; + } + & + .checkbox-replacer:after { + padding-left: 4px; + padding-right: 2px; + } + &:checked + .checkbox-replacer:before { + padding-left: 2px; + padding-right: 4px; + } + + + &:checked + .checkbox-replacer:after, + & + .checkbox-replacer:before { + .button-style(); + + font-weight: normal; + min-height: 18px; + line-height: 18px; + + padding: 4px; + margin: -3px -2px; + opacity: 1; + z-index: 1; + } + + } + + /* while local-editing we always show the local editor */ + .workLocal { + .propInput.global, .propInput.global * { display: none; } + } + /* while global-editing show the global editor unless it is overwritten (not null) */ + .workGlobal { + .propInput.local.default, .propInput.local.default * { display: none; } + .propInput.global.overridden, .propInput.global.overridden * { display: none; } + } + + .workGlobalContent { + .propInput.local, .propInput.local * { display: none; } + .blockCheck { display: none; } + .objLabel.level0 { + margin-right: 0; + } + } + + .customStyled span { + display: none; + } + + .customStyled:before { + content: " "; + } + + .customStyled:after { + .makeFontAwesome(); + content: "\f1b2"; + font-size: 14px; + opacity: 1; + } + + + #tooldebug { + overflow: auto; + } +} +.mo-standalone #main-toolbox #tooltabs.ui-tabs > .ui-tabs-nav { + padding-left: 40px; +} + +/**************************************************************************************************************************** + * IMAGES GALLERY + ***************************************************************************************************************************/ + +#toolimagesgallery { + padding: 10px; +} + +@keyframes slideright { + 0% { left: -(@leftsidebar-width+50px) } + 100% { left: 0 } +} +@keyframes slideleft { + 0% { left: 0 } + 100% { left: -(@leftsidebar-width+50px) } +} + +#toolimages { + .pane { + text-align: center; + } + .loadbutton, .galleryPager { + margin: .5em; + } +} +.slidebar { + z-index: 200; + position: absolute; + top: 0; + width: @leftsidebar-width - 3px; + left: 0; + animation: slideright .2s ease-out 0s 1; + border-radius: 0; + background-color: @mosaico-background-color; + box-shadow: 1px 0px 3px @mosaico-shadow-color; + + .close { + float: right; + visibility: hidden; + cursor: pointer; + width: 24px; + display: block; + + &:before { + visibility: visible; + font-size: 24px; + font-family: FontAwesome; + content: '\f00d'; + position: relative; + top: 0px; + right: 0px; + width: 24px; + height: 24px; + } + } + + .pane { + background-color: @mosaico-background-color; + border-radius: 5px; + margin: 5px; + padding: 5px; + } + .pane-title { + padding: 5px; + display: block; + } + +} + +.slidebar.hidden { + left: -(@leftsidebar-width+50px); + animation: slideleft .2s ease-out 0s 1; +} + +#toolimagestab { + padding: 0.2em; + + ul.ui-tabs-nav { + padding: 0; + } + li.ui-state-active a { + background: none repeat scroll 0% 0% #FFF; + } + .ui-tabs-panel { + display: block; + margin-top: 0; + // max padding to avoid breaking the gallery + padding: 15px 18px; + background: none repeat scroll 0% 0% #FFF; + border: 1px solid @mosaico-accent-color; + border-width: 0px 1px 1px; + } +} + +/**************************************************************************************************************************** + * PREVIEW + ***************************************************************************************************************************/ + +#main-preview { + .button, .ui-button, .button_dropdown_split { + margin-top: 0; margin-bottom: 0; + } +} + +#main-preview #preview-toolbar { + padding: 3px 10px; + text-align: center; + position: absolute; + bottom: 0; + right: 0; + left: 0; + z-index: 200; +} + +#main-preview #frame-container { + position: absolute; + top: @topbar-height; + bottom: 40px; + left: 0; + right: 0; + background-color: @mosaico-background-color; + box-shadow: inset 0px 0px 10px @mosaico-shadow-color; +} + +#frame-container > iframe { + + border: 0; + box-sizing: border-box; + padding: 0 6px; + + width: 100%; + height: 100%; + overflow: auto; + transform-origin: 0 0; + transform: scale(1); + +} + +#frame-container.desktop > iframe { + padding: 12px; + + width: 200%; + height: 200%; + transform: scale(0.5); +} + +#frame-container.large > iframe { + padding: 15px; + + width: 250%; + height: 250%; + transform: scale(0.4); +} diff --git a/packages/editor/src/css/style_mosaico_top-bar.less b/packages/editor/src/css/style_mosaico_top-bar.less new file mode 100644 index 00000000..e065aba6 --- /dev/null +++ b/packages/editor/src/css/style_mosaico_top-bar.less @@ -0,0 +1,88 @@ +#toolbar { + padding: 1px 0 1px 5px; + display: flex; + + .ui-button { + color: @tab-text-color; + padding-top: 7px; + padding-bottom: 7px; + line-height: 22px; + background-color: @mosaico-ui-background-color; + border-radius: 0; + + .ui-icon, + .ui-button-text { + color: currentColor; + } + + &:hover, + &.pressed { + background-color: lighten(@mosaico-ui-background-color, 10%); + } + &.selected, + &.ui-state-active { + border-top: 0; + } + &.ui-button-disabled, + &.ui-button-disabled .ui-icon, + &.ui-button-disabled .ui-button-text { + color: mix(@mosaico-ui-background-color, @tab-text-color); + } + } +} +// NAME INPUT +.creation-name { + flex: 1 1 auto; + display: flex; + border: solid rgba(255, 255, 255, 0.3); + border-width: 0 1px; + + .ui-button { + margin-right: 0; + text-align: left; + } + + input { + font: inherit; + color: @tab-text-color; + background: none; + padding-left: 7px; + border: 0; + outline: 0; + } + + p, + input { + flex: 1 1 auto; + } +} + +// DOWNLOAD BUTTON +.download-form { + position: relative; +} +.download-form__menu { + opacity: 0; + pointer-events: none; + position: absolute; + right: 0; + top: (@topbar-height - 4px); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5); + transition: opacity 0.5s; + margin: 0; + + .ui-button { + display: block; + margin: 0; + text-transform: capitalize; + border-radius: 0; + } +} +.download-form:hover .download-form__menu, +.download-form__menu:hover { + opacity: 1; + pointer-events: initial; +} +#toolbar .download-form__btn-menu { + margin: 0; +} diff --git a/packages/editor/src/css/style_reset.less b/packages/editor/src/css/style_reset.less new file mode 100644 index 00000000..1a777df1 --- /dev/null +++ b/packages/editor/src/css/style_reset.less @@ -0,0 +1,45 @@ +// @see http://meyerweb.com/eric/tools/css/reset/index.html + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + //list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/packages/editor/src/css/style_variables.less b/packages/editor/src/css/style_variables.less new file mode 100644 index 00000000..896639f8 --- /dev/null +++ b/packages/editor/src/css/style_variables.less @@ -0,0 +1,156 @@ +/************************************************************************************************************************** + * BASIC CONFIGURATION + *************************************************************************************************************************/ + +@base-font-size: 13.6px; /* 20140929: Previously 0.85em, but we don't want user selected sizes because it breaks around */ +@accent-color: #D2CBB1; +@background-color: #FEFDFC; +@link-color: #9C010F; + +@red: #9C010F; +@green: #94AF4B; +@green-progress-bar: @status-progress-bar-color-ok; // Progress bars and trust-stars +@blue: #4BA2AF; +@yellow: #FFFF90; + +@mobile-menu: false; +@button-reversed: false; + +@local-error-color: #CC0000; +@local-unsub-color: #404040; +@local-open-color: #2040B0; +@local-click-color: #007030; +@local-abuse-color: #EEEE00; +@local-delayed-color: #b39601; +@local-todo-color: #c2b798; + +@zindex-dialog: 1005; +@zindex-dialog-modal: 1004; +@zindex-popup: 1003; +@zindex-tooltip: 1004; +@zindex-thead: 1001; // Defined by thead plugin + +@elysia_nodes_property_label-width: 10em; +@status-progress-bar-color-ok: #48AF26; + +/************************************************************************************************************************** + * COMPUTED CONFIUGRATION + *************************************************************************************************************************/ + +@sidebar-background-color: @accent-color; +@highlight-background-color: mix(@accent-color, @background-color, 60%); +@sidebar-highlight-background-color: mix(@sidebar-background-color, @background-color, 60%); +@button-text-color: @background-color; +@button-text-color-disabled: lighten(@button-background-color, 20%); +@button-background-color: @text-color; +@button-hover-background-color: darken(@button-background-color, 10%); +@button-border-color: @button-background-color; +@button-border-color-split: contrast(difference(@button-border-color, @button-background-color), @button-border-color, @background-color, 5%); +@button-primary-text-color: @button-text-color; +@button-primary-background-color: @link-color; +@button-primary-hover-background-color: darken(@button-primary-background-color, 10%); +@button-primary-border-color: @button-primary-background-color; +@input-border-color: @button-border-color; +@input-focus-border-color: #66AFE9; // TODO +@input-border-size: 0; +@popup-background-color: lighten(@background-color,8%); + +// TODO remove unused vars + +@font-family: "trebuchet ms",arial,sans-serif; +@standard-border-radius: 5px; +@info-border-radius: @standard-border-radius; +@button-border-radius: @standard-border-radius; +@large-balloon-border-radius: 3em; + +@admin-menu-background-color: #000066; +@admin-menu-dev-background-color: #660066; + +// Vertical margin for standard elements (to preserve alignment when in columns) +@element-margin-vertical: 1.5em; + +/************************************************************************************************************************** + * SERVICE COLORS + *************************************************************************************************************************/ + +@local-user-failure-row-background-color: mix(saturate(@local-error-color, 20%), @background-color, 25%); +@local-user-clicker-row-background-color: mix(saturate(@local-click-color, 20%), @background-color, 25%); +@local-user-opener-row-background-color: mix(saturate(@local-open-color, 20%), @background-color, 25%); +@local-user-unsubscribe-row-background-color: mix(saturate(@local-unsub-color, 20%), @background-color, 25%); +@local-user-abuse-row-background-color: mix(saturate(@local-abuse-color, 20%), @background-color, 25%); + +// TODO delivered should not share the color with clicker +@local-result-delivered-color: @local-click-color; +@local-result-error-color: @local-error-color; +@local-result-delayed-color: @local-delayed-color; +@local-result-todo-color: @local-todo-color; + +@local-balloon-error-color: @local-error-color; +@local-balloon-unsubscribe-color: @local-unsub-color; +@local-balloon-abuse-color: @local-abuse-color; +@local-balloon-opener-color: @local-open-color; +@local-balloon-opener-estimated-color: desaturate(lighten(@local-open-color, 20%), 20%); +@local-balloon-clicker-color: @local-click-color; + +// TODO this works only with light background and dark text, only. +@local-balloon-error-text-color: contrast(@local-balloon-error-color, @background-color, @text-color, 50%); +@local-balloon-unsubscribe-text-color: contrast(@local-balloon-unsubscribe-color, @background-color, @text-color, 50%); +@local-balloon-abuse-text-color: contrast(@local-balloon-abuse-color, @background-color, @text-color, 50%); +@local-balloon-opener-text-color: contrast(@local-balloon-opener-color, @background-color, @text-color, 50%); +@local-balloon-opener-estimated-text-color: contrast(@local-balloon-opener-estimated-color, @background-color, @text-color, 50%); +@local-balloon-clicker-text-color: contrast(@local-balloon-clicker-color, @background-color, @text-color, 50%); + + +/************************************************************************************************************************** + * COMPUTED VARIABLES + *************************************************************************************************************************/ + +@text-color: contrast(@background-color, shade(@background-color, 80%), tint(@background-color, 80%), 50%); + +@error-color: @red; +@warning-color: lighten(@yellow, 5%); +@status-color: @green; + +@status-background-color: mix(@status-color, @background-color, 50%); +@status-text-color: darken(@status-color, 30%); +@warning-background-color: @warning-color; +@warning-text-color: @text-color; +@error-background-color: mix(@error-color, @background-color, 50%); +@error-text-color: darken(@error-color, 30%); + +@link-active-color: darken(@link-color, 20%); +@link-disabled-color: darken(@link-color, 50%); +@text-greyed-color: contrast(@text-color, lighten(@text-color, 40%), darken(@text-color, 40%), 50%); // Elementi leggibili ma meno importanti di text-color +@shadow-color: contrast(@background-color, darken(shade(@background-color, 20%), 30%), lighten(tint(@background-color, 20%), 30%), 50%); +@img-border-style: 3px solid @background-color; + +@input-text-color: @text-color; +@input-background-color: @highlight-background-color; +@input-placeholder-color: lighten(@text-color, 30%); +@input-error-border-style: 2px solid @red; + +@table-border-color: darken(@background-color, 10%); +@table-border-style: 2px solid @table-border-color; +@table-rows-separator-style: 1px solid @table-border-color; +@table-odd-row-background-color: @background-color; +@table-even-row-background-color: mix(@background-color, @highlight-background-color, 50%); +@table-header-color: @accent-color; +@table-row-selected-background-color: @yellow; + +@object-background-color: @table-even-row-background-color; +@object-border-style: none; //1px solid @highlight-background-color; +@object-border-radius: @large-border-radius; +@object-selectable-border-style: none; //2px solid @background-color; +@object-selectable-box-shadow: none; +@object-selected-box-shadow: none; //0px 0px 0px 2px @sidebar-background-color; + +@dialog-title-background-color: @accent-color; +@helpwin-background-color: @popup-background-color; +@helpwin-text-color: @text-color; +//@helpwin-title-background-color: @dialog-title-background-color; + +@large-border-radius: @standard-border-radius * 1.4; +@large-button-border-radius: @button-border-radius * 1.4; +@tabs-border-width: 1px; + +@ui-tabs-panel-padding: 4px; diff --git a/packages/editor/src/html/README.md b/packages/editor/src/html/README.md new file mode 100644 index 00000000..3bf88bb3 --- /dev/null +++ b/packages/editor/src/html/README.md @@ -0,0 +1,2 @@ +There are not really sources for the mosaico library but just examples on how the mosaico libray can be used/instantiated. +You usually include mosaico libs in your own app and instance it on your own. diff --git a/packages/editor/src/html/editor.html b/packages/editor/src/html/editor.html new file mode 100644 index 00000000..2221a910 --- /dev/null +++ b/packages/editor/src/html/editor.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/editor/src/html/index.html b/packages/editor/src/html/index.html new file mode 100644 index 00000000..3a1552e6 --- /dev/null +++ b/packages/editor/src/html/index.html @@ -0,0 +1,198 @@ + + + + + Free responsive email template editor | Mosaico + + + + + + + + + + + +
    +
    Mosaico
    +
    + +
    + You have saved contents in this browser! Show + + + + + + + + + + + + + + + +
    Email contents saved in your browser Hide
    IdNameCreatedLast changedOperations
    #keyversamixYYYY-MM-DDYYYY-MM-DD + + + +
    + +
    + +
    +

    Choose a master template

    +
    +
    +
    xx: xx
    + + xx + +
    +
    +
    + + diff --git a/packages/editor/src/js/app.js b/packages/editor/src/js/app.js new file mode 100644 index 00000000..1b3e363f --- /dev/null +++ b/packages/editor/src/js/app.js @@ -0,0 +1,245 @@ +"use strict"; +/* global global: false */ +/* global XMLHttpRequest: false */ + +var url = require('url'); +var console = require('console'); +var ko = require("knockout"); +var $ = require("jquery"); + +var templateLoader = require('./template-loader.js'); + +require("./ko-bindings.js"); +var performanceAwareCaller = require("./timed-call.js").timedCall; + +var addUndoStackExtensionMaker = require("./undomanager/undomain.js"); +var colorPlugin = require("./ext/color.js"); +var utilPlugin = require("./ext/util.js"); +var inlinerPlugin = require("./ext/inliner.js"); + +var localStorageLoader = require("./ext/localstorage.js"); + +if (typeof ko == 'undefined') throw "Cannot find knockout.js library!"; +if (typeof $ == 'undefined') throw "Cannot find jquery library!"; + +if (process.env.MOSAICO) { + +function _canonicalize(url) { + var div = global.document.createElement('div'); + div.innerHTML = ""; + div.firstChild.href = url; // Ensures that the href is properly escaped + div.innerHTML = div.innerHTML; // Run the current innerHTML back through the parser + return div.firstChild.href; +} + +function _appendUrlParameters(baseUrl, parameters) { + var paramSeparator = baseUrl.indexOf('?') == -1 ? '?' : '&'; + var res = baseUrl; + for (var param in parameters) if (parameters.hasOwnProperty(param)) { + res += paramSeparator + param + "=" + encodeURIComponent(parameters[param]); + paramSeparator = '&'; + } + return res; +} + +var applyBindingOptions = function(options, ko) { + + ko.bindingHandlers.wysiwygSrc.convertedUrl = function(src, method, width, height) { + var queryParamSeparator; + var imgProcessorBackend = options.imgProcessorBackend ? options.imgProcessorBackend : './upload'; + var backEndMatch = imgProcessorBackend.match(/^(https?:\/\/[^\/]*\/).*$/); + var srcMatch = src.match(/^(https?:\/\/[^\/]*\/).*$/); + if (backEndMatch === null || (srcMatch !== null && backEndMatch[1] == srcMatch[1])) { + queryParamSeparator = imgProcessorBackend.indexOf('?') == -1 ? '?' : '&'; + return _appendUrlParameters(imgProcessorBackend, { src: src, method: method, params: width + "," + height }); + } else { + console.log("Cannot apply backend image resizing to non-local resources ", src, method, width, height, backEndMatch, srcMatch); + var params = { method: method, width: width }; + if (height !== null) params['height'] = height; + return _appendUrlParameters(src, params); + } + }; + + ko.bindingHandlers.wysiwygSrc.placeholderUrl = function(width, height, text) { + var imgProcessorBackend = options.imgProcessorBackend ? options.imgProcessorBackend : './upload'; + return _appendUrlParameters(imgProcessorBackend, { method: 'placeholder', params: width + "," + height }); + }; + + // pushes custom tinymce configurations from options to the binding + if (options && options.tinymceConfig) + ko.bindingHandlers.wysiwyg.standardOptions = options.tinymceConfig; + if (options && options.tinymceConfigFull) + ko.bindingHandlers.wysiwyg.fullOptions = options.tinymceConfigFull; +}; + +} + +var start = function(options, templateFile, templateMetadata, jsorjson, customExtensions) { + + + + templateLoader.fixPageEvents(); + + var fileUploadMessagesExtension = function(vm) { + var fileuploadConfig = { + messages: { + unknownError: vm.t('Unknown error'), + uploadedBytes: vm.t('Uploaded bytes exceed file size'), + maxNumberOfFiles: vm.t('Maximum number of files exceeded'), + acceptFileTypes: vm.t('File type not allowed'), + maxFileSize: vm.t('File is too large'), + minFileSize: vm.t('File is too small'), + post_max_size: vm.t('The uploaded file exceeds the post_max_size directive in php.ini'), + max_file_size: vm.t('File is too big'), + min_file_size: vm.t('File is too small'), + accept_file_types: vm.t('Filetype not allowed'), + max_number_of_files: vm.t('Maximum number of files exceeded'), + max_width: vm.t('Image exceeds maximum width'), + min_width: vm.t('Image requires a minimum width'), + max_height: vm.t('Image exceeds maximum height'), + min_height: vm.t('Image requires a minimum height'), + abort: vm.t('File upload aborted'), + image_resize: vm.t('Failed to resize image'), + generic: vm.t('Unexpected upload error'), + rotate_left: vm.t('rotate-left'), + rotate_right: vm.t('rotate-right'), + vertical_mirror: vm.t('vertical-mirror'), + horizontal_mirror: vm.t('horizontal-mirror'), + cancel: vm.t('cancel'), + upload: vm.t('upload'), + } + }; + // fileUpload options. + if (options && options.fileuploadConfig) + fileuploadConfig = $.extend(true, fileuploadConfig, options.fileuploadConfig); + + ko.bindingHandlers['fileupload'].extendOptions = fileuploadConfig; + + }; + + var simpleTranslationPlugin = function(vm) { + if (options && options.strings) { + vm.t = function(key, objParam) { + var res = options.strings[key]; + if (typeof res == 'undefined') { + console.warn("Missing translation string for",key,": using default string"); + res = key; + } + return vm.tt(res, objParam); + }; + } + }; + + // simpleTranslationPlugin must be before the undoStack to translate undo/redo labels + var extensions = [simpleTranslationPlugin, addUndoStackExtensionMaker(performanceAwareCaller), colorPlugin, utilPlugin, inlinerPlugin]; + if (typeof customExtensions !== 'undefined') + for (var k = 0; k < customExtensions.length; k++) extensions.push(customExtensions[k]); + extensions.push(fileUploadMessagesExtension); + + var galleryUrl = options.fileuploadConfig ? options.fileuploadConfig.url : '/upload/'; + applyBindingOptions(options, ko); + + // TODO what about appending to another element? + $("").appendTo(global.document.body); + + // templateFile may override the template path in templateMetadata + if (typeof templateFile == 'undefined' && typeof templateMetadata != 'undefined') { + templateFile = templateMetadata.template; + } + // TODO canonicalize templateFile to absolute or relative depending on "relativeUrlsException" plugin + + templateLoader.load(performanceAwareCaller, templateFile, templateMetadata, jsorjson, extensions, galleryUrl); + +}; + +if (process.env.MOSAICO) { + +var initFromLocalStorage = function(options, hash_key, customExtensions) { + try { + var lsData = localStorageLoader(hash_key, options.emailProcessorBackend); + var extensions = typeof customExtensions !== 'undefined' ? customExtensions : []; + extensions.push(lsData.extension); + var template = _canonicalize(lsData.metadata.template); + start(options, template, lsData.metadata, lsData.model, extensions); + } catch (e) { + console.error("TODO not found ", hash_key, e); + } +}; + +var init = function(options, customExtensions) { + + var hash = global.location.hash ? global.location.href.split("#")[1] : undefined; + + // Loading from configured template or configured metadata + if (options && (options.template || options.data)) { + if (options.data) { + var data = typeof data == 'string' ? JSON.parse(options.data) : options.data; + start(options, undefined, data.metadata, data.content, customExtensions); + } else { + start(options, options.template, undefined, undefined, customExtensions); + } + // Loading from LocalStorage (if url hash has a 7chars key) + } else if (hash && hash.length == 7) { + initFromLocalStorage(options, hash, customExtensions); + // Loading from template url as hash (if hash is not a valid localstorage key) + } else if (hash) { + start(options, _canonicalize(hash), undefined, undefined, customExtensions); + } else { + return false; + } + return true; +}; + +} + +if (process.env.BADSENDER) { + +////// +// BADSENDER SPECIFIC +////// + +// don't replace mosaico code for better merging + +// Keep an empty function for not breaking start function +// Even if applyBindingOptions can be surcharged, +// it's better to remove this not necessary piece of code +var applyBindingOptions = $.noop + +// FLOW: +// => init +// => start +// in ./template-loader.js +// => templateLoader: Ajax datas +// => templateCompiler: +// -> Initialize viewmodel (./viewmodel.js) +// -> Add server datas +// -> apply plugins (server-storage, setEditorIcon + mosaico defined) + +var badsenderExt = require('./ext/badsender-extensions') +var badsenderEventsHub = require('./badsender-events-hub') + +var init = function(opts, customExtensions) { + console.info('BADSENDER – init') + console.log(opts) + var hasDatas = opts && opts.metadata && opts.data + // editor.jade script need a return value + if (!hasDatas) return false; + + badsenderExt.extendViewModel(opts, customExtensions) + badsenderExt.extendKnockout(opts) + + start(opts, void(0), opts.metadata, opts.data, customExtensions) + + // we need to DOM to be ready for that + badsenderEventsHub.initEventHub() + + return true; +} + +} + +module.exports = { + isCompatible: templateLoader.isCompatible, + init: init, + start: start +}; diff --git a/packages/editor/src/js/badsender-events-hub.js b/packages/editor/src/js/badsender-events-hub.js new file mode 100644 index 00000000..7e76ff63 --- /dev/null +++ b/packages/editor/src/js/badsender-events-hub.js @@ -0,0 +1,39 @@ +'use strict' + +const WINDOW_CLICK = `WINDOW_CLICK` + +// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget +class EventsHub extends EventTarget { + windowClick(event) { + this.dispatchEvent(new CustomEvent(WINDOW_CLICK, { detail: event })) + } +} +const eventsHub = new EventsHub() + +// This will be called on the star of Knockout application +// • so we are sure we have a body +// Many events in knockout have a cancelBubble attribute +// • it's still an unreliable way of getting a global click… +// `eventsHub` is exposed in the viewModel +// • we should try to call it whenever we have a `cancelBubble` +// (ex: main.tmpl.html #main-edit-area) +function initEventHub() { + document.body.addEventListener( + `click`, + event => eventsHub.windowClick(event), + { + passive: true, + } + ) +} + +function exposeToKnockout(vm) { + vm.bsEventsHub = eventsHub +} + +module.exports = { + eventsHub, + WINDOW_CLICK, + initEventHub, + exposeToKnockout, +} diff --git a/packages/editor/src/js/badsender-helpers.js b/packages/editor/src/js/badsender-helpers.js new file mode 100644 index 00000000..4b51d92e --- /dev/null +++ b/packages/editor/src/js/badsender-helpers.js @@ -0,0 +1,16 @@ +const INTERGER_REGEX = /^\d+$/ + +function ensureInteger(object = {}) { + Object.entries(object).forEach(([key, value]) => { + const isString = typeof value === `string` + const canBeInteger = isString && INTERGER_REGEX.test(value) + if (canBeInteger) return (object[key] = parseInt(value, 10)) + const isObject = value && typeof value === `object` + if (isObject) return (object[key] = ensureInteger(value)) + }) + return object +} + +module.exports = { + ensureInteger, +} diff --git a/packages/editor/src/js/bindings/badsender-colorpicker.js b/packages/editor/src/js/bindings/badsender-colorpicker.js new file mode 100644 index 00000000..d9d3cf2c --- /dev/null +++ b/packages/editor/src/js/bindings/badsender-colorpicker.js @@ -0,0 +1,151 @@ +'use strict' + +const ko = require('knockout') +// https://colorpicker.easylogic.studio/ +// https://www.npmjs.com/package/@easylogic/colorpicker +const ColorPickerUI = require('@easylogic/colorpicker') + +const { eventsHub, WINDOW_CLICK } = require('../badsender-events-hub.js') + +// Original mosaico use evol-colorpicker +// • http://evoluteur.github.io/colorpicker/ +// It's in design too far from the tinyMCE color-picker +// • https://github.com/Badsender/mosaico/issues/29 +// → try to use another one + +// Color-picker binding is defined in “bindings/colorpicker.js” +// • then registered in ”ko-bindings.js” +// • then it is called in the “converter/editor.js” +// • it will translate any “color” property to a call to “colorpicker” +// https://github.com/Badsender/mosaico/blob/master/src/js/converter/editor.js#L70 + +// to understand `deprecatedVM` see +// https://knockoutjs.com/documentation/custom-bindings.html#the-update-callback + +// event.target !== el && !el.contains(event.target) + +// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest + +console.log(`ColorPickerUI`) + +const PICKER_CLASS = `badsender-colorpicker__picker` +const PICKER_CLASS_HIDDEN = `badsender-colorpicker__picker--hidden` +const NOT_HIDDEN_PICKER_QUERY = `.${PICKER_CLASS}:not(.${PICKER_CLASS_HIDDEN})` +const CLEAR_BUTTON_CLASS = `badsender-colorpicker__clear-button` +const CLEAR_BUTTON_ICON = `` + +const colorpicker = { + init($colorInput, valueAccessor, allBindings, deprecatedVM, bindingContext) { + const va = valueAccessor() + const initialColor = va.color() + + // // In order to have a correct dependency tracking in "ifSubs" we have to ensure we use a single "computed" for each editable + // // property. Given this binding needs 2 of them, we create a new wrapping computed so to "proxy" the dependencies. + // var newDO = ko.computed({ + // read: value, + // write: value, + // disposeWhenNodeIsRemoved: element + // }); + const $container = document.createElement(`div`) + $container.classList.add(`badsender-colorpicker`) + + const $bucket = document.createElement(`div`) + $bucket.classList.add(`badsender-colorpicker__bucket`) + $bucket.style.backgroundColor = initialColor + + const $picker = document.createElement(`div`) + $picker.classList.add(PICKER_CLASS, PICKER_CLASS_HIDDEN) + + const $clearButton = document.createElement(`button`) + $clearButton.classList.add(CLEAR_BUTTON_CLASS) + $clearButton.innerHTML = CLEAR_BUTTON_ICON + $clearButton.addEventListener(`click`, clearColor, { passive: true }) + + $container.appendChild($bucket) + $container.appendChild($picker) + + $colorInput.after($container) + $colorInput.after($clearButton) + $colorInput.setAttribute(`readonly`, ``) + $colorInput.value = initialColor + + // onChange seems to trigger `click` event on input + // • prevent this + let isPicking = false + const picker = ColorPickerUI.create({ + container: $picker, + position: `inline`, + autoHide: false, + type: `sketch`, + onChange: color => { + $bucket.style.backgroundColor = color + va.color(color) + $colorInput.value = color + console.log(color) + isPicking = true + return false + }, + }) + + function clearColor(event) { + va.color(``) + $colorInput.value = `` + $bucket.style.backgroundColor = `` + } + + function showColorPicker(event) { + // console.log(`SHOW_COLOR_PICKER`, isPicking, event) + if (isPicking) return (isPicking = false) + event.preventDefault() + const openedPickers = document.querySelectorAll(NOT_HIDDEN_PICKER_QUERY) + // close any other picker + ;[...openedPickers] + .filter($pickerWrapper => $pickerWrapper !== $picker) + .forEach($pickerWrapper => + $pickerWrapper.classList.add(PICKER_CLASS_HIDDEN) + ) + $picker.classList.toggle(PICKER_CLASS_HIDDEN) + } + function closePickerOnGlobalClick(event) { + if (event.detail == null) return + const { target } = event.detail + const isPickerClick = target === $picker || $picker.contains(target) + const isBucketClick = target === $bucket + const isInputClick = target === $colorInput + const isHandled = isPickerClick || isBucketClick || isInputClick + if (isHandled) return + $picker.classList.add(PICKER_CLASS_HIDDEN) + } + + $colorInput.addEventListener(`click`, showColorPicker, { passive: false }) + + $bucket.addEventListener(`click`, showColorPicker, { passive: false }) + eventsHub.addEventListener(WINDOW_CLICK, closePickerOnGlobalClick, false) + + ko.utils.domNodeDisposal.addDisposeCallback($colorInput, event => { + picker.destroy() + $colorInput.removeEventListener(`click`, showColorPicker, { + passive: false, + }) + $clearButton.removeEventListener(`click`, clearColor, { passive: true }) + $bucket.removeEventListener(`click`, showColorPicker, { passive: false }) + eventsHub.removeEventListener( + WINDOW_CLICK, + closePickerOnGlobalClick, + false + ) + $container.remove() + }) + }, + update( + $colorInput, + valueAccessor, + allBindings, + deprecatedVM, + bindingContext + ) { + console.log(`update colorpicker`) + }, +} + +ko.bindingHandlers.colorpicker = colorpicker diff --git a/packages/editor/src/js/bindings/badsender-fileupload-extension.js b/packages/editor/src/js/bindings/badsender-fileupload-extension.js new file mode 100644 index 00000000..c89816ea --- /dev/null +++ b/packages/editor/src/js/bindings/badsender-fileupload-extension.js @@ -0,0 +1,207 @@ +'use strict' + +const $ = require('jquery') +const Cropper = require('cropperjs') + +const raf = window.requestAnimationFrame +const ACTIVE_CLASS = `bs-img-cropper--active` + +// https://github.com/gabn88/jQuery-File-Upload/commit/8041a660fe6703c048eb24282b18fa9cb7b17400 +// https://github.com/blueimp/jQuery-File-Upload/wiki/Process-queue-API-examples +// https://github.com/tkvw/jQuery-File-Upload/blob/dca36beedae87c0cc50c456c0dd0e2b57ab6404e/js/jquery.fileupload-image-editor.js + +$.widget(`blueimp.fileupload`, $.blueimp.fileupload, { + processActions: { + cropImage(data) { + const dfd = $.Deferred() + const next = () => dfd.resolveWith(this, [data]) + const abort = () => dfd.rejectWith(this, [data]) + + const { dropZone, files, index, messages } = data + const originalFile = files[index] + const { name, type } = originalFile + + if (/gif|svg/.test(type)) return next() + + let imgCropper = false + + // convert file to base64 + // • this will be consumed by croppie + const reader = new FileReader() + reader.readAsDataURL(originalFile) + reader.addEventListener(`load`, onFileLoad) + reader.addEventListener(`error`, () => { + clean() + console.error(`can't read the file`) + }) + // image is loaded, so is Croppie. + // Let's start! + function onFileLoad() { + const fileResult = reader.result + const image = new Image() + image.src = fileResult + image.onload = () => onImageSize(image) + } + + // initialize cropping + function onImageSize(image) { + $(`.js-crop-wrapper`).remove() + const { + $wrapper, + cropZone, + $cancel, + $rotateLeft, + $rotateRight, + $mirrorVertical, + $mirrorHorizontal, + $submit, + $width, + $height, + } = createResizePopup(dropZone, messages) + + // cropper needs an image to begin with + $(image).appendTo(cropZone) + // viewMode: 1 restrict dragging + // • https://github.com/fengyuanchen/cropperjs#viewmode + imgCropper = new Cropper(image, { viewMode: 1 }) + + // bind events + $(document).on(`keyup.bs-cropper`, domEvent => { + if (domEvent.keyCode === 27) clean(abort) + }) + image.addEventListener(`crop`, cropperEvent => { + updateSizeFields({ imgCropper, $width, $height }) + }) + $cancel.on(`click`, domEvent => clean(abort)) + $rotateLeft.on(`click`, domEvent => imgCropper.rotate(-90)) + $rotateRight.on(`click`, domEvent => imgCropper.rotate(90)) + let scaleX = 1 + let scaleY = 1 + $mirrorHorizontal.on(`click`, domEvent => { + scaleX = scaleX * -1 + imgCropper.scaleX(scaleX) + }) + $mirrorVertical.on(`click`, domEvent => { + scaleY = scaleY * -1 + imgCropper.scaleY(scaleY) + }) + const setSizeFromInput = () => setSize({ imgCropper, $width, $height }) + $width.on(`input`, setSizeFromInput) + $height.on(`input`, setSizeFromInput) + $submit.on(`click`, domEvent => crop()) + raf(() => { + $wrapper.addClass(ACTIVE_CLASS) + updateSizeFields({ imgCropper, $width, $height }) + }) + } + + // we just need to replace the original File + // • https://stackoverflow.com/a/43185450/2193440 + // • https://developer.mozilla.org/en-US/docs/Web/API/File/File#Syntax + function crop() { + imgCropper.getCroppedCanvas().toBlob(resultBlob => { + const croppedImage = new File([resultBlob], name, { type }) + data.files[index] = croppedImage + clean() + }) + } + + function clean(deferredCallback = next) { + imgCropper && imgCropper.destroy && imgCropper.destroy() + $(document).off(`keyup.bs-cropper`) + const $wrapper = $(`.js-crop-wrapper`) + if (!$wrapper.length) { + console.warn(`image cropper not existing before cleaning`) + return deferredCallback() + } + $wrapper.css(`pointer-events`, `none`) + raf(() => $wrapper.removeClass(ACTIVE_CLASS)) + $wrapper.on(`transitionend`, event => { + $wrapper.remove() + deferredCallback() + }) + } + return dfd.promise() + }, + }, +}) + +function createResizePopup(dropZone, messages) { + const markup = `` + + dropZone.after(markup) + + const $wrapper = $(`.js-crop-wrapper`) + const $cropZone = $wrapper.find(`.js-crop`) + const cropZone = $cropZone[0] + const $cancel = $wrapper.find(`.js-crop-cancel`) + const $mirrorVertical = $wrapper.find(`.js-crop-mirror-vertical`) + const $mirrorHorizontal = $wrapper.find(`.js-crop-mirror-horizontal`) + const $rotateLeft = $wrapper.find(`.js-crop-rotate-left`) + const $rotateRight = $wrapper.find(`.js-crop-rotate-right`) + const $submit = $wrapper.find(`.js-crop-submit`) + const $width = $wrapper.find(`#cropper-width`) + const $height = $wrapper.find(`#cropper-height`) + return { + $wrapper, + cropZone, + $cancel, + $rotateLeft, + $rotateRight, + $mirrorVertical, + $mirrorHorizontal, + $submit, + $width, + $height, + } +} + +function stringToNumber(value) { + const parsed = parseInt(value, 10) + return Number.isNaN(parsed) ? 1 : parsed < 1 ? 1 : parsed +} + +function updateSizeFields({ imgCropper, $width, $height }) { + const cropperData = imgCropper.getData(true) + $width.val(cropperData.width) + $height.val(cropperData.height) +} + +function setSize({ imgCropper, $width, $height }) { + const [width, height] = [$width, $height].map($el => { + return stringToNumber($el.val()) + }) + const cropperData = imgCropper.getData(true) + imgCropper.setData(Object.assign({}, cropperData, { width, height })) +} diff --git a/packages/editor/src/js/bindings/bind-iframe.js b/packages/editor/src/js/bindings/bind-iframe.js new file mode 100644 index 00000000..0b67f608 --- /dev/null +++ b/packages/editor/src/js/bindings/bind-iframe.js @@ -0,0 +1,64 @@ +"use strict"; + +var ko = require("knockout"); +var console = require("console"); + +// @see also script-template.js pushTemplate +var addScriptTemplate = function(doc, templateName, templateMarkup) { + var scriptTag = doc.createElement('script'); + scriptTag.setAttribute('type', 'text/html'); + scriptTag.setAttribute('id', templateName); + scriptTag.text = templateMarkup; + doc.body.appendChild(scriptTag); + return scriptTag; + // $(' + + diff --git a/packages/ui/.nuxt/components/nuxt-link.client.js b/packages/ui/.nuxt/components/nuxt-link.client.js new file mode 100644 index 00000000..062a6984 --- /dev/null +++ b/packages/ui/.nuxt/components/nuxt-link.client.js @@ -0,0 +1,98 @@ +import Vue from 'vue' + +const requestIdleCallback = window.requestIdleCallback || + function (cb) { + const start = Date.now() + return setTimeout(function () { + cb({ + didTimeout: false, + timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) + }) + }, 1) + } + +const cancelIdleCallback = window.cancelIdleCallback || function (id) { + clearTimeout(id) +} + +const observer = window.IntersectionObserver && new window.IntersectionObserver((entries) => { + entries.forEach(({ intersectionRatio, target: link }) => { + if (intersectionRatio <= 0) { + return + } + link.__prefetch() + }) +}) + +export default { + name: 'NuxtLink', + extends: Vue.component('RouterLink'), + props: { + prefetch: { + type: Boolean, + default: true + }, + noPrefetch: { + type: Boolean, + default: false + } + }, + mounted () { + if (this.prefetch && !this.noPrefetch) { + this.handleId = requestIdleCallback(this.observe, { timeout: 2e3 }) + } + }, + beforeDestroy () { + cancelIdleCallback(this.handleId) + + if (this.__observed) { + observer.unobserve(this.$el) + delete this.$el.__prefetch + } + }, + methods: { + observe () { + // If no IntersectionObserver, avoid prefetching + if (!observer) { + return + } + // Add to observer + if (this.shouldPrefetch()) { + this.$el.__prefetch = this.prefetchLink.bind(this) + observer.observe(this.$el) + this.__observed = true + } + }, + shouldPrefetch () { + return this.getPrefetchComponents().length > 0 + }, + canPrefetch () { + const conn = navigator.connection + const hasBadConnection = this.$nuxt.isOffline || (conn && ((conn.effectiveType || '').includes('2g') || conn.saveData)) + + return !hasBadConnection + }, + getPrefetchComponents () { + const ref = this.$router.resolve(this.to, this.$route, this.append) + const Components = ref.resolved.matched.map(r => r.components.default) + + return Components.filter(Component => typeof Component === 'function' && !Component.options && !Component.__prefetched) + }, + prefetchLink () { + if (!this.canPrefetch()) { + return + } + // Stop observing this link (in case of internet connection changes) + observer.unobserve(this.$el) + const Components = this.getPrefetchComponents() + + for (const Component of Components) { + const componentOrPromise = Component() + if (componentOrPromise instanceof Promise) { + componentOrPromise.catch(() => {}) + } + Component.__prefetched = true + } + } + } +} diff --git a/packages/ui/.nuxt/components/nuxt-link.server.js b/packages/ui/.nuxt/components/nuxt-link.server.js new file mode 100644 index 00000000..f1230908 --- /dev/null +++ b/packages/ui/.nuxt/components/nuxt-link.server.js @@ -0,0 +1,16 @@ +import Vue from 'vue' + +export default { + name: 'NuxtLink', + extends: Vue.component('RouterLink'), + props: { + prefetch: { + type: Boolean, + default: true + }, + noPrefetch: { + type: Boolean, + default: false + } + } +} diff --git a/packages/ui/.nuxt/components/nuxt-loading.vue b/packages/ui/.nuxt/components/nuxt-loading.vue new file mode 100644 index 00000000..98c4765a --- /dev/null +++ b/packages/ui/.nuxt/components/nuxt-loading.vue @@ -0,0 +1,177 @@ + + + diff --git a/packages/ui/.nuxt/components/nuxt.js b/packages/ui/.nuxt/components/nuxt.js new file mode 100644 index 00000000..53f03b76 --- /dev/null +++ b/packages/ui/.nuxt/components/nuxt.js @@ -0,0 +1,101 @@ +import Vue from 'vue' +import { compile } from '../utils' + +import NuxtError from '../../layouts/error.vue' + +import NuxtChild from './nuxt-child' + +export default { + name: 'Nuxt', + components: { + NuxtChild, + NuxtError + }, + props: { + nuxtChildKey: { + type: String, + default: undefined + }, + keepAlive: Boolean, + keepAliveProps: { + type: Object, + default: undefined + }, + name: { + type: String, + default: 'default' + } + }, + errorCaptured (error) { + // if we receive and error while showing the NuxtError component + // capture the error and force an immediate update so we re-render + // without the NuxtError component + if (this.displayingNuxtError) { + this.errorFromNuxtError = error + this.$forceUpdate() + } + }, + computed: { + routerViewKey () { + // If nuxtChildKey prop is given or current route has children + if (typeof this.nuxtChildKey !== 'undefined' || this.$route.matched.length > 1) { + return this.nuxtChildKey || compile(this.$route.matched[0].path)(this.$route.params) + } + + const [matchedRoute] = this.$route.matched + + if (!matchedRoute) { + return this.$route.path + } + + const Component = matchedRoute.components.default + + if (Component && Component.options) { + const { options } = Component + + if (options.key) { + return (typeof options.key === 'function' ? options.key(this.$route) : options.key) + } + } + + const strict = /\/$/.test(matchedRoute.path) + return strict ? this.$route.path : this.$route.path.replace(/\/$/, '') + } + }, + beforeCreate () { + Vue.util.defineReactive(this, 'nuxt', this.$root.$options.nuxt) + }, + render (h) { + // if there is no error + if (!this.nuxt.err) { + // Directly return nuxt child + return h('NuxtChild', { + key: this.routerViewKey, + props: this.$props + }) + } + + // if an error occured within NuxtError show a simple + // error message instead to prevent looping + if (this.errorFromNuxtError) { + this.$nextTick(() => (this.errorFromNuxtError = false)) + + return h('div', {}, [ + h('h2', 'An error occured while showing the error page'), + h('p', 'Unfortunately an error occured and while showing the error page another error occured'), + h('p', `Error details: ${this.errorFromNuxtError.toString()}`), + h('nuxt-link', { props: { to: '/' } }, 'Go back to home') + ]) + } + + // track if we are showing the NuxtError component + this.displayingNuxtError = true + this.$nextTick(() => (this.displayingNuxtError = false)) + + return h(NuxtError, { + props: { + error: this.nuxt.err + } + }) + } +} diff --git a/packages/ui/.nuxt/empty.js b/packages/ui/.nuxt/empty.js new file mode 100644 index 00000000..a3ac0d84 --- /dev/null +++ b/packages/ui/.nuxt/empty.js @@ -0,0 +1 @@ +// This file is intentionally left empty for noop aliases diff --git a/packages/ui/.nuxt/index.js b/packages/ui/.nuxt/index.js new file mode 100644 index 00000000..f01c20d0 --- /dev/null +++ b/packages/ui/.nuxt/index.js @@ -0,0 +1,225 @@ +import Vue from 'vue' +import Meta from 'vue-meta' +import ClientOnly from 'vue-client-only' +import NoSsr from 'vue-no-ssr' +import { createRouter } from './router.js' +import NuxtChild from './components/nuxt-child.js' +import NuxtError from '../layouts/error.vue' +import Nuxt from './components/nuxt.js' +import App from './App.js' +import { setContext, getLocation, getRouteData, normalizeError } from './utils' +import { createStore } from './store.js' + +/* Plugins */ + +import nuxt_plugin_plugin_622fa22e from 'nuxt_plugin_plugin_622fa22e' // Source: ./vuetify/plugin.js (mode: 'all') +import nuxt_plugin_axios_21bac4d6 from 'nuxt_plugin_axios_21bac4d6' // Source: ./axios.js (mode: 'all') +import nuxt_plugin_vuefilters_6cd0b7b9 from 'nuxt_plugin_vuefilters_6cd0b7b9' // Source: ../plugins/vue-filters.js (mode: 'all') +import nuxt_plugin_badsenderglobalcomponents_a7291640 from 'nuxt_plugin_badsenderglobalcomponents_a7291640' // Source: ../plugins/badsender-global-components.js (mode: 'all') +import nuxt_plugin_vuei18n_5a00aec8 from 'nuxt_plugin_vuei18n_5a00aec8' // Source: ../plugins/vue-i18n.js (mode: 'all') +import nuxt_plugin_detectbrowserlocale_3ee24dc4 from 'nuxt_plugin_detectbrowserlocale_3ee24dc4' // Source: ../plugins/detect-browser-locale.js (mode: 'client') + +// Component: +Vue.component(ClientOnly.name, ClientOnly) + +// TODO: Remove in Nuxt 3: +Vue.component(NoSsr.name, { + ...NoSsr, + render (h, ctx) { + if (process.client && !NoSsr._warned) { + NoSsr._warned = true + + console.warn(' has been deprecated and will be removed in Nuxt 3, please use instead') + } + return NoSsr.render(h, ctx) + } +}) + +// Component: +Vue.component(NuxtChild.name, NuxtChild) +Vue.component('NChild', NuxtChild) + +// Component NuxtLink is imported in server.js or client.js + +// Component: +Vue.component(Nuxt.name, Nuxt) + +Vue.use(Meta, {"keyName":"head","attribute":"data-n-head","ssrAttribute":"data-n-head-ssr","tagIDKeyName":"hid"}) + +const defaultTransition = {"name":"page","mode":"out-in","appear":false,"appearClass":"appear","appearActiveClass":"appear-active","appearToClass":"appear-to"} + +async function createApp (ssrContext) { + const router = await createRouter(ssrContext) + + const store = createStore(ssrContext) + // Add this.$router into store actions/mutations + store.$router = router + + // Fix SSR caveat https://github.com/nuxt/nuxt.js/issues/3757#issuecomment-414689141 + const registerModule = store.registerModule + store.registerModule = (path, rawModule, options) => registerModule.call(store, path, rawModule, Object.assign({ preserveState: process.client }, options)) + + // Create Root instance + + // here we inject the router and store to all child components, + // making them available everywhere as `this.$router` and `this.$store`. + const app = { + store, + router, + nuxt: { + defaultTransition, + transitions: [defaultTransition], + setTransitions (transitions) { + if (!Array.isArray(transitions)) { + transitions = [transitions] + } + transitions = transitions.map((transition) => { + if (!transition) { + transition = defaultTransition + } else if (typeof transition === 'string') { + transition = Object.assign({}, defaultTransition, { name: transition }) + } else { + transition = Object.assign({}, defaultTransition, transition) + } + return transition + }) + this.$options.nuxt.transitions = transitions + return transitions + }, + + err: null, + dateErr: null, + error (err) { + err = err || null + app.context._errored = Boolean(err) + err = err ? normalizeError(err) : null + const nuxt = this.nuxt || this.$options.nuxt + nuxt.dateErr = Date.now() + nuxt.err = err + // Used in src/server.js + if (ssrContext) { + ssrContext.nuxt.error = err + } + return err + } + }, + ...App + } + + // Make app available into store via this.app + store.app = app + + const next = ssrContext ? ssrContext.next : location => app.router.push(location) + // Resolve route + let route + if (ssrContext) { + route = router.resolve(ssrContext.url).route + } else { + const path = getLocation(router.options.base, router.options.mode) + route = router.resolve(path).route + } + + // Set context to app.context + await setContext(app, { + store, + route, + next, + error: app.nuxt.error.bind(app), + payload: ssrContext ? ssrContext.payload : undefined, + req: ssrContext ? ssrContext.req : undefined, + res: ssrContext ? ssrContext.res : undefined, + beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined, + ssrContext + }) + + const inject = function (key, value) { + if (!key) { + throw new Error('inject(key, value) has no key provided') + } + if (value === undefined) { + throw new Error('inject(key, value) has no value provided') + } + + key = '$' + key + // Add into app + app[key] = value + + // Add into store + store[key] = app[key] + + // Check if plugin not already installed + const installKey = '__nuxt_' + key + '_installed__' + if (Vue[installKey]) { + return + } + Vue[installKey] = true + // Call Vue.use() to install the plugin into vm + Vue.use(() => { + if (!Object.prototype.hasOwnProperty.call(Vue, key)) { + Object.defineProperty(Vue.prototype, key, { + get () { + return this.$root.$options[key] + } + }) + } + }) + } + + if (process.client) { + // Replace store state before plugins execution + if (window.__NUXT__ && window.__NUXT__.state) { + store.replaceState(window.__NUXT__.state) + } + } + + // Plugin execution + + if (typeof nuxt_plugin_plugin_622fa22e === 'function') { + await nuxt_plugin_plugin_622fa22e(app.context, inject) + } + + if (typeof nuxt_plugin_axios_21bac4d6 === 'function') { + await nuxt_plugin_axios_21bac4d6(app.context, inject) + } + + if (typeof nuxt_plugin_vuefilters_6cd0b7b9 === 'function') { + await nuxt_plugin_vuefilters_6cd0b7b9(app.context, inject) + } + + if (typeof nuxt_plugin_badsenderglobalcomponents_a7291640 === 'function') { + await nuxt_plugin_badsenderglobalcomponents_a7291640(app.context, inject) + } + + if (typeof nuxt_plugin_vuei18n_5a00aec8 === 'function') { + await nuxt_plugin_vuei18n_5a00aec8(app.context, inject) + } + + if (process.client && typeof nuxt_plugin_detectbrowserlocale_3ee24dc4 === 'function') { + await nuxt_plugin_detectbrowserlocale_3ee24dc4(app.context, inject) + } + + // If server-side, wait for async component to be resolved first + if (process.server && ssrContext && ssrContext.url) { + await new Promise((resolve, reject) => { + router.push(ssrContext.url, resolve, () => { + // navigated to a different route in router guard + const unregister = router.afterEach(async (to, from, next) => { + ssrContext.url = to.fullPath + app.context.route = await getRouteData(to) + app.context.params = to.params || {} + app.context.query = to.query || {} + unregister() + resolve() + }) + }) + }) + } + + return { + store, + app, + router + } +} + +export { createApp, NuxtError } diff --git a/packages/ui/.nuxt/loading.html b/packages/ui/.nuxt/loading.html new file mode 100644 index 00000000..d5b73cfd --- /dev/null +++ b/packages/ui/.nuxt/loading.html @@ -0,0 +1,109 @@ + + + + +
    Loading...
    + + diff --git a/packages/ui/.nuxt/middleware.js b/packages/ui/.nuxt/middleware.js new file mode 100644 index 00000000..fded8c1a --- /dev/null +++ b/packages/ui/.nuxt/middleware.js @@ -0,0 +1,6 @@ +const middleware = {} + +middleware['authentication-check'] = require('../middleware/authentication-check.js') +middleware['authentication-check'] = middleware['authentication-check'].default || middleware['authentication-check'] + +export default middleware diff --git a/packages/ui/.nuxt/router.js b/packages/ui/.nuxt/router.js new file mode 100644 index 00000000..86363b67 --- /dev/null +++ b/packages/ui/.nuxt/router.js @@ -0,0 +1,120 @@ +import Vue from 'vue' +import Router from 'vue-router' +import { interopDefault } from './utils' +import scrollBehavior from './router.scrollBehavior.js' + +const _11aff502 = () => interopDefault(import('../routes/404.vue' /* webpackChunkName: "routes/404" */)) +const _57112a06 = () => interopDefault(import('../routes/groups/index.vue' /* webpackChunkName: "routes/groups/index" */)) +const _9304689e = () => interopDefault(import('../routes/mailings/index.vue' /* webpackChunkName: "routes/mailings/index" */)) +const _32e95d74 = () => interopDefault(import('../routes/templates/index.vue' /* webpackChunkName: "routes/templates/index" */)) +const _00f7e356 = () => interopDefault(import('../routes/users/index.vue' /* webpackChunkName: "routes/users/index" */)) +const _720f2fb7 = () => interopDefault(import('../routes/account/admin.vue' /* webpackChunkName: "routes/account/admin" */)) +const _e41836d8 = () => interopDefault(import('../routes/account/login/index.vue' /* webpackChunkName: "routes/account/login/index" */)) +const _5076c821 = () => interopDefault(import('../routes/account/reset-password.vue' /* webpackChunkName: "routes/account/reset-password" */)) +const _08b844ea = () => interopDefault(import('../routes/groups/new.vue' /* webpackChunkName: "routes/groups/new" */)) +const _1572db3f = () => interopDefault(import('../routes/mailings/new.vue' /* webpackChunkName: "routes/mailings/new" */)) +const _81398ede = () => interopDefault(import('../routes/account/login/admin.vue' /* webpackChunkName: "routes/account/login/admin" */)) +const _1fc6ae3a = () => interopDefault(import('../routes/groups/_groupId/index.vue' /* webpackChunkName: "routes/groups/_groupId/index" */)) +const _49feb748 = () => interopDefault(import('../routes/templates/_templateId.vue' /* webpackChunkName: "routes/templates/_templateId" */)) +const _a9417eb0 = () => interopDefault(import('../routes/users/_userId.vue' /* webpackChunkName: "routes/users/_userId" */)) +const _7e447ef4 = () => interopDefault(import('../routes/groups/_groupId/new-template.vue' /* webpackChunkName: "routes/groups/_groupId/new-template" */)) +const _bd8dad52 = () => interopDefault(import('../routes/groups/_groupId/new-user.vue' /* webpackChunkName: "routes/groups/_groupId/new-user" */)) +const _23d664c4 = () => interopDefault(import('../routes/account/_email/password/_token.vue' /* webpackChunkName: "routes/account/_email/password/_token" */)) +const _ed8719c8 = () => interopDefault(import('../routes/index.vue' /* webpackChunkName: "routes/index" */)) + +// TODO: remove in Nuxt 3 +const emptyFn = () => {} +const originalPush = Router.prototype.push +Router.prototype.push = function push (location, onComplete = emptyFn, onAbort) { + return originalPush.call(this, location, onComplete, onAbort) +} + +Vue.use(Router) + +export const routerOptions = { + mode: 'history', + base: decodeURI('/'), + linkActiveClass: 'nuxt-link-active', + linkExactActiveClass: 'nuxt-link-exact-active', + scrollBehavior, + + routes: [{ + path: "/404", + component: _11aff502, + name: "404" + }, { + path: "/groups", + component: _57112a06, + name: "groups" + }, { + path: "/mailings", + component: _9304689e, + name: "mailings" + }, { + path: "/templates", + component: _32e95d74, + name: "templates" + }, { + path: "/users", + component: _00f7e356, + name: "users" + }, { + path: "/account/admin", + component: _720f2fb7, + name: "account-admin" + }, { + path: "/account/login", + component: _e41836d8, + name: "account-login" + }, { + path: "/account/reset-password", + component: _5076c821, + name: "account-reset-password" + }, { + path: "/groups/new", + component: _08b844ea, + name: "groups-new" + }, { + path: "/mailings/new", + component: _1572db3f, + name: "mailings-new" + }, { + path: "/account/login/admin", + component: _81398ede, + name: "account-login-admin" + }, { + path: "/groups/:groupId", + component: _1fc6ae3a, + name: "groups-groupId" + }, { + path: "/templates/:templateId", + component: _49feb748, + name: "templates-templateId" + }, { + path: "/users/:userId", + component: _a9417eb0, + name: "users-userId" + }, { + path: "/groups/:groupId/new-template", + component: _7e447ef4, + name: "groups-groupId-new-template" + }, { + path: "/groups/:groupId/new-user", + component: _bd8dad52, + name: "groups-groupId-new-user" + }, { + path: "/account/:email?/password/:token?", + component: _23d664c4, + name: "account-email-password-token" + }, { + path: "/", + component: _ed8719c8, + name: "index" + }], + + fallback: false +} + +export function createRouter () { + return new Router(routerOptions) +} diff --git a/packages/ui/.nuxt/router.scrollBehavior.js b/packages/ui/.nuxt/router.scrollBehavior.js new file mode 100644 index 00000000..f7327889 --- /dev/null +++ b/packages/ui/.nuxt/router.scrollBehavior.js @@ -0,0 +1,74 @@ +import { getMatchedComponents } from './utils' + +if (process.client) { + if ('scrollRestoration' in window.history) { + window.history.scrollRestoration = 'manual' + + // reset scrollRestoration to auto when leaving page, allowing page reload + // and back-navigation from other pages to use the browser to restore the + // scrolling position. + window.addEventListener('beforeunload', () => { + window.history.scrollRestoration = 'auto' + }) + + // Setting scrollRestoration to manual again when returning to this page. + window.addEventListener('load', () => { + window.history.scrollRestoration = 'manual' + }) + } +} + +export default function (to, from, savedPosition) { + // if the returned position is falsy or an empty object, + // will retain current scroll position. + let position = false + + // if no children detected and scrollToTop is not explicitly disabled + const Pages = getMatchedComponents(to) + if ( + Pages.length < 2 && + Pages.every(Page => Page.options.scrollToTop !== false) + ) { + // scroll to the top of the page + position = { x: 0, y: 0 } + } else if (Pages.some(Page => Page.options.scrollToTop)) { + // if one of the children has scrollToTop option set to true + position = { x: 0, y: 0 } + } + + // savedPosition is only available for popstate navigations (back button) + if (savedPosition) { + position = savedPosition + } + + const nuxt = window.$nuxt + + // triggerScroll is only fired when a new component is loaded + if (to.path === from.path && to.hash !== from.hash) { + nuxt.$nextTick(() => nuxt.$emit('triggerScroll')) + } + + return new Promise((resolve) => { + // wait for the out transition to complete (if necessary) + nuxt.$once('triggerScroll', () => { + // coords will be used if no selector is provided, + // or if the selector didn't match any element. + if (to.hash) { + let hash = to.hash + // CSS.escape() is not supported with IE and Edge. + if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') { + hash = '#' + window.CSS.escape(hash.substr(1)) + } + try { + if (document.querySelector(hash)) { + // scroll to anchor by returning the selector + position = { selector: hash } + } + } catch (e) { + console.warn('Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).') + } + } + resolve(position) + }) + }) +} diff --git a/packages/ui/.nuxt/server.js b/packages/ui/.nuxt/server.js new file mode 100644 index 00000000..6c58d5cd --- /dev/null +++ b/packages/ui/.nuxt/server.js @@ -0,0 +1,277 @@ +import { stringify } from 'querystring' +import Vue from 'vue' +import fetch from 'node-fetch' +import middleware from './middleware.js' +import { + applyAsyncData, + middlewareSeries, + sanitizeComponent, + getMatchedComponents, + promisify +} from './utils.js' +import { createApp, NuxtError } from './index.js' +import NuxtLink from './components/nuxt-link.server.js' // should be included after ./index.js + +// Component: +Vue.component(NuxtLink.name, NuxtLink) +Vue.component('NLink', NuxtLink) + +if (!global.fetch) { global.fetch = fetch } + +const noopApp = () => new Vue({ render: h => h('div') }) + +function urlJoin () { + return Array.prototype.slice.call(arguments).join('/').replace(/\/+/g, '/') +} + +const createNext = ssrContext => (opts) => { + ssrContext.redirected = opts + // If nuxt generate + if (!ssrContext.res) { + ssrContext.nuxt.serverRendered = false + return + } + opts.query = stringify(opts.query) + opts.path = opts.path + (opts.query ? '?' + opts.query : '') + const routerBase = '/' + if (!opts.path.startsWith('http') && (routerBase !== '/' && !opts.path.startsWith(routerBase))) { + opts.path = urlJoin(routerBase, opts.path) + } + // Avoid loop redirect + if (opts.path === ssrContext.url) { + ssrContext.redirected = false + return + } + ssrContext.res.writeHead(opts.status, { + Location: opts.path + }) + ssrContext.res.end() +} + +// This exported function will be called by `bundleRenderer`. +// This is where we perform data-prefetching to determine the +// state of our application before actually rendering it. +// Since data fetching is async, this function is expected to +// return a Promise that resolves to the app instance. +export default async (ssrContext) => { + // Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect + ssrContext.redirected = false + ssrContext.next = createNext(ssrContext) + // Used for beforeNuxtRender({ Components, nuxtState }) + ssrContext.beforeRenderFns = [] + // Nuxt object (window{{globals.context}}, defaults to window.__NUXT__) + ssrContext.nuxt = { layout: 'default', data: [], error: null, state: null, serverRendered: true } + // Create the app definition and the instance (created for each request) + const { app, router, store } = await createApp(ssrContext) + const _app = new Vue(app) + + // Add meta infos (used in renderer.js) + ssrContext.meta = _app.$meta() + + // Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext) + ssrContext.asyncData = {} + + const beforeRender = async () => { + // Call beforeNuxtRender() methods + await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, { Components, nuxtState: ssrContext.nuxt }))) + + ssrContext.rendered = () => { + // Add the state from the vuex store + ssrContext.nuxt.state = store.state + } + } + + const renderErrorPage = async () => { + // Load layout for error page + const layout = (NuxtError.options || NuxtError).layout + const errLayout = typeof layout === 'function' ? layout.call(NuxtError, app.context) : layout + ssrContext.nuxt.layout = errLayout || 'default' + await _app.loadLayout(errLayout) + _app.setLayout(errLayout) + + await beforeRender() + return _app + } + const render404Page = () => { + app.context.error({ statusCode: 404, path: ssrContext.url, message: 'This page could not be found' }) + return renderErrorPage() + } + + const s = Date.now() + + // Components are already resolved by setContext -> getRouteData (app/utils.js) + const Components = getMatchedComponents(router.match(ssrContext.url)) + + /* + ** Dispatch store nuxtServerInit + */ + if (store._actions && store._actions.nuxtServerInit) { + try { + await store.dispatch('nuxtServerInit', app.context) + } catch (err) { + console.debug('Error occurred when calling nuxtServerInit: ', err.message) + throw err + } + } + // ...If there is a redirect or an error, stop the process + if (ssrContext.redirected) { + return noopApp() + } + if (ssrContext.nuxt.error) { + return renderErrorPage() + } + + /* + ** Call global middleware (nuxt.config.js) + */ + let midd = ["authentication-check"] + midd = midd.map((name) => { + if (typeof name === 'function') { + return name + } + if (typeof middleware[name] !== 'function') { + app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name }) + } + return middleware[name] + }) + await middlewareSeries(midd, app.context) + // ...If there is a redirect or an error, stop the process + if (ssrContext.redirected) { + return noopApp() + } + if (ssrContext.nuxt.error) { + return renderErrorPage() + } + + /* + ** Set layout + */ + let layout = Components.length ? Components[0].options.layout : NuxtError.layout + if (typeof layout === 'function') { + layout = layout(app.context) + } + await _app.loadLayout(layout) + if (ssrContext.nuxt.error) { + return renderErrorPage() + } + layout = _app.setLayout(layout) + ssrContext.nuxt.layout = _app.layoutName + + /* + ** Call middleware (layout + pages) + */ + midd = [] + + layout = sanitizeComponent(layout) + if (layout.options.middleware) { + midd = midd.concat(layout.options.middleware) + } + + Components.forEach((Component) => { + if (Component.options.middleware) { + midd = midd.concat(Component.options.middleware) + } + }) + midd = midd.map((name) => { + if (typeof name === 'function') { + return name + } + if (typeof middleware[name] !== 'function') { + app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name }) + } + return middleware[name] + }) + await middlewareSeries(midd, app.context) + // ...If there is a redirect or an error, stop the process + if (ssrContext.redirected) { + return noopApp() + } + if (ssrContext.nuxt.error) { + return renderErrorPage() + } + + /* + ** Call .validate() + */ + let isValid = true + try { + for (const Component of Components) { + if (typeof Component.options.validate !== 'function') { + continue + } + + isValid = await Component.options.validate(app.context) + + if (!isValid) { + break + } + } + } catch (validationError) { + // ...If .validate() threw an error + app.context.error({ + statusCode: validationError.statusCode || '500', + message: validationError.message + }) + return renderErrorPage() + } + + // ...If .validate() returned false + if (!isValid) { + // Don't server-render the page in generate mode + if (ssrContext._generate) { + ssrContext.nuxt.serverRendered = false + } + // Render a 404 error page + return render404Page() + } + + // If no Components found, returns 404 + if (!Components.length) { + return render404Page() + } + + // Call asyncData & fetch hooks on components matched by the route. + const asyncDatas = await Promise.all(Components.map((Component) => { + const promises = [] + + // Call asyncData(context) + if (Component.options.asyncData && typeof Component.options.asyncData === 'function') { + const promise = promisify(Component.options.asyncData, app.context) + promise.then((asyncDataResult) => { + ssrContext.asyncData[Component.cid] = asyncDataResult + applyAsyncData(Component) + return asyncDataResult + }) + promises.push(promise) + } else { + promises.push(null) + } + + // Call fetch(context) + if (Component.options.fetch) { + promises.push(Component.options.fetch(app.context)) + } else { + promises.push(null) + } + + return Promise.all(promises) + })) + + if (process.env.DEBUG && asyncDatas.length) console.debug('Data fetching ' + ssrContext.url + ': ' + (Date.now() - s) + 'ms') + + // datas are the first row of each + ssrContext.nuxt.data = asyncDatas.map(r => r[0] || {}) + + // ...If there is a redirect or an error, stop the process + if (ssrContext.redirected) { + return noopApp() + } + if (ssrContext.nuxt.error) { + return renderErrorPage() + } + + // Call beforeNuxtRender methods & add store state + await beforeRender() + + return _app +} diff --git a/packages/ui/.nuxt/store.js b/packages/ui/.nuxt/store.js new file mode 100644 index 00000000..b65ac744 --- /dev/null +++ b/packages/ui/.nuxt/store.js @@ -0,0 +1,148 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +const VUEX_PROPERTIES = ['state', 'getters', 'actions', 'mutations'] + +let store = {}; + +(function updateModules () { + store = normalizeRoot(require('../store/index.js'), 'store/index.js') + + // If store is an exported method = classic mode (deprecated) + + if (typeof store === 'function') { + return console.warn('Classic mode for store/ is deprecated and will be removed in Nuxt 3.') + } + + // Enforce store modules + store.modules = store.modules || {} + + resolveStoreModules(require('../store/page.js'), 'page.js') + resolveStoreModules(require('../store/user.js'), 'user.js') + + // If the environment supports hot reloading... + + if (process.client && module.hot) { + // Whenever any Vuex module is updated... + module.hot.accept([ + '../store/index.js', + '../store/page.js', + '../store/user.js', + ], () => { + // Update `root.modules` with the latest definitions. + updateModules() + // Trigger a hot update in the store. + window.$nuxt.$store.hotUpdate(store) + }) + } +})() + +// createStore +export const createStore = store instanceof Function ? store : () => { + return new Vuex.Store(Object.assign({ + strict: (process.env.NODE_ENV !== 'production') + }, store)) +} + +function normalizeRoot (moduleData, filePath) { + moduleData = moduleData.default || moduleData + + if (moduleData.commit) { + throw new Error(`[nuxt] ${filePath} should export a method that returns a Vuex instance.`) + } + + if (typeof moduleData !== 'function') { + // Avoid TypeError: setting a property that has only a getter when overwriting top level keys + moduleData = Object.assign({}, moduleData) + } + return normalizeModule(moduleData, filePath) +} + +function normalizeModule (moduleData, filePath) { + if (moduleData.state && typeof moduleData.state !== 'function') { + console.warn(`'state' should be a method that returns an object in ${filePath}`) + + const state = Object.assign({}, moduleData.state) + // Avoid TypeError: setting a property that has only a getter when overwriting top level keys + moduleData = Object.assign({}, moduleData, { state: () => state }) + } + return moduleData +} + +function resolveStoreModules (moduleData, filename) { + moduleData = moduleData.default || moduleData + // Remove store src + extension (./foo/index.js -> foo/index) + const namespace = filename.replace(/\.(js|mjs)$/, '') + const namespaces = namespace.split('/') + let moduleName = namespaces[namespaces.length - 1] + const filePath = `store/${filename}` + + moduleData = moduleName === 'state' + ? normalizeState(moduleData, filePath) + : normalizeModule(moduleData, filePath) + + // If src is a known Vuex property + if (VUEX_PROPERTIES.includes(moduleName)) { + const property = moduleName + const storeModule = getStoreModule(store, namespaces, { isProperty: true }) + + // Replace state since it's a function + mergeProperty(storeModule, moduleData, property) + return + } + + // If file is foo/index.js, it should be saved as foo + const isIndexModule = (moduleName === 'index') + if (isIndexModule) { + namespaces.pop() + moduleName = namespaces[namespaces.length - 1] + } + + const storeModule = getStoreModule(store, namespaces) + + for (const property of VUEX_PROPERTIES) { + mergeProperty(storeModule, moduleData[property], property) + } + + if (moduleData.namespaced === false) { + delete storeModule.namespaced + } +} + +function normalizeState (moduleData, filePath) { + if (typeof moduleData !== 'function') { + console.warn(`${filePath} should export a method that returns an object`) + const state = Object.assign({}, moduleData) + return () => state + } + return normalizeModule(moduleData, filePath) +} + +function getStoreModule (storeModule, namespaces, { isProperty = false } = {}) { + // If ./mutations.js + if (!namespaces.length || (isProperty && namespaces.length === 1)) { + return storeModule + } + + const namespace = namespaces.shift() + + storeModule.modules[namespace] = storeModule.modules[namespace] || {} + storeModule.modules[namespace].namespaced = true + storeModule.modules[namespace].modules = storeModule.modules[namespace].modules || {} + + return getStoreModule(storeModule.modules[namespace], namespaces, { isProperty }) +} + +function mergeProperty (storeModule, moduleData, property) { + if (!moduleData) { + return + } + + if (property === 'state') { + storeModule.state = moduleData || storeModule.state + } else { + storeModule[property] = Object.assign({}, storeModule[property], moduleData) + } +} diff --git a/packages/ui/.nuxt/utils.js b/packages/ui/.nuxt/utils.js new file mode 100644 index 00000000..b0a6d241 --- /dev/null +++ b/packages/ui/.nuxt/utils.js @@ -0,0 +1,590 @@ +import Vue from 'vue' + +// window.{{globals.loadedCallback}} hook +// Useful for jsdom testing or plugins (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading) +if (process.client) { + window.onNuxtReadyCbs = [] + window.onNuxtReady = (cb) => { + window.onNuxtReadyCbs.push(cb) + } +} + +export function empty () {} + +export function globalHandleError (error) { + if (Vue.config.errorHandler) { + Vue.config.errorHandler(error) + } +} + +export function interopDefault (promise) { + return promise.then(m => m.default || m) +} + +export function applyAsyncData (Component, asyncData) { + if ( + // For SSR, we once all this function without second param to just apply asyncData + // Prevent doing this for each SSR request + !asyncData && Component.options.__hasNuxtData + ) { + return + } + + const ComponentData = Component.options._originDataFn || Component.options.data || function () { return {} } + Component.options._originDataFn = ComponentData + + Component.options.data = function () { + const data = ComponentData.call(this, this) + if (this.$ssrContext) { + asyncData = this.$ssrContext.asyncData[Component.cid] + } + return { ...data, ...asyncData } + } + + Component.options.__hasNuxtData = true + + if (Component._Ctor && Component._Ctor.options) { + Component._Ctor.options.data = Component.options.data + } +} + +export function sanitizeComponent (Component) { + // If Component already sanitized + if (Component.options && Component._Ctor === Component) { + return Component + } + if (!Component.options) { + Component = Vue.extend(Component) // fix issue #6 + Component._Ctor = Component + } else { + Component._Ctor = Component + Component.extendOptions = Component.options + } + // For debugging purpose + if (!Component.options.name && Component.options.__file) { + Component.options.name = Component.options.__file + } + return Component +} + +export function getMatchedComponents (route, matches = false, prop = 'components') { + return Array.prototype.concat.apply([], route.matched.map((m, index) => { + return Object.keys(m[prop]).map((key) => { + matches && matches.push(index) + return m[prop][key] + }) + })) +} + +export function getMatchedComponentsInstances (route, matches = false) { + return getMatchedComponents(route, matches, 'instances') +} + +export function flatMapComponents (route, fn) { + return Array.prototype.concat.apply([], route.matched.map((m, index) => { + return Object.keys(m.components).reduce((promises, key) => { + if (m.components[key]) { + promises.push(fn(m.components[key], m.instances[key], m, key, index)) + } else { + delete m.components[key] + } + return promises + }, []) + })) +} + +export function resolveRouteComponents (route, fn) { + return Promise.all( + flatMapComponents(route, async (Component, instance, match, key) => { + // If component is a function, resolve it + if (typeof Component === 'function' && !Component.options) { + Component = await Component() + } + match.components[key] = Component = sanitizeComponent(Component) + return typeof fn === 'function' ? fn(Component, instance, match, key) : Component + }) + ) +} + +export async function getRouteData (route) { + if (!route) { + return + } + // Make sure the components are resolved (code-splitting) + await resolveRouteComponents(route) + // Send back a copy of route with meta based on Component definition + return { + ...route, + meta: getMatchedComponents(route).map((Component, index) => { + return { ...Component.options.meta, ...(route.matched[index] || {}).meta } + }) + } +} + +export async function setContext (app, context) { + // If context not defined, create it + if (!app.context) { + app.context = { + isStatic: process.static, + isDev: true, + isHMR: false, + app, + store: app.store, + payload: context.payload, + error: context.error, + base: '/', + env: {"APP_VERSION":"0.17.4","ADMIN_USERNAME":"admin","API_PREFIX":"/api"} + } + // Only set once + if (context.req) { + app.context.req = context.req + } + if (context.res) { + app.context.res = context.res + } + if (context.ssrContext) { + app.context.ssrContext = context.ssrContext + } + app.context.redirect = (status, path, query) => { + if (!status) { + return + } + app.context._redirected = true + // if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' }) + let pathType = typeof path + if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) { + query = path || {} + path = status + pathType = typeof path + status = 302 + } + if (pathType === 'object') { + path = app.router.resolve(path).route.fullPath + } + // "/absolute/route", "./relative/route" or "../relative/route" + if (/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path)) { + app.context.next({ + path, + query, + status + }) + } else { + path = formatUrl(path, query) + if (process.server) { + app.context.next({ + path, + status + }) + } + if (process.client) { + // https://developer.mozilla.org/en-US/docs/Web/API/Location/replace + window.location.replace(path) + + // Throw a redirect error + throw new Error('ERR_REDIRECT') + } + } + } + if (process.server) { + app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn) + } + if (process.client) { + app.context.nuxtState = window.__NUXT__ + } + } + + // Dynamic keys + const [currentRouteData, fromRouteData] = await Promise.all([ + getRouteData(context.route), + getRouteData(context.from) + ]) + + if (context.route) { + app.context.route = currentRouteData + } + + if (context.from) { + app.context.from = fromRouteData + } + + app.context.next = context.next + app.context._redirected = false + app.context._errored = false + app.context.isHMR = Boolean(context.isHMR) + app.context.params = app.context.route.params || {} + app.context.query = app.context.route.query || {} +} + +export function middlewareSeries (promises, appContext) { + if (!promises.length || appContext._redirected || appContext._errored) { + return Promise.resolve() + } + return promisify(promises[0], appContext) + .then(() => { + return middlewareSeries(promises.slice(1), appContext) + }) +} + +export function promisify (fn, context) { + let promise + if (fn.length === 2) { + console.warn('Callback-based asyncData, fetch or middleware calls are deprecated. ' + + 'Please switch to promises or async/await syntax') + + // fn(context, callback) + promise = new Promise((resolve) => { + fn(context, function (err, data) { + if (err) { + context.error(err) + } + data = data || {} + resolve(data) + }) + }) + } else { + promise = fn(context) + } + + if (promise && promise instanceof Promise && typeof promise.then === 'function') { + return promise + } + return Promise.resolve(promise) +} + +// Imported from vue-router +export function getLocation (base, mode) { + let path = decodeURI(window.location.pathname) + if (mode === 'hash') { + return window.location.hash.replace(/^#\//, '') + } + if (base && path.indexOf(base) === 0) { + path = path.slice(base.length) + } + return (path || '/') + window.location.search + window.location.hash +} + +// Imported from path-to-regexp + +/** + * Compile a string to a template function for the path. + * + * @param {string} str + * @param {Object=} options + * @return {!function(Object=, Object=)} + */ +export function compile (str, options) { + return tokensToFunction(parse(str, options), options) +} + +export function getQueryDiff (toQuery, fromQuery) { + const diff = {} + const queries = { ...toQuery, ...fromQuery } + for (const k in queries) { + if (String(toQuery[k]) !== String(fromQuery[k])) { + diff[k] = true + } + } + return diff +} + +export function normalizeError (err) { + let message + if (!(err.message || typeof err === 'string')) { + try { + message = JSON.stringify(err, null, 2) + } catch (e) { + message = `[${err.constructor.name}]` + } + } else { + message = err.message || err + } + return { + ...err, + message, + statusCode: (err.statusCode || err.status || (err.response && err.response.status) || 500) + } +} + +/** + * The main path matching regexp utility. + * + * @type {RegExp} + */ +const PATH_REGEXP = new RegExp([ + // Match escaped characters that would otherwise appear in future matches. + // This allows the user to escape special characters that won't transform. + '(\\\\.)', + // Match Express-style parameters and un-named parameters with a prefix + // and optional suffixes. Matches appear as: + // + // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] + // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] + // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] + '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' +].join('|'), 'g') + +/** + * Parse a string for the raw tokens. + * + * @param {string} str + * @param {Object=} options + * @return {!Array} + */ +function parse (str, options) { + const tokens = [] + let key = 0 + let index = 0 + let path = '' + const defaultDelimiter = (options && options.delimiter) || '/' + let res + + while ((res = PATH_REGEXP.exec(str)) != null) { + const m = res[0] + const escaped = res[1] + const offset = res.index + path += str.slice(index, offset) + index = offset + m.length + + // Ignore already escaped sequences. + if (escaped) { + path += escaped[1] + continue + } + + const next = str[index] + const prefix = res[2] + const name = res[3] + const capture = res[4] + const group = res[5] + const modifier = res[6] + const asterisk = res[7] + + // Push the current path onto the tokens. + if (path) { + tokens.push(path) + path = '' + } + + const partial = prefix != null && next != null && next !== prefix + const repeat = modifier === '+' || modifier === '*' + const optional = modifier === '?' || modifier === '*' + const delimiter = res[2] || defaultDelimiter + const pattern = capture || group + + tokens.push({ + name: name || key++, + prefix: prefix || '', + delimiter, + optional, + repeat, + partial, + asterisk: Boolean(asterisk), + pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') + }) + } + + // Match any characters still remaining. + if (index < str.length) { + path += str.substr(index) + } + + // If the path exists, push it onto the end. + if (path) { + tokens.push(path) + } + + return tokens +} + +/** + * Prettier encoding of URI path segments. + * + * @param {string} + * @return {string} + */ +function encodeURIComponentPretty (str, slashAllowed) { + const re = slashAllowed ? /[?#]/g : /[/?#]/g + return encodeURI(str).replace(re, (c) => { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) +} + +/** + * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. + * + * @param {string} + * @return {string} + */ +function encodeAsterisk (str) { + return encodeURIComponentPretty(str, true) +} + +/** + * Escape a regular expression string. + * + * @param {string} str + * @return {string} + */ +function escapeString (str) { + return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1') +} + +/** + * Escape the capturing group by escaping special characters and meaning. + * + * @param {string} group + * @return {string} + */ +function escapeGroup (group) { + return group.replace(/([=!:$/()])/g, '\\$1') +} + +/** + * Expose a method for transforming tokens into the path function. + */ +function tokensToFunction (tokens, options) { + // Compile all the tokens into regexps. + const matches = new Array(tokens.length) + + // Compile all the patterns before compilation. + for (let i = 0; i < tokens.length; i++) { + if (typeof tokens[i] === 'object') { + matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options)) + } + } + + return function (obj, opts) { + let path = '' + const data = obj || {} + const options = opts || {} + const encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent + + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i] + + if (typeof token === 'string') { + path += token + + continue + } + + const value = data[token.name || 'pathMatch'] + let segment + + if (value == null) { + if (token.optional) { + // Prepend partial segment prefixes. + if (token.partial) { + path += token.prefix + } + + continue + } else { + throw new TypeError('Expected "' + token.name + '" to be defined') + } + } + + if (Array.isArray(value)) { + if (!token.repeat) { + throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') + } + + if (value.length === 0) { + if (token.optional) { + continue + } else { + throw new TypeError('Expected "' + token.name + '" to not be empty') + } + } + + for (let j = 0; j < value.length; j++) { + segment = encode(value[j]) + + if (!matches[i].test(segment)) { + throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') + } + + path += (j === 0 ? token.prefix : token.delimiter) + segment + } + + continue + } + + segment = token.asterisk ? encodeAsterisk(value) : encode(value) + + if (!matches[i].test(segment)) { + throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') + } + + path += token.prefix + segment + } + + return path + } +} + +/** + * Get the flags for a regexp from the options. + * + * @param {Object} options + * @return {string} + */ +function flags (options) { + return options && options.sensitive ? '' : 'i' +} + +/** + * Format given url, append query to url query string + * + * @param {string} url + * @param {string} query + * @return {string} + */ +function formatUrl (url, query) { + let protocol + const index = url.indexOf('://') + if (index !== -1) { + protocol = url.substring(0, index) + url = url.substring(index + 3) + } else if (url.startsWith('//')) { + url = url.substring(2) + } + + let parts = url.split('/') + let result = (protocol ? protocol + '://' : '//') + parts.shift() + + let path = parts.filter(Boolean).join('/') + let hash + parts = path.split('#') + if (parts.length === 2) { + [path, hash] = parts + } + + result += path ? '/' + path : '' + + if (query && JSON.stringify(query) !== '{}') { + result += (url.split('?').length === 2 ? '&' : '?') + formatQuery(query) + } + result += hash ? '#' + hash : '' + + return result +} + +/** + * Transform data object to query string + * + * @param {object} query + * @return {string} + */ +function formatQuery (query) { + return Object.keys(query).sort().map((key) => { + const val = query[key] + if (val == null) { + return '' + } + if (Array.isArray(val)) { + return val.slice().map(val2 => [key, '=', val2].join('')).join('&') + } + return key + '=' + val + }).filter(Boolean).join('&') +} diff --git a/packages/ui/.nuxt/views/app.template.html b/packages/ui/.nuxt/views/app.template.html new file mode 100644 index 00000000..3427d3ea --- /dev/null +++ b/packages/ui/.nuxt/views/app.template.html @@ -0,0 +1,9 @@ + + + + {{ HEAD }} + + + {{ APP }} + + diff --git a/packages/ui/.nuxt/views/error.html b/packages/ui/.nuxt/views/error.html new file mode 100644 index 00000000..c7354d55 --- /dev/null +++ b/packages/ui/.nuxt/views/error.html @@ -0,0 +1,23 @@ + + + +Server error + + + + + +
    +
    + +
    Server error
    +
    {{ message }}
    +
    + +
    + + diff --git a/packages/ui/.nuxt/vuetify/options.js b/packages/ui/.nuxt/vuetify/options.js new file mode 100644 index 00000000..fd5132a5 --- /dev/null +++ b/packages/ui/.nuxt/vuetify/options.js @@ -0,0 +1 @@ +export default {"icons":{"iconfont":"md"},"theme":{"options":{"customProperties":true},"themes":{"light":{"primary":"#62a7a5","secondary":"#18223e","accent":"#87cbc9","error":"#ff5252","info":"#2196f3","success":"#4caf50","warning":"#fb8c00"}}}} diff --git a/packages/ui/.nuxt/vuetify/plugin.js b/packages/ui/.nuxt/vuetify/plugin.js new file mode 100644 index 00000000..ee782a16 --- /dev/null +++ b/packages/ui/.nuxt/vuetify/plugin.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import Vuetify from 'vuetify' + +import options from './options' + +Vue.use(Vuetify, { +}) + +export default (ctx) => { + const vuetifyOptions = typeof options === 'function' ? options(ctx) : options + + vuetifyOptions.icons = vuetifyOptions.icons || {} + vuetifyOptions.icons.iconfont = 'mdi' + + const vuetify = new Vuetify(vuetifyOptions) + + ctx.app.vuetify = vuetify + ctx.$vuetify = vuetify.framework +} diff --git a/packages/ui/assets/global-styles/index.scss b/packages/ui/assets/global-styles/index.scss new file mode 100644 index 00000000..c6dcd0cd --- /dev/null +++ b/packages/ui/assets/global-styles/index.scss @@ -0,0 +1,5 @@ +.table-column-action { + text-align: center; + width: 1%; + white-space: nowrap; +} diff --git a/packages/ui/components/group/form.vue b/packages/ui/components/group/form.vue new file mode 100644 index 00000000..649ca35a --- /dev/null +++ b/packages/ui/components/group/form.vue @@ -0,0 +1,297 @@ + + + + + diff --git a/packages/ui/components/group/mailings-tab.vue b/packages/ui/components/group/mailings-tab.vue new file mode 100644 index 00000000..e37f5f10 --- /dev/null +++ b/packages/ui/components/group/mailings-tab.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/ui/components/group/menu.vue b/packages/ui/components/group/menu.vue new file mode 100644 index 00000000..4aae8524 --- /dev/null +++ b/packages/ui/components/group/menu.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/ui/components/group/templates-tab.vue b/packages/ui/components/group/templates-tab.vue new file mode 100644 index 00000000..16825196 --- /dev/null +++ b/packages/ui/components/group/templates-tab.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/ui/components/group/users-tab.vue b/packages/ui/components/group/users-tab.vue new file mode 100644 index 00000000..df07799a --- /dev/null +++ b/packages/ui/components/group/users-tab.vue @@ -0,0 +1,47 @@ + + + diff --git a/packages/ui/components/layout-left-menu.vue b/packages/ui/components/layout-left-menu.vue new file mode 100644 index 00000000..9a1a230d --- /dev/null +++ b/packages/ui/components/layout-left-menu.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/ui/components/mailings/admin-table.vue b/packages/ui/components/mailings/admin-table.vue new file mode 100644 index 00000000..ca69d711 --- /dev/null +++ b/packages/ui/components/mailings/admin-table.vue @@ -0,0 +1,44 @@ + + + diff --git a/packages/ui/components/mailings/filters.vue b/packages/ui/components/mailings/filters.vue new file mode 100644 index 00000000..5432df1f --- /dev/null +++ b/packages/ui/components/mailings/filters.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/packages/ui/components/mailings/modal-duplicate.vue b/packages/ui/components/mailings/modal-duplicate.vue new file mode 100644 index 00000000..74300e40 --- /dev/null +++ b/packages/ui/components/mailings/modal-duplicate.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/packages/ui/components/mailings/modal-rename.vue b/packages/ui/components/mailings/modal-rename.vue new file mode 100644 index 00000000..83aa7d23 --- /dev/null +++ b/packages/ui/components/mailings/modal-rename.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/packages/ui/components/mailings/modal-transfer.vue b/packages/ui/components/mailings/modal-transfer.vue new file mode 100644 index 00000000..c7458100 --- /dev/null +++ b/packages/ui/components/mailings/modal-transfer.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/packages/ui/components/mailings/selection-actions.vue b/packages/ui/components/mailings/selection-actions.vue new file mode 100644 index 00000000..9bdb42ad --- /dev/null +++ b/packages/ui/components/mailings/selection-actions.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/packages/ui/components/mailings/table.vue b/packages/ui/components/mailings/table.vue new file mode 100644 index 00000000..1beaa2b1 --- /dev/null +++ b/packages/ui/components/mailings/table.vue @@ -0,0 +1,138 @@ + + + diff --git a/packages/ui/components/mailings/tags-menu.vue b/packages/ui/components/mailings/tags-menu.vue new file mode 100644 index 00000000..e49a9ad2 --- /dev/null +++ b/packages/ui/components/mailings/tags-menu.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/packages/ui/components/modal-confirm.vue b/packages/ui/components/modal-confirm.vue new file mode 100644 index 00000000..521c40dc --- /dev/null +++ b/packages/ui/components/modal-confirm.vue @@ -0,0 +1,48 @@ + + + + + +{ + "en": {}, + "fr": {} +} + diff --git a/packages/ui/components/snackbar.vue b/packages/ui/components/snackbar.vue new file mode 100644 index 00000000..31f4dcba --- /dev/null +++ b/packages/ui/components/snackbar.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/ui/components/template/card.vue b/packages/ui/components/template/card.vue new file mode 100644 index 00000000..930a7598 --- /dev/null +++ b/packages/ui/components/template/card.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/packages/ui/components/template/cover-image.vue b/packages/ui/components/template/cover-image.vue new file mode 100644 index 00000000..aff2eae7 --- /dev/null +++ b/packages/ui/components/template/cover-image.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/packages/ui/components/template/edit-form.vue b/packages/ui/components/template/edit-form.vue new file mode 100644 index 00000000..06b2a2a1 --- /dev/null +++ b/packages/ui/components/template/edit-form.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/packages/ui/components/template/html-preview.vue b/packages/ui/components/template/html-preview.vue new file mode 100644 index 00000000..bb33a72d --- /dev/null +++ b/packages/ui/components/template/html-preview.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/packages/ui/components/template/images-list.vue b/packages/ui/components/template/images-list.vue new file mode 100644 index 00000000..e271089e --- /dev/null +++ b/packages/ui/components/template/images-list.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/packages/ui/components/template/menu.vue b/packages/ui/components/template/menu.vue new file mode 100644 index 00000000..8f259e08 --- /dev/null +++ b/packages/ui/components/template/menu.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/packages/ui/components/templates/create-form.vue b/packages/ui/components/templates/create-form.vue new file mode 100644 index 00000000..5ba97812 --- /dev/null +++ b/packages/ui/components/templates/create-form.vue @@ -0,0 +1,75 @@ + + + diff --git a/packages/ui/components/templates/table.vue b/packages/ui/components/templates/table.vue new file mode 100644 index 00000000..2de0300b --- /dev/null +++ b/packages/ui/components/templates/table.vue @@ -0,0 +1,90 @@ + + + diff --git a/packages/ui/components/user/actions.vue b/packages/ui/components/user/actions.vue new file mode 100644 index 00000000..c0bbae6d --- /dev/null +++ b/packages/ui/components/user/actions.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/packages/ui/components/user/menu.vue b/packages/ui/components/user/menu.vue new file mode 100644 index 00000000..a15f99f4 --- /dev/null +++ b/packages/ui/components/user/menu.vue @@ -0,0 +1,116 @@ + + + diff --git a/packages/ui/components/users/form.vue b/packages/ui/components/users/form.vue new file mode 100644 index 00000000..ba51ffcb --- /dev/null +++ b/packages/ui/components/users/form.vue @@ -0,0 +1,105 @@ + + + diff --git a/packages/ui/components/users/table-actions-activation.vue b/packages/ui/components/users/table-actions-activation.vue new file mode 100644 index 00000000..999c9805 --- /dev/null +++ b/packages/ui/components/users/table-actions-activation.vue @@ -0,0 +1,43 @@ + + + + + + + +{ + "en": {}, + "fr": {} +} + diff --git a/packages/ui/components/users/table-actions-mail.vue b/packages/ui/components/users/table-actions-mail.vue new file mode 100644 index 00000000..f7873165 --- /dev/null +++ b/packages/ui/components/users/table-actions-mail.vue @@ -0,0 +1,60 @@ + + + + + + + +{ + "en": {}, + "fr": {} +} + diff --git a/packages/ui/components/users/table.vue b/packages/ui/components/users/table.vue new file mode 100644 index 00000000..2d40d002 --- /dev/null +++ b/packages/ui/components/users/table.vue @@ -0,0 +1,141 @@ + + + diff --git a/packages/ui/helpers/api-routes.js b/packages/ui/helpers/api-routes.js new file mode 100644 index 00000000..65ed3a1c --- /dev/null +++ b/packages/ui/helpers/api-routes.js @@ -0,0 +1,115 @@ +const API_PREFIX = process.env.API_PREFIX + +// a dictionary of API routes +// • prefix is configured by axios (/api) +// • it's just a way to centralize all our routes +// since we don't use a store for everything + +////// +// GROUPS +////// + +export function groups(routeParams = {}) { + return `/groups` +} +export function groupsItem(routeParams = {}) { + return `/groups/${routeParams.groupId}` +} +export function groupsItemUsers(routeParams = {}) { + return `/groups/${routeParams.groupId}/users` +} +export function groupsItemTemplates(routeParams = {}) { + return `/groups/${routeParams.groupId}/templates` +} +export function groupsItemMailings(routeParams = {}) { + return `/groups/${routeParams.groupId}/mailings` +} + +////// +// TEMPLATES +////// + +export function templates(routeParams = {}) { + return `/templates` +} +/** + * @param {Object} routeParams + * @param {string} routeParams.templateId + */ +export function templatesItem(routeParams = {}) { + return `/templates/${routeParams.templateId}` +} +export function templatesItemPreview(routeParams = {}) { + return `/templates/${routeParams.templateId}/preview` +} +export function templatesItemImages(routeParams = {}) { + return `/templates/${routeParams.templateId}/images` +} +// this is not used by axios (download/show) +export function templatesItemMarkup(routeParams = {}) { + return `${API_PREFIX}/templates/${routeParams.templateId}/markup` +} +// this is not used by axios (SSE with EventSource) +export function templatesItemEvents(routeParams = {}) { + return `${API_PREFIX}/templates/${routeParams.templateId}/events` +} + +////// +// ACCOUNT +////// + +export function accountResetPassword(routeParams = {}) { + return `/account/${routeParams.email}/password` +} +export function accountSetPassword(routeParams = {}) { + return `/account/${routeParams.email}/password/${routeParams.token}` +} + +////// +// USERS +////// + +export function users(routeParams = {}) { + return `/users` +} +export function usersItem(routeParams = {}) { + return `/users/${routeParams.userId}` +} +export function usersItemActivate(routeParams = {}) { + return `/users/${routeParams.userId}/activate` +} +export function usersItemPassword(routeParams = {}) { + return `/users/${routeParams.userId}/password` +} +export function usersItemMailings(routeParams = {}) { + return `/users/${routeParams.userId}/mailings` +} + +////// +// MAILINGS +////// + +export function mailings(routeParams = {}) { + return `/mailings` +} +export function mailingsItem(routeParams = {}) { + return `/mailings/${routeParams.mailingId}` +} +export function mailingsItemDuplicate(routeParams = {}) { + return `/mailings/${routeParams.mailingId}/duplicate` +} +export function mailingsItemTransferToUser(routeParams = {}) { + return `/mailings/${routeParams.mailingId}/transfer-to-user` +} + +////// +// IMAGES +////// + +// this is not used by axios (show an image…) +export function imagesItem(routeParams = {}) { + return `${API_PREFIX}/images/${routeParams.imageName}` +} +export function imagesPlaceholder(routeParams = {}) { + return `${API_PREFIX}/images/placeholder/${routeParams.width}x${routeParams.height}.png` +} diff --git a/packages/ui/helpers/locales/en.js b/packages/ui/helpers/locales/en.js new file mode 100644 index 00000000..7d82d830 --- /dev/null +++ b/packages/ui/helpers/locales/en.js @@ -0,0 +1,182 @@ +export default { + snackbars: { + updated: 'Updated', + created: 'Created', + deleted: 'Deleted', + usersFetchError: 'Unable to access users\' list', + emailSent: 'An email was sent' + + }, + global: { + errors: { + errorOccured: 'An error has occured', + required: 'This field is required', + userRequired: 'A user is required', + nameRequired: 'A name is required', + }, + newTemplate: 'Add a template', + template: 'Template | Templates', + mailing: 'Email | Emails', + newMailing: 'Add an email', + user: 'User | Users', + newUser: 'Add a user', + group: 'Group | Groups', + newGroup: 'Add a group', + image: 'Image | Images', + actions: 'Actions', + save: 'Save', + cancel: 'Cancel', + create: 'Create', + update: 'Update', + delete: 'Delete', + reset: 'Reset', + duplicate: 'Duplicate', + apply: 'Apply', + confirm: 'Confirm', + close: 'Close', + show: 'Show', + download: 'Download', + preview: 'Preview', + newPreview: 'Create a previeq', + name: 'Name', + description: 'Description', + author: 'Author', + tags: 'Tags', + password: 'Password', + email: 'Email', + enable: 'Enable', + disable: 'Disable', + enabled: 'Enabled', + disabled: 'Disabled', + status: 'Status', + createdAt: 'Created at', + updatedAt: 'Updated at', + }, + layout: { + logout: 'Logout' + }, + forms: { + group: { + downloadWithoutEnclosingFolder: { + label: 'Zip file format', + wrapped: 'Wrap in a parent folder', + unwrapped: 'Leave files in root folder' + }, + exportFtp: 'Export images on an FTP', + exportCdn: 'Export images on a CDN', + enable: 'Enable', + ftpProtocol: 'FTP protocol', + host: 'Host', + username: 'Username', + port: 'Port', + path: 'Folder\'s path', + ftpProtocol: 'HTTP protocol', + endpoint: 'Images root\'url', + editorLabel: 'Button label' + }, + template: { + meta: 'Meta', + files: 'Files', + markup: 'Markup', + }, + user: { + passwordConfirm: 'Password confirmation', + passwordReset: 'Password reset', + login: 'Login', + adminLogin: 'Admin Login', + sendLink: 'Send reset link', + forgottenPassword: 'Forgotten password ?', + validate: 'Validate', + errors: { + password: { + required: 'A password is required', + confirm: 'You need to confirm your password', + same: 'Your passwords should be identical', + }, + email: { + required: 'An email is required', + valid: 'A valid email is required' + }, + }, + } + }, + groups: { + tabs: { + informations: 'Informations', + }, + }, + mailings: { + transfer: { + label: 'Transfer email', + success: 'Email transfered' + }, + creationNotice: "Click on any of above templates to create email", + list: 'Emails list', + filters: { + createdBetween: 'Created between', + updatedBetween: 'Updated between', + and: 'And' + }, + duplicate: 'Duplcate email', + duplicateNotice: 'Are you sure to duplicate {name} ?', + rename: 'Rename email', + selectedCount: '{count} email selected | {count} emails selected', + deleteCount: 'Delete {count} email | Delete {count} emails', + deleteNotice: 'This will definitely remove:' + }, + template: { + noId: 'No ID', + noMarkup: 'No markup', + markup: 'Markup', + download: 'Download markup', + preview: 'Download template', + removeImages: 'Delete all images', + imagesRemoved: 'Images deleted', + deleteNotice: 'Deleting a template will also remove every mailings using this one' + }, + tags: { + list: 'Tags\' list', + new: 'New tags', + handle: 'Handle tags', + }, + users: { + actions: { + reset: 'Reset', + send: 'Send', + resend: 'Resend' + }, + passwordTooltip: { + reset: 'Reset password', + send: 'Send password\'s email', + resend: 'Resend password\'s email', + }, + enableNotice: 'are you sure you want to enable', + disableNotice: 'Are you sure you want to disable', + passwordNotice: { + reset: 'Are you sure you want to reset the password of', + send: 'Are you sure you want to send the password mail to', + resend: 'Are you sure you want to resend the password mail to', + }, + email: 'Email', + lang: 'Language', + details: 'Details' + }, + tableHeaders: { + groups: { + downloadWithoutEnclosingFolder: 'Download without parent folder', + cdnDownload: 'CDN download', + ftpDownload: 'FTP download', + }, + users: { + passwordMail: 'Password\' mail' + }, + templates: { + + markup: 'Markup?', + }, + mailings: { + rename: 'Rename', + transfer: 'Transfer' + } + } +} diff --git a/packages/ui/helpers/locales/fr.js b/packages/ui/helpers/locales/fr.js new file mode 100644 index 00000000..6f1142e5 --- /dev/null +++ b/packages/ui/helpers/locales/fr.js @@ -0,0 +1,182 @@ +export default { + snackbars: { + updated: 'Mis à jour', + created: 'Crée', + deleted: 'Supprimé', + usersFetchError: 'Impossible d\'accéder à la liste des utilisateur', + emailSent: 'Un email a été envoyé' + + }, + global: { + errors: { + errorOccured: 'Une erreur est survenue', + required: 'Ce champ est requis', + userRequired: 'Un utilisateur est requis', + nameRequired: 'Un nom est requis' + }, + newTemplate: 'Ajouter un template', + template: 'Template | Templates', + mailing: 'Email | Emails', + newMailing: 'Ajouter un email', + user: 'Utilisateur | Utilisateurs', + newUser: 'Ajouter un utilisateur', + group: 'Groupe | Groupes', + newGroup: 'Ajouter un groupe', + image: 'Image | Images', + actions: 'Actions', + save: 'Enregistrer', + cancel: 'Annuler', + create: 'Créer', + update: 'Mettre à jour', + delete: 'Supprimer', + reset: 'Réinitialiser', + duplicate: 'Dupliquer', + apply: 'Appliquer', + confirm: 'Confirmer', + close: 'Fermer', + show: 'Visualiser', + download: 'Télécharger', + preview: 'Prévisualiser', + newPreview: 'Créer une prévisulisation', + name: 'Nom', + description: 'Description', + author: 'Auteur', + tags: 'Labels', + password: 'Mot de passe', + email: 'Email', + enable: 'Activer', + disable: 'Désactiver', + enabled: 'Activé', + disabled: 'Désactivé', + status: 'Statut', + createdAt: 'Crée le', + updatedAt: 'Mis à jour le', + }, + layout: { + logout: 'Déconnexion' + }, + forms: { + group: { + downloadWithoutEnclosingFolder: { + label: 'Format du fichier zip', + wrapped: 'Englober dans un dossier parent', + unwrapped: 'Laisser les fichiers à la racine' + }, + exportFtp: 'Exporter les images sur un FTP', + exportCdn: 'Exporter les images sur un CDN', + enable: 'Activer', + ftpProtocol: 'Protocole FTP', + host: 'Hôte', + username: 'Identifiant', + port: 'Port', + path: 'Chemin du dossier', + httpProtocol: 'Protocole HTTP', + endpoint: 'Url racine des images', + editorLabel: 'Libellé du bouton' + }, + template: { + meta: 'Meta', + files: 'Fichiers', + markup: 'Markup', + }, + user: { + passwordConfirm: 'Confirmation du mot de passe', + passwordReset: 'Réinitialisation du mot de passe', + login: 'Connexion', + adminLogin: 'Connexion Admin', + sendLink: 'Envoyer le lien de réinitialisation', + forgottenPassword: 'Mot de passe oublié ?', + validate: 'Valider', + errors: { + password: { + required: 'Un mot de passe est requis', + confirm: 'Vous devez confirmer votre mot de passe', + same: 'Vos mots de passes sont différents', + }, + email: { + required: 'Un email est requis', + valid: 'Un email valide est requis' + }, + }, + } + }, + groups: { + tabs: { + informations: 'Informations', + }, + }, + mailings: { + transfer: { + label: 'Transférer l\'email', + success: 'Email transféré' + }, + creationNotice: "Cliquez sur l'un des templates ci-dessous pour créer un nouvel email", + list: 'Liste des emails', + filters: { + createdBetween: 'Crée entre le', + updatedBetween: 'Mis à jour entre le', + and: 'Et le' + }, + duplicate: 'Dupliquer l\'email', + duplicateNotice: 'Êtes-vous sûr de vouloir dupliquer {name} ?', + rename: 'Renommer l\'email', + selectedCount: '{count} email sélectionné | {count} emails sélectionnés', + deleteCount: 'Supprimer {count} email | Supprimer {count} emails', + deleteNotice: 'Cela supprimera définitivement:' + }, + template: { + noId: 'Aucun ID', + noMarkup: 'Aucun markup', + markup: 'Markup', + download: 'Télécharger le markup', + preview: 'Prévisualiser le template', + removeImages: 'Supprimer toute les images', + imagesRemoved: 'Images supprimées', + deleteNotice: 'Supprimer un template supprimera aussi tout les emails utilisant celui-ci' + }, + tags: { + list: 'Liste des labels', + new: 'Nouveau label', + handle: 'Gérer les labels', + }, + users: { + actions: { + reset: 'Réinitialiser', + send: 'Envoyer', + resend: 'Renvoyer' + }, + passwordTooltip: { + reset: 'Réinitialiser le mot de passe', + send: 'Envoyer l\'email de mot de passe', + resend: 'Renvoyer l\'email de mot de passe', + }, + enableNotice: 'Êtes-vous sûr de vouloir activer', + disableNotice: 'Êtes-vous sûr de vouloir désactiver', + passwordNotice: { + reset: 'Êtes-vous sûr de vouloir réinitialiser le mot de passe de', + send: 'Êtes-vous sûr de vouloir envoyer l\'email de mot de passe à', + resend: 'Êtes-vous sûr de vouloir renvoyer l\'email de mot de passe à', + }, + email: 'Email', + lang: 'Langue', + details: 'Informations' + }, + tableHeaders: { + groups: { + downloadWithoutEnclosingFolder: 'Télécharger sans dossier parent', + cdnDownload: 'Téléchargement CDN', + ftpDownload: 'Téléchargement FTP', + }, + users: { + passwordMail: 'Mail de mot de passe' + }, + templates: { + + markup: 'Markup?', + }, + mailings: { + rename: 'Renommer', + transfer: 'Transférer' + } + } +} diff --git a/packages/ui/helpers/locales/index.js b/packages/ui/helpers/locales/index.js new file mode 100644 index 00000000..d1c0e9b2 --- /dev/null +++ b/packages/ui/helpers/locales/index.js @@ -0,0 +1,9 @@ +import { default as fr } from './fr' +import { default as en } from './en' + +export const SUPPORTED_LOCALES = [`en`, 'fr'] + +export const messages = { + fr, + en, +} diff --git a/packages/ui/helpers/mailings.js b/packages/ui/helpers/mailings.js new file mode 100644 index 00000000..03817130 --- /dev/null +++ b/packages/ui/helpers/mailings.js @@ -0,0 +1,58 @@ +const passThroughFilter = () => true + +// https://exploringjs.com/impatient-js/ch_sets.html#intersection-a-b +function arrayIntersection(first, second) { + const a = new Set(first) + const b = new Set(second) + const intersection = new Set([...a].filter(x => b.has(x))) + return [...intersection] +} + +function haveSameTags(first, second) { + return arrayIntersection(first, second).length === first.length +} + +export function createFilters(filters) { + const nameRegexp = new RegExp(filters.name, `gi`) + const nameTest = !filters.name + ? passThroughFilter + : mailing => nameRegexp.test(mailing.name) + const templateTest = + filters.templates.length === 0 + ? passThroughFilter + : mailing => filters.templates.includes(mailing.templateId) + + const createdStartDate = new Date(filters.createdAtStart).valueOf() + const createdEndDate = new Date(filters.createdAtEnd).valueOf() + const updatedStartDate = new Date(filters.updatedAtStart).valueOf() + const updatedEndDate = new Date(filters.updatedAtEnd).valueOf() + + const createdAtStartTest = !filters.createdAtStart + ? passThroughFilter + : mailing => new Date(mailing.createdAt).valueOf() >= createdStartDate + const createdAtEndTest = !filters.createdAtEnd + ? passThroughFilter + : mailing => new Date(mailing.createdAt).valueOf() <= createdEndDate + const updatedAtStartTest = !filters.updatedAtStart + ? passThroughFilter + : mailing => new Date(mailing.updatedAt).valueOf() >= updatedStartDate + const updatedAtEndTest = !filters.updatedAtEnd + ? passThroughFilter + : mailing => new Date(mailing.updatedAt).valueOf() <= updatedEndDate + + const tagsFilter = + filters.tags.length === 0 + ? passThroughFilter + : mailing => haveSameTags(filters.tags, mailing.tags) + return mailing => { + return ( + nameTest(mailing) && + templateTest(mailing) && + tagsFilter(mailing) && + createdAtStartTest(mailing) && + createdAtEndTest(mailing) && + updatedAtStartTest(mailing) && + updatedAtEndTest(mailing) + ) + } +} diff --git a/packages/ui/helpers/mixin-create-mailing.js b/packages/ui/helpers/mixin-create-mailing.js new file mode 100644 index 00000000..712c5f15 --- /dev/null +++ b/packages/ui/helpers/mixin-create-mailing.js @@ -0,0 +1,33 @@ +import { mapMutations } from 'vuex' + +import { PAGE, SHOW_SNACKBAR } from '~/store/page.js' +import * as apiRoutes from '~/helpers/api-routes.js' + +export default { + methods: { + ...mapMutations(PAGE, { showSnackbar: SHOW_SNACKBAR }), + async mixinCreateMailing(template, loadingKey = `loading`) { + if (!template.hasMarkup) return + const { $axios } = this + this[loadingKey] = true + try { + const newMailing = await $axios.$post(apiRoutes.mailings(), { + templateId: template.id, + }) + // don't use Nuxt router + // • we are redirecting to the mosaico app + // OUTSIDE the Vue app + const { origin } = window.location + const redirectUrl = apiRoutes.mailingsItem({ + mailingId: newMailing.id, + }) + window.location.assign(`${origin}${redirectUrl}`) + } catch (error) { + this.showSnackbar({ text: `an error as occurred`, color: `error` }) + console.log(error) + } finally { + this[loadingKey] = false + } + }, + }, +} diff --git a/packages/ui/helpers/mixin-page-title.js b/packages/ui/helpers/mixin-page-title.js new file mode 100644 index 00000000..d64baa18 --- /dev/null +++ b/packages/ui/helpers/mixin-page-title.js @@ -0,0 +1,15 @@ +import { PAGE, SET_PAGE_TITLE } from '~/store/page.js' + +export default { + mounted() { + this.mixinPageTitleUpdateTitle(this.title) + }, + destroyed() { + this.mixinPageTitleUpdateTitle(``) + }, + methods: { + mixinPageTitleUpdateTitle(title) { + this.$store.commit(`${PAGE}/${SET_PAGE_TITLE}`, title) + }, + }, +} diff --git a/packages/ui/helpers/pages-acls.js b/packages/ui/helpers/pages-acls.js new file mode 100644 index 00000000..f43f6ef8 --- /dev/null +++ b/packages/ui/helpers/pages-acls.js @@ -0,0 +1,15 @@ +export const ACL_NOT_CONNECTED = `ACL_NOT_CONNECTED` +export const ACL_USER = `ACL_USER` +export const ACL_ADMIN = `ACL_ADMIN` + +export const isNoSessionPage = acl => acl === ACL_NOT_CONNECTED +export const isUserPage = acl => acl === ACL_USER || acl === ACL_ADMIN +export const isAdminPage = acl => acl === ACL_ADMIN + +export function getAuthorizations(acl) { + return { + notConnected: isNoSessionPage(acl), + user: isUserPage(acl), + admin: isAdminPage(acl), + } +} diff --git a/packages/ui/helpers/server-sent-events.js b/packages/ui/helpers/server-sent-events.js new file mode 100644 index 00000000..09820778 --- /dev/null +++ b/packages/ui/helpers/server-sent-events.js @@ -0,0 +1,14 @@ +export const EVENT_START = `START` +export const EVENT_UPDATE = `UPDATE` +export const EVENT_END = `END` +export const EVENT_ERROR = `ERROR` + +export function getEventStatus(sseResponse) { + const { type } = sseResponse + return { + isStart: type === EVENT_START, + isUpdate: type === EVENT_UPDATE, + isEnd: type === EVENT_END, + isError: type === EVENT_ERROR, + } +} diff --git a/packages/ui/helpers/user-status.js b/packages/ui/helpers/user-status.js new file mode 100644 index 00000000..2e9aaf4b --- /dev/null +++ b/packages/ui/helpers/user-status.js @@ -0,0 +1,22 @@ +const DEACTIVATED = `deactivated` +const CONFIRMED = `confirmed` +const PASSWORD_MAIL_SENT = `password-mail-sent` +const TO_BE_INITIALIZED = `to-be-initialized` + +const statusIcons = { + [DEACTIVATED]: `airline_seat_individual_suite`, + [CONFIRMED]: `check`, + [PASSWORD_MAIL_SENT]: `schedule`, + [TO_BE_INITIALIZED]: `report_problem`, +} + +export const getStatusIcon = statusName => statusIcons[statusName] + +export const getStatusActions = statusName => { + return { + activate: statusName === DEACTIVATED, + resetPassword: statusName === CONFIRMED, + sendPassword: statusName === TO_BE_INITIALIZED, + reSendPassword: statusName === PASSWORD_MAIL_SENT, + } +} diff --git a/packages/ui/layouts/centered.vue b/packages/ui/layouts/centered.vue new file mode 100644 index 00000000..e8304707 --- /dev/null +++ b/packages/ui/layouts/centered.vue @@ -0,0 +1,23 @@ + + + diff --git a/packages/ui/layouts/default.vue b/packages/ui/layouts/default.vue new file mode 100644 index 00000000..439fd58a --- /dev/null +++ b/packages/ui/layouts/default.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/packages/ui/layouts/error.vue b/packages/ui/layouts/error.vue new file mode 100644 index 00000000..538bbd11 --- /dev/null +++ b/packages/ui/layouts/error.vue @@ -0,0 +1,50 @@ + + + + + + diff --git a/packages/ui/middleware/authentication-check.js b/packages/ui/middleware/authentication-check.js new file mode 100644 index 00000000..31bb8e6b --- /dev/null +++ b/packages/ui/middleware/authentication-check.js @@ -0,0 +1,24 @@ +import * as pageAcl from '~/helpers/pages-acls.js' +import { USER, SESSION_ACL } from '~/store/user' + +function flattenMeta(acc, meta) { + return { ...acc, ...meta } +} + +export default async function authMiddleware(nuxtContext) { + const { store, redirect, route } = nuxtContext + const userSessionInfo = store.getters[`${USER}/${SESSION_ACL}`] + const meta = route.meta.reduce(flattenMeta, {}) + const authorizations = pageAcl.getAuthorizations(meta.acl) + + if (authorizations.notConnected && userSessionInfo.isConnected) { + if (userSessionInfo.isUser) return redirect(`/`) + if (userSessionInfo.isAdmin) return redirect(`/groups`) + } + if (authorizations.user && !userSessionInfo.isConnected) { + return redirect(`/account/login`) + } + if (authorizations.admin && !userSessionInfo.isAdmin) { + return redirect(`/account/admin`) + } +} diff --git a/packages/ui/plugins/badsender-global-components.js b/packages/ui/plugins/badsender-global-components.js new file mode 100644 index 00000000..d05c4b35 --- /dev/null +++ b/packages/ui/plugins/badsender-global-components.js @@ -0,0 +1,5 @@ +import Vue from 'vue' + +import BsLayoutLeftMenu from '~/components/layout-left-menu.vue' + +Vue.component(`bs-layout-left-menu`, BsLayoutLeftMenu) diff --git a/packages/ui/plugins/detect-browser-locale.js b/packages/ui/plugins/detect-browser-locale.js new file mode 100644 index 00000000..48627c1b --- /dev/null +++ b/packages/ui/plugins/detect-browser-locale.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import _ from 'lodash' +import { SUPPORTED_LOCALES } from '~/helpers/locales/index.js' +import { PAGE, SET_PAGE_LANG } from '~/store/page' + +export default ({ app, store }) => { + const browserLocal = getBrowserLocal() || SUPPORTED_LOCALES[0] + store.commit(`${PAGE}/${SET_PAGE_LANG}`, browserLocal) +} + +const getBrowserLocal = () => { + const browserLocal = (navigator.languages !== undefined + ? navigator.languages[0] + : navigator.language).split('-')[0] + + return _.indexOf(SUPPORTED_LOCALES, browserLocal) !== -1 && browserLocal +} diff --git a/packages/ui/plugins/vue-filters.js b/packages/ui/plugins/vue-filters.js new file mode 100644 index 00000000..ae6a953c --- /dev/null +++ b/packages/ui/plugins/vue-filters.js @@ -0,0 +1,52 @@ +import Vue from 'vue' + +const dateOptions = { + year: `numeric`, + month: `2-digit`, + day: `2-digit`, + hour12: false, + timeZone: `Europe/Paris`, +} + +Vue.filter(`userStatus`, (value, locale = `fr`) => { + if (typeof value.status !== `string`) return `–` + return value.status.replace(/-/g, ` `) +}) + +Vue.filter(`dateTime`, (value, locale = `fr`) => { + if (typeof value !== `string`) return `–` + const date = new Date(value) + const dateFormatter = new Intl.DateTimeFormat(locale, dateOptions).format + return dateFormatter(date) +}) + +const preciseDateOptions = { + year: `numeric`, + month: `2-digit`, + day: `2-digit`, + hour: `2-digit`, + minute: `2-digit`, + hour12: false, + timeZone: `Europe/Paris`, +} + +Vue.filter(`preciseDateTime`, (value, locale = `fr`) => { + if (typeof value !== `string`) return `–` + const date = new Date(value) + const dateFormatter = new Intl.DateTimeFormat(locale, preciseDateOptions) + .format + return dateFormatter(date) +}) + +Vue.filter(`capitalize`, value => { + if (!value) return `` + value = String(value) + return value.charAt(0).toUpperCase() + value.slice(1) +}) + +Vue.filter(`capitalizeEach`, value => { + if (!value) return `` + value = String(value) + return value.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ') + // return value.charAt(0).toUpperCase() + value.slice(1) +}) diff --git a/packages/ui/plugins/vue-i18n.js b/packages/ui/plugins/vue-i18n.js new file mode 100644 index 00000000..e5199f8f --- /dev/null +++ b/packages/ui/plugins/vue-i18n.js @@ -0,0 +1,39 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' + +import { SUPPORTED_LOCALES, messages } from '~/helpers/locales/index.js' +// import numberFormats from '~/locales/number-formats' +// import dateTimeFormats from '~/locales/date-time-formats' +import { USER, LOCALE } from '~/store/user' +import { PAGE, DEFAULT_LOCALE } from '~/store/page' + +Vue.use(VueI18n) + +export default ({ app, store }) => { + // Set i18n instance on app + // This way we can use it in middleware and pages asyncData/fetch + app.i18n = new VueI18n({ + locale: store.getters[`${USER}/${LOCALE}`] || store.getters[`${PAGE}/${DEFAULT_LOCALE}`], + fallbackLocale: SUPPORTED_LOCALES[0], + fallbackRoot: true, + silentTranslationWarn: true, + messages, + // numberFormats, + // dateTimeFormats, + }) + + // https://vuex.vuejs.org/api/#watch + store.watch( + state => store.getters[`${USER}/${LOCALE}`], + userLocale => { + app.i18n.locale = userLocale + }, + ) + + store.watch( + state => store.getters[`${PAGE}/${DEFAULT_LOCALE}`], + appLocale => { + app.i18n.locale = store.getters[`${USER}/${LOCALE}`] || appLocale + }, + ) +} diff --git a/packages/ui/routes/404.vue b/packages/ui/routes/404.vue new file mode 100644 index 00000000..fc12a663 --- /dev/null +++ b/packages/ui/routes/404.vue @@ -0,0 +1,8 @@ + diff --git a/packages/ui/routes/account/_email/password/_token.vue b/packages/ui/routes/account/_email/password/_token.vue new file mode 100644 index 00000000..d44b1efd --- /dev/null +++ b/packages/ui/routes/account/_email/password/_token.vue @@ -0,0 +1,115 @@ + + + diff --git a/packages/ui/routes/account/admin.vue b/packages/ui/routes/account/admin.vue new file mode 100644 index 00000000..2bba1804 --- /dev/null +++ b/packages/ui/routes/account/admin.vue @@ -0,0 +1,5 @@ + diff --git a/packages/ui/routes/account/login/admin.vue b/packages/ui/routes/account/login/admin.vue new file mode 100644 index 00000000..ce01044a --- /dev/null +++ b/packages/ui/routes/account/login/admin.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/ui/routes/account/login/index.vue b/packages/ui/routes/account/login/index.vue new file mode 100644 index 00000000..ab4316fc --- /dev/null +++ b/packages/ui/routes/account/login/index.vue @@ -0,0 +1,47 @@ + + + diff --git a/packages/ui/routes/account/reset-password.vue b/packages/ui/routes/account/reset-password.vue new file mode 100644 index 00000000..4eca0640 --- /dev/null +++ b/packages/ui/routes/account/reset-password.vue @@ -0,0 +1,101 @@ + + + diff --git a/packages/ui/routes/groups/_groupId/index.vue b/packages/ui/routes/groups/_groupId/index.vue new file mode 100644 index 00000000..4bde3a68 --- /dev/null +++ b/packages/ui/routes/groups/_groupId/index.vue @@ -0,0 +1,102 @@ + + + diff --git a/packages/ui/routes/groups/_groupId/new-template.vue b/packages/ui/routes/groups/_groupId/new-template.vue new file mode 100644 index 00000000..daa68d9b --- /dev/null +++ b/packages/ui/routes/groups/_groupId/new-template.vue @@ -0,0 +1,72 @@ + + + diff --git a/packages/ui/routes/groups/_groupId/new-user.vue b/packages/ui/routes/groups/_groupId/new-user.vue new file mode 100644 index 00000000..d0571d59 --- /dev/null +++ b/packages/ui/routes/groups/_groupId/new-user.vue @@ -0,0 +1,79 @@ + + + diff --git a/packages/ui/routes/groups/index.vue b/packages/ui/routes/groups/index.vue new file mode 100644 index 00000000..efa75f34 --- /dev/null +++ b/packages/ui/routes/groups/index.vue @@ -0,0 +1,83 @@ + + + diff --git a/packages/ui/routes/groups/new.vue b/packages/ui/routes/groups/new.vue new file mode 100644 index 00000000..5035101c --- /dev/null +++ b/packages/ui/routes/groups/new.vue @@ -0,0 +1,70 @@ + + + diff --git a/packages/ui/routes/index.vue b/packages/ui/routes/index.vue new file mode 100644 index 00000000..b9796ed8 --- /dev/null +++ b/packages/ui/routes/index.vue @@ -0,0 +1,5 @@ + diff --git a/packages/ui/routes/mailings/index.vue b/packages/ui/routes/mailings/index.vue new file mode 100644 index 00000000..ac0975fc --- /dev/null +++ b/packages/ui/routes/mailings/index.vue @@ -0,0 +1,302 @@ + + + diff --git a/packages/ui/routes/mailings/new.vue b/packages/ui/routes/mailings/new.vue new file mode 100644 index 00000000..f23df3fd --- /dev/null +++ b/packages/ui/routes/mailings/new.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/packages/ui/routes/templates/_templateId.vue b/packages/ui/routes/templates/_templateId.vue new file mode 100644 index 00000000..347d72ee --- /dev/null +++ b/packages/ui/routes/templates/_templateId.vue @@ -0,0 +1,205 @@ + + + diff --git a/packages/ui/routes/templates/index.vue b/packages/ui/routes/templates/index.vue new file mode 100644 index 00000000..f1c1a3c8 --- /dev/null +++ b/packages/ui/routes/templates/index.vue @@ -0,0 +1,50 @@ + + + diff --git a/packages/ui/routes/users/_userId.vue b/packages/ui/routes/users/_userId.vue new file mode 100644 index 00000000..6c7fe6b4 --- /dev/null +++ b/packages/ui/routes/users/_userId.vue @@ -0,0 +1,114 @@ + + + diff --git a/packages/ui/routes/users/index.vue b/packages/ui/routes/users/index.vue new file mode 100644 index 00000000..917e5be2 --- /dev/null +++ b/packages/ui/routes/users/index.vue @@ -0,0 +1,55 @@ + + + diff --git a/packages/ui/static/favicon.png b/packages/ui/static/favicon.png new file mode 100644 index 00000000..9a9b4061 Binary files /dev/null and b/packages/ui/static/favicon.png differ diff --git a/packages/ui/store/index.js b/packages/ui/store/index.js new file mode 100644 index 00000000..132f4e2b --- /dev/null +++ b/packages/ui/store/index.js @@ -0,0 +1,10 @@ +import { USER, USER_SET } from '~/store/user' + +export const actions = { + async nuxtServerInit(store, nuxtContext) { + const { dispatch } = store + const { req } = nuxtContext + if (req.user == null) return + await Promise.all([dispatch(`${USER}/${USER_SET}`, req.user)]) + }, +} diff --git a/packages/ui/store/page.js b/packages/ui/store/page.js new file mode 100644 index 00000000..5a883bed --- /dev/null +++ b/packages/ui/store/page.js @@ -0,0 +1,50 @@ +export const PAGE = `page` + +export const SET_PAGE_TITLE = `SET_PAGE_TITLE` +export const SET_PAGE_LANG = `SET_PAGE_LANG` +export const SHOW_SNACKBAR = `SHOW_SNACKBAR` +export const CLOSE_SNACKBAR = `CLOSE_SNACKBAR` +export const DEFAULT_LOCALE = `DEFAULT_LOCALE` + +export const state = () => ({ + pageTitle: `Default Title`, + lang: null, + snackbar: { + color: `info`, + visible: false, + text: ``, + timeout: 6000, + multiline: false, + }, +}) + +export const getters = { + [DEFAULT_LOCALE](state) { + return state.lang + }, +} + +// https://medium.com/vuetify/creating-reusable-snackbars-with-vuetify-and-vuex-a8c3fef7b206 +export const mutations = { + [SET_PAGE_TITLE](state, title) { + state.pageTitle = title + }, + [SET_PAGE_LANG](state, lang) { + state.lang = lang + }, + [SHOW_SNACKBAR](state, payload) { + if (payload.text == null) return + state.snackbar.text = payload.text + state.snackbar.multiline = payload.text.length > 50 ? true : false + if (payload.multiline) state.snackbar.multiline = payload.multiline + if (payload.timeout) state.snackbar.timeout = payload.timeout + state.snackbar.color = payload.color + state.snackbar.visible = true + }, + [CLOSE_SNACKBAR](state) { + state.snackbar.visible = false + state.snackbar.multiline = false + state.snackbar.timeout = 6000 + state.snackbar.text = `` + }, +} diff --git a/packages/ui/store/user.js b/packages/ui/store/user.js new file mode 100644 index 00000000..66940f59 --- /dev/null +++ b/packages/ui/store/user.js @@ -0,0 +1,58 @@ +export const USER = `user` + +export const state = () => ({ + info: null, +}) + +export const LOCALE = `LOCALE` +export const IS_CONNECTED = `IS_CONNECTED` +export const IS_ADMIN = `IS_ADMIN` +export const SESSION_ACL = `SESSION_ACL` + +export const getters = { + [IS_CONNECTED](state) { + return state.info != null + }, + [IS_ADMIN](state) { + return state.info != null && state.info.isAdmin === true + }, + [LOCALE](state) { + return (state.info != null && state.info.lang) + }, + [SESSION_ACL](state) { + const hasSession = state.info != null + return { + isConnected: hasSession, + isUser: hasSession && state.info.isAdmin !== true, + isAdmin: hasSession && state.info.isAdmin === true, + } + }, +} + +const M_USER_SET = `M_USER_SET` + +export const mutations = { + [M_USER_SET](state, user) { + state.info = { + ...state.info, + ...user + } + }, +} + +export const USER_SET = `USER_SET` + +export const actions = { + async [USER_SET](vuexCtx, user) { + const { commit } = vuexCtx + commit(M_USER_SET, user) + }, + // async [SET_LANG](vuexCtx, lang) { + // if (!SUPPORTED_LOCALES.includes(lang)) return + // const { commit } = vuexCtx; + // const { $axios } = this; + // // /language/:language + // commit(M_USER_SET_LANG, lang); + // $axios.$put(`/language/${lang}`) + // }, +} diff --git a/public/fa/fonts/FontAwesome.otf b/public/fa/fonts/FontAwesome.otf new file mode 100644 index 00000000..401ec0f3 Binary files /dev/null and b/public/fa/fonts/FontAwesome.otf differ diff --git a/public/fa/fonts/fontawesome-webfont.eot b/public/fa/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/public/fa/fonts/fontawesome-webfont.eot differ diff --git a/public/fa/fonts/fontawesome-webfont.svg b/public/fa/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/public/fa/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fa/fonts/fontawesome-webfont.ttf b/public/fa/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/public/fa/fonts/fontawesome-webfont.ttf differ diff --git a/public/fa/fonts/fontawesome-webfont.woff b/public/fa/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/public/fa/fonts/fontawesome-webfont.woff differ diff --git a/public/fa/fonts/fontawesome-webfont.woff2 b/public/fa/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/public/fa/fonts/fontawesome-webfont.woff2 differ diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 00000000..d3b902c3 Binary files /dev/null and b/public/favicon.png differ diff --git a/public/lang/LICENSE b/public/lang/LICENSE new file mode 100644 index 00000000..82a691b9 --- /dev/null +++ b/public/lang/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the Licensor. The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/public/lang/README.md b/public/lang/README.md new file mode 100644 index 00000000..371218d8 --- /dev/null +++ b/public/lang/README.md @@ -0,0 +1,32 @@ +These files are not yet directly used by mosaico. + +You can use ```Mosaico.init({ strings: #thecontentofoneofthisfiles# })``` to initialize mosaico in a given language. + +You can provide new translations to our mosaico translations project on POEditor: https://poeditor.com/join/project/nsFNi6zyOm + +Please note that this just translate the main Mosaico UI: some parts of the UI are defined by the template and their "labels" cannot be translated by the library because each template defines its own labels/texts. So you may want to create your own "translated" templates by altering the "source" html for the template. + +You can even force mosaico to run the internal translation tool for the template labels by defining a [plugin](https://github.com/voidlabs/mosaico/wiki/Mosaico-Plugins): +```javascript + var plugin = function(vm) { + vm.ut = vm.tt; + }; +``` + +Please get in touch with us by sending an email to feedback at mosaico.io including your email and the language you'd like to contribute. + +Thanks to translators: + +- it (Italian): Mosaico Team +- de (German): Bernhard Weichel +- es (Spanish): Carlos Jacobs +- fr (French): Jonathan Loriaux +- nl (Dutch): Pieter Emeis +- sv (Swedish): P-H Westman +- sr_RS (Serbian): Đorđe Kolaković +- ru (Russian): Andrey ANM +- tr (Turkish): Andriya Uçar + +Sign-up to POEditor if you want to collaborate or suggest changes to the current languages, or provide PR for full new complete languages. + +Language files are contributed and redistributed under the CC-BY-4.0 (Creative Commons - Attribution) license. diff --git a/public/lang/badsender-en.js b/public/lang/badsender-en.js new file mode 100644 index 00000000..2414a20c --- /dev/null +++ b/public/lang/badsender-en.js @@ -0,0 +1,43 @@ +'use strict' + +module.exports = { + // edit title + 'edit-title-double-click': `Double click to edit`, + 'edit-title-cancel': `Cancel edition`, + 'edit-title-save': `Save the new name`, + 'edit-title-ajax-pending': `changing name…`, + 'edit-title-ajax-success': `Name changed`, + 'edit-title-ajax-fail': `Unable to save the new name`, + // empty title fallback + 'title-empty': `no name`, + // + 'save-message-success': `The mailing has been saved`, + 'save-message-error': `Error in saving`, + // + 'gallery-title': `Galleries:`, + 'gallery-mailing': `EMAIL ONLY`, + 'gallery-mailing-loading': `Loading email gallery…`, + 'gallery-mailing-empty': `The email gallery is empty`, + 'gallery-template': `TEMPLATE SHARED`, + 'gallery-template-loading': `Loading template gallery…`, + 'gallery-template-empty': `Email gallery is empty`, + 'gallery-remove-image-success': `This image has been removed from the gallery`, + 'gallery-remove-image-fail': `An error has occured while removing the image`, + // bgimage widget + 'widget-bgimage-button': `pick an image`, + 'widget-bgimage-reset': `reset image`, + // prevent i18n console.warn + 'Fake image editor': ``, + '

    Fake image editor

    ': ``, + // download button + 'dl-btn-regular': `Standard download`, + 'dl-btn-cdn': `zip with CDN`, + //Crop interface + 'rotate-left': 'Rotate left', + 'rotate-right': 'Rotate right', + 'vertical-mirror': 'Vertical mirror', + 'horizontal-mirror': 'Horizontal mirror', + 'cancel': 'CANCEL', + 'upload': 'UPLOAD' +} + diff --git a/public/lang/badsender-fr.js b/public/lang/badsender-fr.js new file mode 100644 index 00000000..4c25c7fd --- /dev/null +++ b/public/lang/badsender-fr.js @@ -0,0 +1,42 @@ +'use strict' + +module.exports = { + // edit title + 'edit-title-double-click': `Double-cliquer pour éditer`, + 'edit-title-cancel': `Annuler l'édition`, + 'edit-title-save': `Enregistrer le nouveau nom`, + 'edit-title-ajax-pending': `Changement du nom…`, + 'edit-title-ajax-success': `Mise à jour du nom effectuée`, + 'edit-title-ajax-fail': `Impossible d'enregistrer le nouveau nom`, + // empty title fallback + 'title-empty': `sans titre`, + // + 'save-message-success': `L'email a été sauvé`, + 'save-message-error': `Une erreur est survenue lors de l'enregistrement`, + // + 'gallery-title': `Galeries :`, + 'gallery-mailing': `SPÉCIFIQUE À L'EMAIL`, + 'gallery-mailing-loading': `Chargement de la galerie de l'email…`, + 'gallery-mailing-empty': `La galerie de l'email est vide`, + 'gallery-template': `COMMUN AU TEMPLATE`, + 'gallery-template-loading': `Chargement de la galerie du template…`, + 'gallery-template-empty': `La galerie du template est vide`, + 'gallery-remove-image-success': `L'image a bien été enlevée de la galerie`, + 'gallery-remove-image-fail': `Une erreur est survenue lors de la suppression de l'image`, + // bgimage widget + 'widget-bgimage-button': `choisissez une image`, + 'widget-bgimage-reset': `enlever l'image`, + // prevent i18n console.warn + 'Fake image editor': ``, + '

    Fake image editor

    ': ``, + // download button + 'dl-btn-regular': `Téléchargement régulier`, + 'dl-btn-cdn': `images ICOU`, + //Crop interface + 'rotate-left': 'Incliner à gauche', + 'rotate-right': 'Incliner à droite', + 'vertical-mirror': 'Miroir vertical', + 'horizontal-mirror': 'Miroir horizontal', + 'cancel': 'ANNULER', + 'upload': 'UPLOADER' +} diff --git a/public/lang/mosaico-de.json b/public/lang/mosaico-de.json new file mode 100644 index 00000000..77911b15 --- /dev/null +++ b/public/lang/mosaico-de.json @@ -0,0 +1,90 @@ +{ + "Download": "Herunterladen", + "Test": "Test senden", + "Save": "Speichern", + "Downloading...": "wird heruntergeladen ...", + "Invalid email address": "ungültige Email-Adresse", + "Test email sent...": "Email an die Tester wurde versendet.", + "Unexpected error talking to server: contact us!": "Unerwarteter Fehler in der Kommunikation mit dem Server. Bitte kontaktieren Sie uns!", + "Insert here the recipient email address": "Bitte fügen Sie die Email-Adresse des Empfängers ein", + "Test email address": "Email Adresse der Testperson", + "Block removed: use undo button to restore it...": "Block wurde entfernt. Verwenden Sie \"undo\" um ihn wieder herzustellen ...", + "New block added after the selected one (__pos__)": "Neuer Block hinzugefügt nach Block (__pos__) ", + "New block added at the model bottom (__pos__)": "Neuer Block am Ende hinzugefügt (__pos__) ", + "Undo (#COUNT#)": "Widerrufen (#COUNT#)", + "Redo": "Wiederholen", + "Selected element has no editable properties": "Das ausgewählte Element hat keine bearbeitbaren Eigenschaften.", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Dieser Stil ist spezifisch für diesen Block: Hier klicken um den spezifischen Stil zu löschen und auf den globalen Stil zurückzusetzen", + "Switch between global and block level styles editing": "Bearbeitung zwischen globalem und Block-spezifischem Stil umschalten", + "Undo last operation": "Letzten Schritt widerrufen", + "Redo last operation": "Letzten Schritt wiederholen", + "Show image gallery": "Bildergalerie anzeigen", + "Gallery": "Galerie", + "Preview": "Vorschau", + "Show live preview": "Vorschau anzeigen", + "Large screen": "Computer", + "Tablet": "Tablet", + "Smartphone": "Smartphone", + "Show preview and send test": "Vorschau anzeigen und Testmail versenden", + "Download template": "Email herunterladen", + "Save template": "Email speichern", + "Saved model is obsolete": "Die gepeicherte Email ist veraltet", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Die gespeicherte email wurde mit einer früheren, nicht vollständig kompatiblen version erstellt.

    Einige Inhalte oder Stile in der Email KÖNNTEN VERLORGEN GEHEN wenn sie speichern.

    Kontaktieren Sie uns für mehr Information!

    ", + "Blocks": "Blöcke", + "Blocks ready to be added to the template": "Blöcke zum Aufbau einer Email", + "Content": "Inhalt", + "Edit content options": "Optionen für Inhalt bearbeiten", + "Style": "Stil", + "Edit style options": "Optionen für Stil bearbeiten", + "Block __name__": "Block __name__", + "Click or drag to add this block to the template": "Klicken oder Ziehen um den Block zur Email hinzuzufügen", + "Add": "Hinzufügen", + "By clicking on message parts you will select a block and content options, if any, will show here": "Durch klicken auf Teile der Email wählen Sie einen Block aus. Optionen für Inhalt werden hier angezeigt - sofern vorhanden.", + "By clicking on message parts you will select a block and style options, if available, will show here": "Durch klicken auf Teile der Email wählen Sie einen Block aus. Optionen für Stil werden hier angezeigt - sofern vorhanden.", + "Click or drag files here": "Klcken oder Files hier hinziehen", + "No images uploaded, yet": "Noch keine Bilder hochgeladen", + "Show images from the gallery": "Bilder der Galerie anzeigen", + "Loading...": "Lade ...", + "Load gallery": "Galerie laden", + "Loading gallery...": "lade Galerie ...", + "The gallery is empty": "Die Galerie ist leer", + "Remove image": "Bild löschen", + "Open the image editing tool": "Bildbearbeitung aufrufen", + "Upload a new image": "Neues Bild hochladen", + "Drop an image here": "Bild hierherziehen", + "Drop an image here or click the upload button": "Bild ablegen oder Hochlade-Taste klicken", + "Drag this image and drop it on any template image placeholder": "Dieses Bild ziehen und auf Platzhalter ablegen", + "Gallery:": "Galerie:", + "Session images": "Bilder der laufende Sitzung", + "Recents": "Kürzlich", + "Remote gallery": "Alle Bilder auf dem Server", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Angepasster Block
    • In dieser Einstellung wirken geänderte Eigenschaften nur auf den aktuellen Block (nicht auf alle Blöcke im selben Abschnitt).
    • Ein Symbol \"kleiner Würfel\" neben der jeweiligen Eigenschaft markiert die spezifische Anpassung. Ein Klick auf dieses Symbol setzt den Wert auf die Vorbabe des Bereiches zurück.
    ", + "Drop here blocks from the \"Blocks\" tab": "Blöcke aus dem \"Blöcke\" - Tab hierherziehen", + "Drag this handle to move the block": "Diesen Griff ziehen um den Block zu verschieben", + "Move this block upside": "Block nach oben bewegen", + "Move this block downside": "Block nach unten bewegen", + "Delete block": "Block löschen", + "Duplicate block": "Block duplizieren", + "Switch block variant": "Block-Variante umschalten", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Thema-Farben,Standardfarben,Web-Farben,Thema-Farben,Zurück zur Palette,Verlauf,Kein Verlauf vorhanden", + "Drop here": "Hier ablegen", + "Unknown error": "Unbekannter Fehler", + "Uploaded bytes exceed file size": "Hochgeladene Datei ist zu groß", + "File type not allowed": "Dateityp ist nicht erlaubt", + "File is too large": "Datei ist zu groß", + "The uploaded file exceeds the post_max_size directive in php.ini": "Die hochgeladene Datei ist größer als die Einstellung in php.ini (post_max_size)", + "File is too big": "Datei ist zu groß", + "File is too small": "Datei zu klein", + "Filetype not allowed": "Dateityp nicht erlaubt", + "Maximum number of files exceeded": "Maximale Anzahl von Dateien überschritten", + "Image exceeds maximum width": "Das Bild überschreitet die maximale Breite", + "Image requires a minimum width": "Bild benötigt eine minimale breite", + "Image exceeds maximum height": "Bild übersteigt die maximale Höhe", + "Image requires a minimum height": "Bild unterschreitet die minimale Höhe", + "File upload aborted": "Hochladen der Datei abgebrochen", + "Failed to resize image": "Fehler beim anpassen der Bildgröße", + "Unexpected upload error": "Unerwarteter Fehler beim Hochladen", + "Unexpected error listing files": "Unerwarteter Fehler beim auflisten der Dateien", + "__current__ of __total__": "__current__ von __total__", + "Select from gallery": "Wählen Sie aus der Galerie" +} \ No newline at end of file diff --git a/public/lang/mosaico-en.json b/public/lang/mosaico-en.json new file mode 100644 index 00000000..1a6d5ab0 --- /dev/null +++ b/public/lang/mosaico-en.json @@ -0,0 +1,92 @@ +{ + "Download": "DOWNLOAD", + "Test": "Test", + "Save": "SAVE", + "Downloading...": "Downloading...", + "Invalid email address": "Invalid email address", + "Test email sent...": "Test email sent...", + "Unexpected error talking to server: contact us!": "Unexpected error talking to server: contact us!", + "Insert here the recipient email address": "Insert here the recipient email address", + "Test email address": "Test email address", + "Block removed: use undo button to restore it...": "Block removed: use undo button to restore it...", + "New block added after the selected one (__pos__)": "New block added after the selected one (__pos__)", + "New block added at the model bottom (__pos__)": "New block added at the model bottom (__pos__)", + "Undo (#COUNT#)": "UNDO (#COUNT#)", + "Redo": "REDO", + "Selected element has no editable properties": "The selected element do not have any editable properties", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "This style is specific for this block: click here to remove the custom style and revert to the theme value", + "Switch between global and block level styles editing": "Switch between global and block level styles editing", + "Undo last operation": "Undo the last operation", + "Redo last operation": "Redo the last operation", + "Show image gallery": "Show the image gallery", + "Gallery": "Galleries", + "Preview": "Preview", + "Show live preview": "Show live preview", + "Desktop": "Desktop", + "Mobile and desktop": "Mobile and desktop", + "Large screen": "Large screen", + "Tablet": "Tablet", + "Smartphone": "Mobile", + "Show preview and send test": "Send a test", + "Download template": "Download template", + "Save template": "Save the email", + "Saved model is obsolete": "Saved model is obsolete", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ", + "Blocks": "Blocks", + "Blocks ready to be added to the template": "Blocs are ready to be added to the email", + "Content": "CONTENT", + "Edit content options": "Content options management", + "Style": "Style", + "Edit style options": "Style options management", + "Block __name__": "Block __name__", + "Click or drag to add this block to the template": "Click or drag to add this block to the template", + "Add": "Add", + "By clicking on message parts you will select a block and content options, if any, will show here": "By clicking on the different parts of the message, you will select the bloc content options (if any) and they will be displayed here", + "By clicking on message parts you will select a block and style options, if available, will show here": "By clicking on the different parts of the message, you will select the bloc style options (if any) and they will be displayed here", + "Click or drag files here": "Click or drag and drop files here", + "No images uploaded, yet": "No images uploaded, yet", + "Show images from the gallery": "Show images from the gallery", + "Loading...": "Loading...", + "Load gallery": "Load gallery", + "Loading gallery...": "Loading gallery...", + "The gallery is empty": "The gallery is empty", + "Remove image": "Remove image", + "Open the image editing tool": "Open the image editing tool", + "Upload a new image": "Upload a new image", + "Drop an image here": "Drop an image here", + "Drop an image here or click the upload button": "Drop an image here or click the upload button", + "Drag this image and drop it on any template image placeholder": "Drag this image and drop it in any image location", + "Gallery:": "Gallery:", + "Session images": "Session images", + "Recents": "Recents", + "Remote gallery": "Remote gallery", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ", + "Drop here blocks from the \"Blocks\" tab": "Drop here blocs coming from the \"Blocs\" tab", + "Drag this handle to move the block": "Drag this handle to move the block", + "Move this block upside": "Move this block upside", + "Move this block downside": "Move this block downside", + "Delete block": "Delete block", + "Duplicate block": "Duplicate block", + "Switch block variant": "Switch block variant", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.", + "Drop here": "Drop here", + "Unknown error": "Unknown error", + "Uploaded bytes exceed file size": "Uploaded bytes exceed file size", + "File type not allowed": "File type not allowed", + "File is too large": "File is too large", + "The uploaded file exceeds the post_max_size directive in php.ini": "The uploaded file exceeds the post_max_size directive in php.ini", + "File is too big": "File is too big", + "File is too small": "File is too small", + "Filetype not allowed": "Filetype not allowed", + "Maximum number of files exceeded": "Maximum number of files exceeded", + "Image exceeds maximum width": "Image exceeds maximum width", + "Image requires a minimum width": "Image requires a minimum width", + "Image exceeds maximum height": "Image exceeds maximum height", + "Image requires a minimum height": "Image requires a minimum height", + "File upload aborted": "File upload aborted", + "Failed to resize image": "Failed to resize image", + "Unexpected upload error": "Unexpected upload error", + "Unexpected error listing files": "Unexpected error listing files", + "__current__ of __total__": "__current__ of __total__", + "Select from gallery": "Select from gallery" +} \ No newline at end of file diff --git a/public/lang/mosaico-es.json b/public/lang/mosaico-es.json new file mode 100644 index 00000000..5f340736 --- /dev/null +++ b/public/lang/mosaico-es.json @@ -0,0 +1,90 @@ +{ + "Download": "Descargar", + "Test": "Prueba", + "Save": "Guardar", + "Downloading...": "Descargando ...", + "Invalid email address": "Dirección de correo electrónica inválida", + "Test email sent...": "Email de prueba enviado", + "Unexpected error talking to server: contact us!": "Error inesperado al contactarse con el servidor: ¡Contáctenos!", + "Insert here the recipient email address": "Inserte aquí la dirección de correo electrónico del destinatario", + "Test email address": "Dirección de correo electrónico de prueba", + "Block removed: use undo button to restore it...": "Bloque eliminado: use el botón deshacer para recuperarlo ...", + "New block added after the selected one (__pos__)": "Nuevo bloque agregado después del seleccionado (__pos__)", + "New block added at the model bottom (__pos__)": "Nuevo bloque agregado al final del modelo (__pos__)", + "Undo (#COUNT#)": "Deshacer (#COUNT#)", + "Redo": "Rehacer", + "Selected element has no editable properties": "El elemento seleccionado no tiene propiedades editables", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Este estilo es específico para este bloque: click aquí para eliminar el estilo personalizado y restaurarlo al valor del tema.", + "Switch between global and block level styles editing": "Cambiar entre edición de estilos a nivel global y a nivel de bloque", + "Undo last operation": "Deshacer la última operación", + "Redo last operation": "Rehacer la última operación", + "Show image gallery": "Mostrar la galería de imágenes", + "Gallery": "Galería", + "Preview": "Vista previa", + "Show live preview": "Mostrar vista previa en vivo", + "Large screen": "Pantalla grande", + "Tablet": "Tableta", + "Smartphone": "Teléfono inteligente", + "Show preview and send test": "Mostrar vista previa y enviar prueba", + "Download template": "Descargar plantilla", + "Save template": "Guardar plantilla", + "Saved model is obsolete": "El modelo guardado es obsoleto", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    El modelo guardado ha sido creado con una versión previa que no era totalmenet compatible de la plantilla

    Algunos contenidos o estilos del modelo SE PUEDEN PERDER si guarda

    ¡Contáctenos para obtener más información!

    ", + "Blocks": "Bloques", + "Blocks ready to be added to the template": "Bloques listos para ser agregados a la plantilla", + "Content": "Contenido", + "Edit content options": "Editar opciones de contenido", + "Style": "Estilo", + "Edit style options": "Editar opciones de estilo", + "Block __name__": "Bloque __name__", + "Click or drag to add this block to the template": "Haga click o arrastre para agregar este bloque a la plantilla", + "Add": "Agregar", + "By clicking on message parts you will select a block and content options, if any, will show here": "Haciendo click sobre las partes del mensaje, seleccionará un bloque y se mostrarán las opciones de contenido (si las hay) ", + "By clicking on message parts you will select a block and style options, if available, will show here": "Haciendo click sobre las partes del mensaje, seleccionará un bloque y se mostrarán las opciones de estilo (si las hay) ", + "Click or drag files here": "Haga click o arraste archivos aquí", + "No images uploaded, yet": "Aún no se han subido imágenes", + "Show images from the gallery": "Mostrar imágenes de la galería", + "Loading...": "Cargando ...", + "Load gallery": "Cargar galería", + "Loading gallery...": "Cargando galería ...", + "The gallery is empty": "La galería está vacía", + "Remove image": "Eliminar imagen", + "Open the image editing tool": "Abrir la herramienta de edición de imágenes", + "Upload a new image": "Subir una nueva imagen", + "Drop an image here": "Soltar una imagen aquí", + "Drop an image here or click the upload button": "Suelte una imagen aquí o haga click en el botón subir", + "Drag this image and drop it on any template image placeholder": "Arrastre esta imagen y suéltela sobre cualquier marcador de posición de imagen", + "Gallery:": "Galería:", + "Session images": "Imágenes de sesión", + "Recents": "Recientes", + "Remote gallery": "Galería remota", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Bloque personalizado.
    • En este estado, los cambios a las propiedades serán específicos al bloque actual (no serán aplicados a todos los bloques de la misma sección)
    • A El icono \"small cube\" , que está junto a la propiedad, marcará la personalización. Si hace click en este icono el valor de la propiedad será revertido al valor definido para la sección.
    ", + "Drop here blocks from the \"Blocks\" tab": "Suelte aquí los bloques de la ficha \"Bloques\"", + "Drag this handle to move the block": "Arrastre para mover el bloque", + "Move this block upside": "Mover este bloque hacia arriba", + "Move this block downside": "Mover este bloque hacia abajo", + "Delete block": "Eliminar bloque", + "Duplicate block": "Duplicar bloque", + "Switch block variant": "Cambiar variante de bloque", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Colores de tema,Colores standards,Colores Web,Colores de Tema,Volver a paleta,Historia,No hay historia aún", + "Drop here": "Soltar aquí", + "Unknown error": "Error desconocido", + "Uploaded bytes exceed file size": "Los bytes subidos excedieron el tamaño de archivo", + "File type not allowed": "Tipo de archivo no permitido", + "File is too large": "El archivo es demasiado grande", + "The uploaded file exceeds the post_max_size directive in php.ini": "El archivo subido supera el valor de la directiva post_max_size directive en php.ini", + "File is too big": "El archivo es demasiado grande", + "File is too small": "El archivo es demasiado pequeño", + "Filetype not allowed": "Tipo de archivo no permitido", + "Maximum number of files exceeded": "Se excedió la cantidad máxima de archivos", + "Image exceeds maximum width": "La imagen excede el ancho máximo", + "Image requires a minimum width": "La imagen requiere un ancho mínimo", + "Image exceeds maximum height": "La imagen excede el alto máximo", + "Image requires a minimum height": "La imagen requiere un alto mínimo", + "File upload aborted": "Subida de archivo abortada", + "Failed to resize image": "Falló el cambio de tamaño de la imagen", + "Unexpected upload error": "Error inesperado en la subida", + "Unexpected error listing files": "Error inesperado al listar los archivos", + "__current__ of __total__": "__current__ de __total__", + "Select from gallery": "Seleccionar de la galería" +} \ No newline at end of file diff --git a/public/lang/mosaico-fr.json b/public/lang/mosaico-fr.json new file mode 100644 index 00000000..94859608 --- /dev/null +++ b/public/lang/mosaico-fr.json @@ -0,0 +1,92 @@ +{ + "Download": "TELECHARGER", + "Test": "Test", + "Save": "SAUVEGARDER", + "Downloading...": "Téléchargement...", + "Invalid email address": "Adresse email invalide", + "Test email sent...": "Email de test envoyé...", + "Unexpected error talking to server: contact us!": "Erreur inattendue durant la communication avec le serveur : contactez-nous !", + "Insert here the recipient email address": "Insérez ici l'adresse email du destinataire", + "Test email address": "Adresse email de test", + "Block removed: use undo button to restore it...": "Bloc supprimé : utilisez le bouton annulation pour le restaurer...", + "New block added after the selected one (__pos__)": "Nouveau bloc ajouté après le bloc sélectionné (__pos__)", + "New block added at the model bottom (__pos__)": "Nouveau bloc ajouté au bas du modèle (__pos__)", + "Undo (#COUNT#)": "ANNULATION (#COUNT#)", + "Redo": "RETABLIR", + "Selected element has no editable properties": "L'élément sélectionné n'a pas de propriétés éditables", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Ce style est spécifique à ce bloc : cliquez-ici afin de supprimer le style personnalisé et de revenir à la valeur du thème", + "Switch between global and block level styles editing": "Alternez entre l'édition des styles au niveau global et au niveau du bloc", + "Undo last operation": "Annuler la dernière opération", + "Redo last operation": "Rétablir la dernière opération", + "Show image gallery": "Montrer la galerie d'images", + "Gallery": "Galeries", + "Preview": "Prévisualisation", + "Show live preview": "Montrer la prévisualisation en direct", + "Desktop": "Desktop", + "Mobile and desktop": "Mobile et desktop", + "Large screen": "Écran large", + "Tablet": "Tablette", + "Smartphone": "Mobile", + "Show preview and send test": "Envoyer un test", + "Download template": "Télécharger le template", + "Save template": "Sauvegarder l'email", + "Saved model is obsolete": "Le modèle sauvegardé est obsolète", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Le modèle sauvegardé a été créé avec une version précédente, non complètement compatible, du template.

    Certains contenus ou styles du modèle POURRAIENT ÊTRE PERDUS si vous savegardez

    Contactez-nous pour plus d'informations !

    ", + "Blocks": "Blocs", + "Blocks ready to be added to the template": "Les blocs sont prêts à être ajoutés à l'email", + "Content": "CONTENU", + "Edit content options": "Édition des options de contenu", + "Style": "Style", + "Edit style options": "Édition des options de style", + "Block __name__": "Bloc __name__", + "Click or drag to add this block to the template": "Cliquer ou glisser pour ajouter ce bloc au template", + "Add": "Ajouter", + "By clicking on message parts you will select a block and content options, if any, will show here": "En cliquant sur les parties du message, vous sélectionnerez les options de bloc et de contenu (s'il y en a) et elles seront affichées ici", + "By clicking on message parts you will select a block and style options, if available, will show here": "En cliquant sur les parties du message, vous sélectionnerez les options de bloc et de style (si disponible) et elles seront affichées ici", + "Click or drag files here": "Cliquer ou glisser-déposer des fichiers ici", + "No images uploaded, yet": "Il n'y a pas encore d'images uploadées", + "Show images from the gallery": "Montrer les images de la galerie", + "Loading...": "Chargement...", + "Load gallery": "Charger la galerie", + "Loading gallery...": "Chargement de la galerie...", + "The gallery is empty": "La galerie est vide", + "Remove image": "Supprimer une image", + "Open the image editing tool": "Ouvrir l'outil d'édition d'image", + "Upload a new image": "Uploader une nouvelle image", + "Drop an image here": "Déposer une image ici", + "Drop an image here or click the upload button": "Déposez une image ici ou cliquez sur le bouton d'upload", + "Drag this image and drop it on any template image placeholder": "Glissez cette image et déposez-la dans n'importe quel emplacement d'image", + "Gallery:": "Galerie:", + "Session images": "Images de session", + "Recents": "Récents", + "Remote gallery": "Galerie distante", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Blocs personnalisés.
    • Ces changements dans les propriétés seront spécifiques au bloc en cours d'utilisation (au lieu d'être communs à tous les blocs de la même section)
    • L'icône \"petit cube\" à côté des propriétés marquera la personnalisation. En cliquant sur cettte icône les propriétés seront rétablies aux valeurs définies pour la section.
    ", + "Drop here blocks from the \"Blocks\" tab": "Déposez ici des blocs venant de l'onglet \"Blocs\"", + "Drag this handle to move the block": "Faites glisser cette poignée pour déplacer le bloc", + "Move this block upside": "Déplacez ce bloc vers le haut", + "Move this block downside": "Déplacer ce bloc vers le bas", + "Delete block": "Supprimer ce bloc", + "Duplicate block": "Dupliquer ce bloc", + "Switch block variant": "Changer la version du bloc", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Couleurs de thème, Couleurs standard, Couleurs web, Couleurs de thème, Retour à la palette, Historique, Pas encore d'historique", + "Drop here": "Déposer ici", + "Unknown error": "Erreur inconue", + "Uploaded bytes exceed file size": "Le nombre de bytes chargés excède la taille du fichier", + "File type not allowed": "Type de fichier non-autorisé", + "File is too large": "Fichier trop lourd", + "The uploaded file exceeds the post_max_size directive in php.ini": "The uploaded file exceeds the post_max_size directive in php.ini", + "File is too big": "Le fichier est trop lourd", + "File is too small": "Le fichier est trop petit", + "Filetype not allowed": "Le type de fichier n'est pas autorisé", + "Maximum number of files exceeded": "Le nombre maximum de fichiers est dépassé", + "Image exceeds maximum width": "La largeur de l'image est trop grande", + "Image requires a minimum width": "L'image requiert une largeur minimum", + "Image exceeds maximum height": "La hauteur de l'image est trop grande", + "Image requires a minimum height": "L'image requiert une hauteur minimum", + "File upload aborted": "L'upload de l'image a échoué", + "Failed to resize image": "Impossible de redimensionner l'image", + "Unexpected upload error": "Erreur d'upload inattendue", + "Unexpected error listing files": "Impossible de lister les fichiers", + "__current__ of __total__": "__current__ sur __total__", + "Select from gallery": "Sélectionnez dans la galerie" +} \ No newline at end of file diff --git a/public/lang/mosaico-it.json b/public/lang/mosaico-it.json new file mode 100644 index 00000000..2d461022 --- /dev/null +++ b/public/lang/mosaico-it.json @@ -0,0 +1,90 @@ +{ + "Download": "Download", + "Test": "Test", + "Save": "Salva", + "Downloading...": "Download in corso...", + "Invalid email address": "Indirizzo email invalido", + "Test email sent...": "Email di test inviata...", + "Unexpected error talking to server: contact us!": "Errore di comunicazione con il server: contattaci!", + "Insert here the recipient email address": "Inserisci qui l'indirizzo email a cui spedire", + "Test email address": "Indirizzo email di test", + "Block removed: use undo button to restore it...": "Blocco eliminato: usa il pulsante annulla per recuperarlo...", + "New block added after the selected one (__pos__)": "Nuovo blocco aggiunto sotto a quello selezionato (__pos__)", + "New block added at the model bottom (__pos__)": "Nuovo blocco aggiunto in fondo al modello (__pos__)", + "Undo (#COUNT#)": "Annulla (#COUNT#)", + "Redo": "Ripristina", + "Selected element has no editable properties": "L'elemento selezionato non fornisce proprietà editabili", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Questo stile è specifico di questo blocco: clicca qui per annullare lo stile personalizzato", + "Switch between global and block level styles editing": "Permette di specificare se si vuole modificare lo stile generale o solamente quello specifico del blocco selezionato", + "Undo last operation": "Annulla ultima operazione", + "Redo last operation": "Ripeti operazione annullata", + "Show image gallery": "Visualizza galleria immagini", + "Gallery": "Galleria", + "Preview": "Anteprima", + "Show live preview": "Mostra anteprima live", + "Large screen": "Schermo grande", + "Tablet": "Tablet", + "Smartphone": "Smartphone", + "Show preview and send test": "Visualizza una anteprima e fai un invio di test", + "Download template": "Scarica il template", + "Save template": "Salva il template", + "Saved model is obsolete": "Il modello salvato è obsoleto", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Il modello salvato è stato creato con una versione precedente del template non del tutto compatibile

    Alcuni contenuti o stili del modello POTREBBERO ESSERE PERSI se procederai e deciderai di salvare

    Contattaci se hai dei dubbi!

    ", + "Blocks": "Blocchi", + "Blocks ready to be added to the template": "Elenco contenuti aggiungibili al messaggio", + "Content": "Contenuto", + "Edit content options": "Modifica opzioni contenuti", + "Style": "Stile", + "Edit style options": "Modifica opzioni grafiche", + "Block __name__": "Blocco __name__", + "Click or drag to add this block to the template": "Clicca o trascina per aggiungere al messaggio", + "Add": "Aggiungi", + "By clicking on message parts you will select a block and content options, if any, will show here": "Cliccando su alcune parti del messaggio selezionerai un blocco e le opzioni contenutistiche, se disponibili, compariranno qui", + "By clicking on message parts you will select a block and style options, if available, will show here": "Cliccando su alcune parti del messaggio selezionerai un blocco e le opzioni di stile, se disponibili, compariranno qui", + "Click or drag files here": "Clicca o trascina i file qui!", + "No images uploaded, yet": "Non hai ancora caricato immagini", + "Show images from the gallery": "Visualizza le immagini caricate nella tua area", + "Loading...": "Caricamento...", + "Load gallery": "Carica galleria", + "Loading gallery...": "Caricamento in corso...", + "The gallery is empty": "Nessuna immagine nella galleria", + "Remove image": "Rimuovi immagine", + "Open the image editing tool": "Avvia strumento modifica immagine", + "Upload a new image": "Carica una nuova immagine", + "Drop an image here": "Trascina una immagine qui", + "Drop an image here or click the upload button": "Trascina una immagine qui o clicca sul pulsante di caricamento", + "Drag this image and drop it on any template image placeholder": "Trascina questa immagine sulla posizione in cui vuoi inserirla", + "Gallery:": "Galleria:", + "Session images": "Immagini di sessione", + "Recents": "Recenti", + "Remote gallery": "Galleria remota", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Blocco personalizzato.
    • In questa modalità se cambi una proprietà verrà modificata solamente per questo specifico blocco (invece che per tutti i blocchi della stessa sezione).
    • Per segnalare la personalizzazione apparirà l'icona del \"cubetto\" a fianco delle proprietà. Cliccando questa icona tornerai al valore comune.
    ", + "Drop here blocks from the \"Blocks\" tab": "Trascina qui i blocchi dalla scheda 'Blocchi'", + "Drag this handle to move the block": "Trascina per spostare il blocco altrove", + "Move this block upside": "Sposta il blocco in su", + "Move this block downside": "Sposta il blocco in giu", + "Delete block": "Elimina blocco", + "Duplicate block": "Duplica blocco", + "Switch block variant": "Cambia variante blocco", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Colori Tema,Colori Standard,Colori Web,Colori Tema,Torna alla tavolozza,Storico,storico colori vuoto", + "Drop here": "Rilascia qui", + "Unknown error": "Errore sconosciuto durante il caricamento", + "Uploaded bytes exceed file size": "Errore inaspettato durante il caricamento (uploaded bytes)", + "File type not allowed": "Tipo di file non supportato", + "File is too large": "File troppo grande", + "The uploaded file exceeds the post_max_size directive in php.ini": "Il server ha rifiutato il file perchè troppo grande (post_max_size)", + "File is too big": "Il server ha rifiutato il file perchè troppo grande (max_file_size)", + "File is too small": "Il server ha rifiutato il file perchè troppo piccolo", + "Filetype not allowed": "Il server ha rifiutato questo tipo di file", + "Maximum number of files exceeded": "Numero massimo di file caricabili superato (max_number_of_files)", + "Image exceeds maximum width": "L'Immagine supera la larghezza massima consentita", + "Image requires a minimum width": "L'Immagine non è abbastanza larga", + "Image exceeds maximum height": "L'Immagine supera l'altezza massima consentita", + "Image requires a minimum height": "L'Immagine non è abbastanza alta", + "File upload aborted": "Caricamento del file annullato", + "Failed to resize image": "Impossibile ridimensionare l'immagine", + "Unexpected upload error": "Errore inaspettato durante il caricamento", + "Unexpected error listing files": "Errore inaspettato caricando la lista dei file", + "__current__ of __total__": "__current__ di __total__", + "Select from gallery": "Seleziona dalla galleria" +} \ No newline at end of file diff --git a/public/lang/mosaico-nl.json b/public/lang/mosaico-nl.json new file mode 100644 index 00000000..db1be0f6 --- /dev/null +++ b/public/lang/mosaico-nl.json @@ -0,0 +1,90 @@ +{ + "Download": "Downloaden", + "Test": "Test versturen", + "Save": "Bewaren", + "Downloading...": "bezig met downloaden...", + "Invalid email address": "Ongeldig emailadres", + "Test email sent...": "Email wordt verstuurd.", + "Unexpected error talking to server: contact us!": "Onverwachte fout in communicatie met de server. Neem contact met ons op!", + "Insert here the recipient email address": "Geef hier het emailadres op van de ontvanger", + "Test email address": "Test-emailadres", + "Block removed: use undo button to restore it...": "Blok is verwijderd. Gebruik het \"undo\" commando om het blok weer terug te zetten...", + "New block added after the selected one (__pos__)": "Nieuw blok is toegevoegd onder blok (__pos__)", + "New block added at the model bottom (__pos__)": "Nieuw blok is onderaan toegevoegd (__pos__)", + "Undo (#COUNT#)": "Undo (#COUNT#)", + "Redo": "Redo", + "Selected element has no editable properties": "Het geselecteerde element heeft geen wijzigbare opties.", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Deze stijl is specifiek voor dit blok. Klik hier om deze stijl te verwijderen en de algemene stijl toe te passen.", + "Switch between global and block level styles editing": "Kies tussen globale en blok-gerelateerde instellingen", + "Undo last operation": "Maak de laatste handeling ongedaan", + "Redo last operation": "Doe de laatste handeling opnieuw", + "Show image gallery": "Toon beschikbare plaatjes", + "Gallery": "Plaatjes", + "Preview": "Voorbeeld", + "Show live preview": "Voorbeeld tonen", + "Large screen": "Computer", + "Tablet": "Tablet", + "Smartphone": "Smartphone", + "Show preview and send test": "Toon voorbeeld en verstuur een test email", + "Download template": "Template downloaden", + "Save template": "Template bewaren", + "Saved model is obsolete": "De bewaarde tekst is verouderd", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    De bewaarde tekst werd met een veroudrde editor gemaakt die niet compatibel is met de huidige editor.

    Inhoud van deze tekst kan mogelijk verloren gaan bij het bewaren!

    Neem contact op met ons!

    ", + "Blocks": "Blokken", + "Blocks ready to be added to the template": "Blokken die gebruikt kunnen worden", + "Content": "Inhoud", + "Edit content options": "Wijzig opties m.b.t. de inhoud", + "Style": "Opmaak", + "Edit style options": "Wijzig opties m.b.t. de opmaak", + "Block __name__": "Blok __name__", + "Click or drag to add this block to the template": "Klik of versleep dit blok om het aan de tekst toe te voegen", + "Add": "Toevoegen", + "By clicking on message parts you will select a block and content options, if any, will show here": "Door te klikken op een tekstgedeelte selecteer je het blok waarbij de bijbehorende instellingen hier worden getoond", + "By clicking on message parts you will select a block and style options, if available, will show here": "Door te klikken op een tekstgedeelte selecteer je het blok waarbij de bijbehorende opmaak-opties hier worden getoond", + "Click or drag files here": "Klik of sleep bestanden in dit vak", + "No images uploaded, yet": "Nog geen plaatjes beschikbaar", + "Show images from the gallery": "Toon beschikbare plaatjes", + "Loading...": "Laden ...", + "Load gallery": "plaatjes laden", + "Loading gallery...": "bezig met laden ...", + "The gallery is empty": "Er zijn geen plaatjes gevonden", + "Remove image": "Plaatje verwijderen", + "Open the image editing tool": "Plaatje wijzigen", + "Upload a new image": "Nieuw plaatje uploaden", + "Drop an image here": "Plaats hier een plaatje", + "Drop an image here or click the upload button": "Drop hier een plaatje of klik op de Upload-knop", + "Drag this image and drop it on any template image placeholder": "Sleep dit plaatje naar een beschikbare plek in de tekst", + "Gallery:": "Plaatjes:", + "Session images": "Plaatjes van de sessie", + "Recents": "Recent", + "Remote gallery": "Alle bewaarde plaatjes", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Aangepast blok.
    • Op dit moment zullen wijzigingen in instellingen alleen gelden voor het huidige blok (in plaats van globaal voor alle blokken in dezelfde sectie)
    • Een \"small cube\" icon naast de instelling toont of het aangepast is. Door op dit icon te klikken wordt de waarde teruggezet naar de waarde zoals ingesteld voor de hele sectie.
    ", + "Drop here blocks from the \"Blocks\" tab": "Drop hier geselecteerde blokken uit het \"Blokken\" - Tabblad", + "Drag this handle to move the block": "Gebruik dit om het blok te verschuiven", + "Move this block upside": "Blok naar boven verplaatsen", + "Move this block downside": "Blok naar onder verplaatsen", + "Delete block": "Blok verwijderen", + "Duplicate block": "Blok kopieren", + "Switch block variant": "Verwissel blok-variant", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Theme kleuren,Standaard kleuren,Web kleuren,Theme kleuren,Terug naar Palette,Geschiedenis,Geen geschiedenis beschikbaar.", + "Drop here": "Drop hier", + "Unknown error": "Onbekende fout", + "Uploaded bytes exceed file size": "Plaatje te groot voor upload", + "File type not allowed": "Bestandstype is niet toegestaan. Gebruik alleen .jpg, .gif of .png bestanden", + "File is too large": "Bestand is te groot", + "The uploaded file exceeds the post_max_size directive in php.ini": "Geuploade bestanden zijn te groot (post_max_size directive in php.ini)", + "File is too big": "Bestand is te groot", + "File is too small": "Bestand is te klein", + "Filetype not allowed": "Bestandstype is niet tooegestaan. Gebruik alleen .jpg, .gif of .png bestanden", + "Maximum number of files exceeded": "Maximaal aantal bestanden overschreden", + "Image exceeds maximum width": "Plaatje is breder dan toegestaan", + "Image requires a minimum width": "Plaatje moet een minimale breedte hebben", + "Image exceeds maximum height": "Plaatje is hoger dan toegestaan", + "Image requires a minimum height": "Plaatjje moet een minimale hoogte hebben", + "File upload aborted": "Bestandsupload is afgebroken", + "Failed to resize image": "Kon de grootte van het plaatje niet aanpassen", + "Unexpected upload error": "Onverwachte fout bij upload", + "Unexpected error listing files": "Onverwachte fout bij tonen van de plaatjes", + "__current__ of __total__": "__current__ van __total__", + "Select from gallery": "Selecteer uit galerij" +} \ No newline at end of file diff --git a/public/lang/mosaico-pt_BR.json b/public/lang/mosaico-pt_BR.json new file mode 100644 index 00000000..51bedadb --- /dev/null +++ b/public/lang/mosaico-pt_BR.json @@ -0,0 +1,90 @@ +{ + "Download": "Baixar", + "Test": "Testar", + "Save": "Salvar", + "Downloading...": "Baixando...", + "Invalid email address": "Endereço de email inválido", + "Test email sent...": "Email de teste enviado", + "Unexpected error talking to server: contact us!": "Erro inesperado ao contactar ao servidor: Informe-nos!", + "Insert here the recipient email address": "Insira aqui o endereço de email de destino", + "Test email address": "Endereço de email para teste", + "Block removed: use undo button to restore it...": "Bloco removido: use o botão Desfazer para restaurá-lo...", + "New block added after the selected one (__pos__)": "Novo bloco adicionado após o selecionado (__pos__)", + "New block added at the model bottom (__pos__)": "Novo bloco adicionado ao final do template (__pos__)", + "Undo (#COUNT#)": "Desfazer (#COUNT#)", + "Redo": "Refazer", + "Selected element has no editable properties": "O elemento selecionado não tem propriedades editáveis", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Este estilo é específico para este bloco: clique aqui para eliminar o estilo personalizado e restaurar o valor do tema.", + "Switch between global and block level styles editing": "Trocar entre edição de estilos a nível global ou a nível de bloco", + "Undo last operation": "Desfazer a última operação", + "Redo last operation": "Refazer a última operação", + "Show image gallery": "Mostrar a galeria de imagens", + "Gallery": "Galeria", + "Preview": "Pré-visualizar", + "Show live preview": "Mostrar prévia ao vivo", + "Large screen": "Desktop", + "Tablet": "Tablet", + "Smartphone": "Mobile", + "Show preview and send test": "Mostrar prévia e enviar teste", + "Download template": "Baixar template", + "Save template": "Salvar template", + "Saved model is obsolete": "O modelo salvo é obsoleto", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    O modelo foi salvo em uma versão antiga e não totalmente compatível com o template

    Alguns conteúdos ou estilos no modelo PODEM SE PERDER se for salvo

    Entre em contato para mais informações!

    ", + "Blocks": "Blocos", + "Blocks ready to be added to the template": "Blocos prontos para serem adicionados ao template", + "Content": "Conteúdo", + "Edit content options": "Editar opções do conteúdo", + "Style": "Estilo", + "Edit style options": "Editar opções de estilo", + "Block __name__": "Bloco __name__", + "Click or drag to add this block to the template": "Clique ou arraste e solte para adicionar este bloco ao template", + "Add": "Adicionar", + "By clicking on message parts you will select a block and content options, if any, will show here": "Ao clicar em partes da mensagem, você selecionará um bloco. As opções de conteúdo, se houverem, serão exibidas aqui ", + "By clicking on message parts you will select a block and style options, if available, will show here": "Ao clicar em partes da mensagem, você selecionará um bloco. As opções de estilo, se houverem, serão exibidas aqui ", + "Click or drag files here": "Clique ou arraste arquivos aqui", + "No images uploaded, yet": "Nenhuma imagem adicionada, ainda", + "Show images from the gallery": "Mostrar imagens da galeria", + "Loading...": "Carregando...", + "Load gallery": "Carregar galeria", + "Loading gallery...": "Carregando galeria...", + "The gallery is empty": "A galeria está vazia", + "Remove image": "Remover imagem", + "Open the image editing tool": "Abrir a ferramenta de edição de imagem", + "Upload a new image": "Carregar uma nova imagem", + "Drop an image here": "Arraste uma imagem aqui", + "Drop an image here or click the upload button": "Arraste uma imagem aqui ou clique no botão carregar", + "Drag this image and drop it on any template image placeholder": "Arraste esta imagem e solte-a sobre qualquer placeholder de imagem", + "Gallery:": "Galeria:", + "Session images": "Sessão de imagens", + "Recents": "Recentes", + "Remote gallery": "Galeria remota", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Bloco personalizado.
    • Neste estado, as modificações das propiedades serão específicas ao bloco atual (não serão aplicados aos blocos da mesma seção)
    • O ícone \"small cube\" , da propriedade, marcará a personalização. Se clicar neste ícone o valor da propiedade será revertido ao valor padrão.
    ", + "Drop here blocks from the \"Blocks\" tab": "Arraste aqui os blocos a partir do menu \"Blocos\"", + "Drag this handle to move the block": "Arraste para mover o bloco", + "Move this block upside": "Mover este bloco para cima", + "Move this block downside": "Mover este bloco para baixo", + "Delete block": "Eliminar bloco", + "Duplicate block": "Duplicar bloco", + "Switch block variant": "Alternar variante do bloco", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Cores do tema,Cores padrão,Cores Web,Cores do Tema,Voltar a paleta,Historico,Nenhum histórico ainda", + "Drop here": "Soltar aqui", + "Unknown error": "Erro desconhecido", + "Uploaded bytes exceed file size": "Os dados excedem o tamanho do arquivo", + "File type not allowed": "Tipo de arquivo não permitido", + "File is too large": "Arquivo muito grande", + "The uploaded file exceeds the post_max_size directive in php.ini": "O upload excede o valor da diretiva post_max_size do php.ini", + "File is too big": "Arquivo demasiadamente grande", + "File is too small": "Arquivo demasiadamente pequeno", + "Filetype not allowed": "Tipo de arquivo não permitido", + "Maximum number of files exceeded": "Número máximo de arquivos excedido", + "Image exceeds maximum width": "Imagem excede a largura máxima", + "Image requires a minimum width": "Largura mínima de imagem requirida", + "Image exceeds maximum height": "Imagem excede a altura máxima", + "Image requires a minimum height": "Altura mínima de imagem requirida", + "File upload aborted": "Upload abortado", + "Failed to resize image": "Falha ao redimensionar imagem", + "Unexpected upload error": "Erro inesperado em upload", + "Unexpected error listing files": "Erro inesperado ao listar arquivos", + "__current__ of __total__": "__current__ de __total__", + "Select from gallery": "Selecione a partir da galeria" +} \ No newline at end of file diff --git a/public/lang/mosaico-ru.json b/public/lang/mosaico-ru.json new file mode 100644 index 00000000..1a71639a --- /dev/null +++ b/public/lang/mosaico-ru.json @@ -0,0 +1,90 @@ +{ + "Download": "Скачать", + "Test": "Тест", + "Save": "Сохранить", + "Downloading...": "Загрузка...", + "Invalid email address": "Неверный адрес электронной почты", + "Test email sent...": "Сообщение для проверки электронной почты отправлено...", + "Unexpected error talking to server: contact us!": "Неожиданная ошибка при общении с сервером: свяжитесь с нами!", + "Insert here the recipient email address": "Вставьте здесь адрес электронной почты получателя", + "Test email address": "Проверить адрес электронной почты", + "Block removed: use undo button to restore it...": "Блок удален: используйте кнопку отмены, чтобы восстановить его...", + "New block added after the selected one (__pos__)": "Новый блок, добавленный после выбранного (__pos__)", + "New block added at the model bottom (__pos__)": "Новый блок, добавленный в нижней части модели (__pos__)", + "Undo (#COUNT#)": "Отменить (#COUNT#)", + "Redo": "Повторить", + "Selected element has no editable properties": "Выбранный элемент не имеет редактируемых свойств", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Этот стиль специфичен для данного блока: щелкните здесь, чтобы удалить пользовательский стиль и вернуться к значению темы", + "Switch between global and block level styles editing": "Переключение между глобальным и блочным стилями редактирования", + "Undo last operation": "Отменить последнюю операцию", + "Redo last operation": "Повторить последнюю операцию", + "Show image gallery": "Показать галерею изображений", + "Gallery": "Галерея", + "Preview": "Просмотр", + "Show live preview": "Показать интерактивный просмотр", + "Large screen": "Большой экран", + "Tablet": "Планшет", + "Smartphone": "Смартфон", + "Show preview and send test": "Показать предварительный просмотр и отправить тест", + "Download template": "Загрузить шаблон", + "Save template": "Сохранить шаблон", + "Saved model is obsolete": "Сохраненная модель устарела", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Сохраненная модель была создана с помощью предыдущей, не полностью совместимой версии шаблона

    Часть содержимого или стиль в моделиМОЖЕТ БЫТЬ ПОТЕРЯНО если вы сохраните

    Свяжитесь с нами для получения дополнительных сведений!

    ", + "Blocks": "Блоки", + "Blocks ready to be added to the template": "Блоки готовы к добавлению в шаблон", + "Content": "Содержимое", + "Edit content options": "Изменить параметры содержимого", + "Style": "Стиль", + "Edit style options": "Изменить параметры стиля", + "Block __name__": "Блок __name__", + "Click or drag to add this block to the template": "Щелкните или перетащите, чтобы добавить этот блок в шаблон", + "Add": "Добавить", + "By clicking on message parts you will select a block and content options, if any, will show here": "При нажатии на части сообщения будут выбраны параметры блока и содержимого, если таковые будут здесь отображаться.", + "By clicking on message parts you will select a block and style options, if available, will show here": "При нажатии на части сообщения будут выбраны параметры блока и стиля, если они доступны, будут показаны здесь", + "Click or drag files here": "Щелкните или перетащите сюда файлы", + "No images uploaded, yet": "Нет загруженных изображений", + "Show images from the gallery": "Показать изображения из галереи", + "Loading...": "Загрузка...", + "Load gallery": "Загрузить галерею", + "Loading gallery...": "Загрузка галереи...", + "The gallery is empty": "Галерея пуста", + "Remove image": "Удалить изображение", + "Open the image editing tool": "Открыть инструмент редактирования изображений", + "Upload a new image": "Загрузить новое изображение", + "Drop an image here": "Бросьте изображение здесь", + "Drop an image here or click the upload button": "Бросьте изображение здесь или нажмите кнопку загрузки", + "Drag this image and drop it on any template image placeholder": "Перетащите это изображение и поместите его на любой заполнитель шаблона", + "Gallery:": "Галерея:", + "Session images": "Изображения сеанса", + "Recents": "Недавние", + "Remote gallery": "Удаленная галерея", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Настраиваемый блок.
    • В этом статусе изменения свойств будут специфичны для текущего блока (вместо того, чтобы быть глобальными для всех блоков в том же разделе).
    • Значок\"маленький куб\"рядом с объектом отметит настройку. Нажав на этот значок, значение свойства вернется к значению, определенному для раздела.
    ", + "Drop here blocks from the \"Blocks\" tab": "Бросьте сюда блоки с вкладки \"блоки\"", + "Drag this handle to move the block": "Перетащите этот маркер для перемещения блока", + "Move this block upside": "Переместите этот блок вверх", + "Move this block downside": "Переместите этот блок вниз", + "Delete block": "Удалить блок", + "Duplicate block": "Дублировать блок", + "Switch block variant": "Переключение варианта блока", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Тематические цвета,Стандартные цвета,Цветовая гамма,Цвет темы,Назад в палитру,История,История еще не существует.", + "Drop here": "Бросьте сюда", + "Unknown error": "Неизвестная ошибка", + "Uploaded bytes exceed file size": "Загруженные байты превышают размер файла", + "File type not allowed": "Тип файла не разрешен", + "File is too large": "Слишком большой файл", + "The uploaded file exceeds the post_max_size directive in php.ini": "Выгруженный файл post_max_size превышает директиву в php.ini", + "File is too big": "Слишком большой файл", + "File is too small": "Файл слишком мал", + "Filetype not allowed": "Тип файла не разрешен", + "Maximum number of files exceeded": "Превышение максимального числа файлов", + "Image exceeds maximum width": "Размер изображения превышает максимальную ширину", + "Image requires a minimum width": "Размер изображения превышает минимальную ширину", + "Image exceeds maximum height": "Размер изображения превышает максимальную длину", + "Image requires a minimum height": "Размер изображения превышает минимальную длину", + "File upload aborted": "Выгрузка файла прервана", + "Failed to resize image": "Не удалось изменить размер изображения.", + "Unexpected upload error": "Неожиданная ошибка загрузки", + "Unexpected error listing files": "Неожиданная ошибка при просмотре файлов", + "__current__ of __total__": "__current__ из __total__", + "Select from gallery": "Выберите из галереи" +} \ No newline at end of file diff --git a/public/lang/mosaico-sr_RS.json b/public/lang/mosaico-sr_RS.json new file mode 100644 index 00000000..73764a8d --- /dev/null +++ b/public/lang/mosaico-sr_RS.json @@ -0,0 +1,90 @@ +{ + "Download": "Preuzmi", + "Test": "Testiraj", + "Save": "Sačuvaj", + "Downloading...": "Preuzimanje...", + "Invalid email address": "Nevažeća email adresa", + "Test email sent...": "Test email poslat...", + "Unexpected error talking to server: contact us!": "Neočekivana greška pri komunikaciji sa serverom: kontaktirajte nas!", + "Insert here the recipient email address": "Unesite email primaoca", + "Test email address": "Testiraj email adresu", + "Block removed: use undo button to restore it...": "Blok uklonjen: Koristite dugme Povrati da povratite blok...", + "New block added after the selected one (__pos__)": "Novi blok dodat nakon odabranog (__pos__)", + "New block added at the model bottom (__pos__)": "Novi blok dodat na dnu (__pos__)", + "Undo (#COUNT#)": "Povrati (#COUNT#)", + "Redo": "Ponovo izvrši", + "Selected element has no editable properties": "Odabrani element nema svojstva koja se mogu urediti", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Stil je specifičan za ovaj blok: Kliknite ovde da izmenite prilagođeni stil i povratite na podrazumevanu vrednost teme", + "Switch between global and block level styles editing": "Uređenje globalnog stila ili stila na nivou bloka", + "Undo last operation": "Povrati poslednju operaciju", + "Redo last operation": "Ponovo izvrši poslednju operaciju", + "Show image gallery": "Prikaži galeriju sa slikama", + "Gallery": "Galerija", + "Preview": "Pregledaj", + "Show live preview": "Prikaži pregled uživo", + "Large screen": "Veliki ekran", + "Tablet": "Tablet", + "Smartphone": "Smartfon", + "Show preview and send test": "Prikaži pregled i pošalji test", + "Download template": "Preuzmi šablon", + "Save template": "Sačuvaj šablon", + "Saved model is obsolete": "Sačuvani model je prevaziđen", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Sačuvani model je kreiran sa prethodnom verzijom šablona, koja nije u potpunosti kompatibilna

    Neki sadržaj ili stil u modeluMOŽE BITI IZGUBLJENukoliko sačuvate model

    Kontaktirajte nas za više informacija!

    ", + "Blocks": "Blokovi", + "Blocks ready to be added to the template": "Blokovi koji su spremni za dodavanje u šablo", + "Content": "Sadržaj", + "Edit content options": "Uredi opcije sadržaja", + "Style": "Stil", + "Edit style options": "Uredi opcije stila", + "Block __name__": "Blok __ime__", + "Click or drag to add this block to the template": "Kliknite ili prevucite ovaj blok u šablon", + "Add": "Dodaj", + "By clicking on message parts you will select a block and content options, if any, will show here": "Klikom na delove poruke ćete izabrati blok i opcije za sadržaj, ukoliko postoje će biti prikazane ovde", + "By clicking on message parts you will select a block and style options, if available, will show here": "Klikom na delove poruke ćete izabrati blok i opcije za stil će, ukoliko postoje biti prikazane ovde", + "Click or drag files here": "Kliknite ili prevucite fajlove ovde", + "No images uploaded, yet": "Još uvek nema postavljenih slika", + "Show images from the gallery": "Prikaži slike iz galerije", + "Loading...": "Učitavanje...", + "Load gallery": "Učitaj galeriju", + "Loading gallery...": "Učitavanje galerije...", + "The gallery is empty": "Galerija je prazna", + "Remove image": "Ukloni sliku", + "Open the image editing tool": "Otvori alatku za uređivanje slika", + "Upload a new image": "Postavi novu sliku", + "Drop an image here": "Ubaci sliku ovde", + "Drop an image here or click the upload button": "Ubacite sliku ovde ili kliknite na dugme za postavljanje", + "Drag this image and drop it on any template image placeholder": "Prevucite ovu sliku na poziciju za sliku u šablonu", + "Gallery:": "Galerija:", + "Session images": "Slike sesije", + "Recents": "Poslednje", + "Remote gallery": "Odaljena galerija", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Prilagođeni blok.
    • U ovom statusu će promene svojstava biti direktno vezane za trenutno odabrani blok (umesto da se vezuju za sve blokove u istoj sekciji)
    • Ikonica \"mala kocka\" pored svojstva će obeležiti prilagođavanje. Klikom na ovu ikonicu, svojstvo će biti vraćeno na podrazumevanu vrednost definisanu u sekciji.
    ", + "Drop here blocks from the \"Blocks\" tab": "Ovde možete dodati blokove sa \"Blok\" kartice", + "Drag this handle to move the block": "Pomeranjem ove ručice možete menjati poziciju bloka", + "Move this block upside": "Pomerite ovaj blok gore", + "Move this block downside": "Pomerite ovaj blok dole", + "Delete block": "Obriši blok", + "Duplicate block": "Dupliraj blok", + "Switch block variant": "Promeni varijantu bloka", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Boje teme, standardne boje, web boje, boje teme, nazad na paletu, prethodno, bez zapisa o prethodnim akcijama.", + "Drop here": "Prevucite ovde", + "Unknown error": "Nepoznata greška", + "Uploaded bytes exceed file size": "Postavljeni fajl je veći od očekivane veličine", + "File type not allowed": "Tip fajla nije podržan", + "File is too large": "Fajl je prevelik", + "The uploaded file exceeds the post_max_size directive in php.ini": "Postavljeni fajl je veći od post_max_size direktive u php.ini", + "File is too big": "Fajl je prevelik", + "File is too small": "Fajl je premali", + "Filetype not allowed": "Tip fajla nije podržan", + "Maximum number of files exceeded": "Više od maksimalnog broja fajlova", + "Image exceeds maximum width": "Slika je šira od maksimalne podržane širine", + "Image requires a minimum width": "Slika mora imati minimalnu širinu", + "Image exceeds maximum height": "Slika ima veću visinu od maksimalne podržane", + "Image requires a minimum height": "Slika mora imati minimalnu visinu", + "File upload aborted": "Postavljanje fajla prekinuto", + "Failed to resize image": "Izmena dimenzija slike nije uspela", + "Unexpected upload error": "Neočekivana greška pri postavljanju", + "Unexpected error listing files": "Neočekivana greška pri listingu fajlova", + "__current__ of __total__": "__current__ од __total__", + "Select from gallery": "Изаберите из галерије" +} \ No newline at end of file diff --git a/public/lang/mosaico-sv.json b/public/lang/mosaico-sv.json new file mode 100644 index 00000000..10ee56ea --- /dev/null +++ b/public/lang/mosaico-sv.json @@ -0,0 +1,90 @@ +{ + "Download": "Ladda ner", + "Test": "Test", + "Save": "Spara", + "Downloading...": "Laddar ned...", + "Invalid email address": "Felaktig e-postadress", + "Test email sent...": "Test-brev skickat", + "Unexpected error talking to server: contact us!": "Oväntat fel vid kommunikation med servern, kontakta oss!", + "Insert here the recipient email address": "Skriv mottagaradressen här", + "Test email address": "E-post adress för test", + "Block removed: use undo button to restore it...": "Block borttaget, använd ångra knappen för att återställa det.", + "New block added after the selected one (__pos__)": "Nytt block tillagt efter valt block (__pos__)", + "New block added at the model bottom (__pos__)": "Nytt block tillagt i slutet av modellen (__pos__)", + "Undo (#COUNT#)": "Ångra (#COUNT#)", + "Redo": "Upprepa", + "Selected element has no editable properties": "Valt elelement har inga redigerbara egenskaper", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "\nDenna stil är specifik för detta block : Klicka här för att ta bort den anpassade stilen och återgå till temats värde", + "Switch between global and block level styles editing": "Växla mellan redigering av stilar, globalt och på blocknivå.", + "Undo last operation": "Ångra senaste operation", + "Redo last operation": "Upprepa senaste operation", + "Show image gallery": "Visa bildgalleri", + "Gallery": "Galleri", + "Preview": "Förhandsgranska", + "Show live preview": "Visa förhansgranskning", + "Large screen": "Stor skärm", + "Tablet": "Surfplatta", + "Smartphone": "Smartphone", + "Show preview and send test": "Förhandsgranska och skicka test", + "Download template": "Ladda ner mallen", + "Save template": "Spara mall", + "Saved model is obsolete": "Spara modell är föråldrat", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Den spararde modellan har skapats med en tidigare version som inte är kompatibel.

    Visst innehåll och stilar i modellen KAN GÅ FÖRLORAT om du vill spara

    Kontakta oss för mer information

    \n", + "Blocks": "Block", + "Blocks ready to be added to the template": "Block redo att läggas till mallen", + "Content": "Innehåll", + "Edit content options": "Redigera alternativ för innehåll", + "Style": "Stilar", + "Edit style options": "Redigera alternativ för stilar", + "Block __name__": "Block __name__", + "Click or drag to add this block to the template": "Klicka eller dra blocket till mallen", + "Add": "Lägg till", + "By clicking on message parts you will select a block and content options, if any, will show here": "Genom att klicka på meddelandets delar kommer du att välja ett block och innehållsalternativ, om några, kommer att synas här.", + "By clicking on message parts you will select a block and style options, if available, will show here": "Genom att klicka på meddelandets delar kommer du att välja ett block och stilalternativ, om några, kommer att synas här.", + "Click or drag files here": "Klicka eller dra filer hit", + "No images uploaded, yet": "Inga bilder uppladdade, ännu", + "Show images from the gallery": "Visa bilder från galleriet", + "Loading...": "Laddar...", + "Load gallery": "Ladda galleri", + "Loading gallery...": "Hämtar galleri...", + "The gallery is empty": "Galleriet är tomt", + "Remove image": "Ta bort bild", + "Open the image editing tool": "Öppna bildredigeringsverktyg", + "Upload a new image": "Ladda upp en ny billd", + "Drop an image here": "Släpp en bild här", + "Drop an image here or click the upload button": "Släpp en bild här eller klicka på uppladdningsknappen", + "Drag this image and drop it on any template image placeholder": "Dra bilden och släpp på en platshållare i mallen", + "Gallery:": "Galleri:", + "Session images": "Bilder för sessionen", + "Recents": "Senaste", + "Remote gallery": "Fjärrgalleri", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Skräddarsytt block . < Ul > < li > Statusändringar av egenskaper kommer att vara specifika för det aktuella blocket (i stället för att vara global för alla block i samma avsnitt ) < / li > < li > En < span class = \" customStyled \" > < span> \" liten kub \" < / span> < / span> ikonen bredvid egenskapen kommer att markera edigerbarhet. Genom att klicka på ikonen kommer egenskapen att återställas till det värde som anges för sektionen . < / Li > < / ul >", + "Drop here blocks from the \"Blocks\" tab": "Dra och släpp block från \"Block\" fliken hit.", + "Drag this handle to move the block": "Dra i handtaget för att flytta blocket", + "Move this block upside": "Flytta blocket uppåt", + "Move this block downside": "Flytta blocket nedåt", + "Delete block": "Radera block", + "Duplicate block": "Kopiera block", + "Switch block variant": "Byt blocktyp", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Temafärger,Standardfärger,Webfärger,Temafärger,Tillbaka till palette,Historik,Ingen historik ännu.", + "Drop here": "Släpp här", + "Unknown error": "Okänt fel", + "Uploaded bytes exceed file size": "Uppladdade bytes överskrider filstorlek", + "File type not allowed": "Filtypen är inte tillåten", + "File is too large": "Filen är för stor", + "The uploaded file exceeds the post_max_size directive in php.ini": "Den uppladdade filen överskrider post_max_size direktivet i php.ini", + "File is too big": "Filen är för stor", + "File is too small": "Filen är för liten", + "Filetype not allowed": "Otillåten filtyp", + "Maximum number of files exceeded": "Max antal filer överskridet", + "Image exceeds maximum width": "Bild överskrider max bredd", + "Image requires a minimum width": "Bilden kräver en minimum bredd", + "Image exceeds maximum height": "Bilden överskrider maxhöjd", + "Image requires a minimum height": "Bilden kräver en minimum höjd", + "File upload aborted": "Uppladdning avbruten", + "Failed to resize image": "Det gick inte att ändra storlek på bild", + "Unexpected upload error": "Oväntat uppladdningsfel", + "Unexpected error listing files": "Oväntat fel vid inläsning av fillista", + "__current__ of __total__": "__current__ av __total__", + "Select from gallery": "Välj från galleri" +} \ No newline at end of file diff --git a/public/lang/mosaico-tr.json b/public/lang/mosaico-tr.json new file mode 100644 index 00000000..797c691b --- /dev/null +++ b/public/lang/mosaico-tr.json @@ -0,0 +1,90 @@ +{ + "Download": "İndir", + "Test": "Test", + "Save": "Kaydet", + "Downloading...": "İndiriliyor...", + "Invalid email address": "Geçersiz e-posta adresi!", + "Test email sent...": "E-posta gönderme test ediliyor...", + "Unexpected error talking to server: contact us!": "Sunucu ile iletişim kurulamıyor: bizimle iletişime geçin!", + "Insert here the recipient email address": "Alıcının e-posta adresini buraya ekleyin", + "Test email address": "E-posta adresini test et", + "Block removed: use undo button to restore it...": "Blok kaldırıldı: geri yüklemek için geri al butonunu kullanın...", + "New block added after the selected one (__pos__)": "Blok seçilerek yeni blok eklendi (__pos__)", + "New block added at the model bottom (__pos__)": "Modelin alt kısmına yeni blok eklendi (__pos__)", + "Undo (#COUNT#)": "Geri Al (#COUNT#)", + "Redo": "Yinele", + "Selected element has no editable properties": "Seçilen öğenin düzenlenebilir nitelikleri yok", + "This style is specific for this block: click here to remove the custom style and revert to the theme value": "Bu stil bu bloğa özgüdür: özel stili kaldırmak ve tema değerine dönmek için burayı tıklayın", + "Switch between global and block level styles editing": "Genel ve blok stilleri düzenleme arasında geçiş yap", + "Undo last operation": "Son işlemi geri al", + "Redo last operation": "Son işlemi yinele", + "Show image gallery": "Resim galerisini görüntüle", + "Gallery": "Galeri", + "Preview": "Önizle", + "Show live preview": "Canlı önizlemeyi göster", + "Large screen": "Geniş ekran", + "Tablet": "Tablet", + "Smartphone": "Akıllı Telefon", + "Show preview and send test": "Önizlemeyi göster ve test et", + "Download template": "Şablonu indir", + "Save template": "Şablonu kaydet", + "Saved model is obsolete": "Kaydedilen model kullanılmıyor", + "

    The saved model has been created with a previous, non completely compatible version, of the template

    Some content or style in the model COULD BE LOST if you will save

    Contact us for more informations!

    ": "

    Kaydedilen şablonun versiyonu önceki haliyle tamamen uyumlu değil.

    Şablondaki bazı içerik veya stiller şablonu kaydettiğin durumda KAYBOLABİLİR

    Daha fazla bilgi için bizimle iletişime geçin!

    ", + "Blocks": "Bloklar", + "Blocks ready to be added to the template": "Bloklar şablona eklenmeye hazır", + "Content": "İçerik", + "Edit content options": "İçerik seçeneklerini düzenle", + "Style": "Stil", + "Edit style options": "Stil seçeneklerini düzenle", + "Block __name__": "Blok __name__", + "Click or drag to add this block to the template": "Bu bloğu şablona eklemek için tıkla veya sürükle", + "Add": "Ekle", + "By clicking on message parts you will select a block and content options, if any, will show here": "Mesaj parçalarına tıklayarak blok ve içerik seçenekleri seçeceksiniz, eğer varsa burada gösterilecektir", + "By clicking on message parts you will select a block and style options, if available, will show here": "Mesaj parçalarına tıklayarak blok ve stil seçenekleri seçeceksiniz, eğer uygunsa burada gösterilecektir", + "Click or drag files here": "Tıkla veya dosyaları buraya sürükle", + "No images uploaded, yet": "Henüz hiç resim yüklenmedi", + "Show images from the gallery": "Galerideki resimleri görüntüle", + "Loading...": "Yükleniyor...", + "Load gallery": "Galeri yükle", + "Loading gallery...": "Galeri yükleniyor...", + "The gallery is empty": "Galeri boş", + "Remove image": "Resmi kaldır", + "Open the image editing tool": "Resim düzenleme aracını aç", + "Upload a new image": "Yeni bir resim yükle", + "Drop an image here": "Buraya resim bırak", + "Drop an image here or click the upload button": "Buraya bir resim bırak veya yükle butonuna tıkla", + "Drag this image and drop it on any template image placeholder": "Bu resmi herhangi bir şablonun üzerine sürükleyip bırak", + "Gallery:": "Galeri:", + "Session images": "Geçerli oturum resimleri", + "Recents": "Son kullanılanlar", + "Remote gallery": "Galeriyi uzaktan yönet", + "Customized block.
    • In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)
    • A \"small cube\" icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.
    ": "Özelleştirilmiş blok.
    • Bu durumda, değişiklikler geçerli bloğa özeldir (aynı bölümdeki tüm bloklarda global olmak yerine)
    • A \\\"small cube\\\" ikon özelleştirme gösterilecektir. Bu ikona tıklayarak, bölüm için tanımlanan değere geri dönülür.
    ", + "Drop here blocks from the \"Blocks\" tab": "Buraya \"Bloklar\" sekmesinden blok ekle", + "Drag this handle to move the block": "Bloğu taşımak için buradan sürükle", + "Move this block upside": "Bu bloğu yukarıya taşı", + "Move this block downside": "Bu bloğu aşağıya taşı", + "Delete block": "Bloğu sil", + "Duplicate block": "Bloğu kopyala", + "Switch block variant": "Block içerisindeki alan yerlerini değiştir", + "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Tema Renkleri,Standart Renkler,Web Renkleri,Tema Renkleri,Palet Sayfasına Geri Dön,Geçmiş,Henüz bir geçmiş kaydı yok.", + "Drop here": "Buraya bırak", + "Unknown error": "Bilinmeyen hata!", + "Uploaded bytes exceed file size": "Yüklenen bayt dosya boyutunu aşıyor!", + "File type not allowed": "Dosya türüne izin verilmiyor!", + "File is too large": "Dosya çok büyük!", + "The uploaded file exceeds the post_max_size directive in php.ini": "Yüklenen dosya, php.ini dosyasındaki post_max_size değerini aşıyor!", + "File is too big": "Dosya çok büyük!", + "File is too small": "Dosya çok küçük!", + "Filetype not allowed": "Dosya türüne izin verilmiyor!", + "Maximum number of files exceeded": "Maksimum dosya sayısı aşıldı!", + "Image exceeds maximum width": "Resim maksimum genişliği aşıyor!", + "Image requires a minimum width": "Resim minimum genişliğe ulaşmadı!", + "Image exceeds maximum height": "Resim maksimum yüksekliği aşıyor!", + "Image requires a minimum height": "Resim minimum yüksekliğe ulaşmadı!", + "File upload aborted": "Dosya yükleme iptal edildi!", + "Failed to resize image": "Resim yeniden boyutlandırılamadı!", + "Unexpected upload error": "Bilinmeyen yükleme hatası!", + "Unexpected error listing files": "Dosya yüklemede bilinmeyen hata listesi!", + "__current__ of __total__": "__current__ ile ilgili __total__", + "Select from gallery": "Galeriden seç" +} \ No newline at end of file diff --git a/public/logo-badsender-white.svg b/public/logo-badsender-white.svg new file mode 100644 index 00000000..ff12588b --- /dev/null +++ b/public/logo-badsender-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/editor-icon.png b/public/media/editor-icon.png new file mode 100644 index 00000000..34fe7cfa Binary files /dev/null and b/public/media/editor-icon.png differ diff --git a/public/media/logo_badsender_154x118.png b/public/media/logo_badsender_154x118.png new file mode 100644 index 00000000..81247df0 Binary files /dev/null and b/public/media/logo_badsender_154x118.png differ diff --git a/public/media/logo_blanc.png b/public/media/logo_blanc.png new file mode 100755 index 00000000..190bf0ff Binary files /dev/null and b/public/media/logo_blanc.png differ diff --git a/public/media/logo_lepatron.png b/public/media/logo_lepatron.png new file mode 100644 index 00000000..066a6e41 Binary files /dev/null and b/public/media/logo_lepatron.png differ diff --git a/public/skins/gray-flat/Variables.less b/public/skins/gray-flat/Variables.less new file mode 100644 index 00000000..d7f76799 --- /dev/null +++ b/public/skins/gray-flat/Variables.less @@ -0,0 +1,196 @@ +// Variables +// Syntax: -()--()-(); +// Example: @btn-primary-bg-hover-hlight; + +@prefix: mce; + +// Default font +@font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-size: 14px; +@line-height: 20px; +@has-gradients: false; +@has-radius: true; +@has-boxshadow: false; +@has-button-borders: true; + +// Text colors +@text: #333333; +@text-inverse: #ffffff; +@text-disabled: #aaaaaa; +@text-shadow: 0 1px 1px hsla(hue(@text-inverse), saturation(@text-inverse), lightness(@text-inverse), 0.75); +@text-error: #aa0000; + +// Button +@btn-text: #ffffff; +@btn-text-shadow: #333332; +@btn-border-top: rgba(0,0,0,0.1); +@btn-border-right: rgba(0,0,0,0.1); +@btn-border-bottom: rgba(0,0,0,0.25); +@btn-border-left: rgba(0,0,0,0.25); +@btn-caret-border: @btn-text; +@btn-text-disabled: @text-disabled; +@btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-shadow-active: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-disabled-opacity: 0.4; +@btn-bg: #333332; +@btn-bg-hlight: #333332; +@btn-bg-hover: darken(@btn-bg, 5%); +@btn-bg-hlight-hover: darken(@btn-bg-hlight, 5%); +@btn-border-hover: darken(@btn-bg, 20%); +@btn-border-active: darken(@btn-bg, 20%); +@btn-padding: 4px 8px; + +@btn-primary-bg: #333332; +@btn-primary-bg-hlight: #333332; +@btn-primary-bg-hover: darken(@btn-primary-bg, 5%); +@btn-primary-bg-hover-hlight: darken(@btn-primary-bg-hlight, 5%); +@btn-primary-text: #ffffff; +@btn-primary-text-shadow: #333333; +@btn-primary-border-top: mix(@btn-border-top, @btn-primary-bg, 50%); +@btn-primary-border-right: mix(@btn-border-right, @btn-primary-bg, 50%); +@btn-primary-border-bottom: mix(@btn-border-bottom, @btn-primary-bg, 50%); +@btn-primary-border-left: mix(@btn-border-left, @btn-primary-bg, 50%); +@btn-primary-border: transparent; +@btn-primary-border-hover: transparent; + +// Button group +@btn-group-border-width: 1px; + +// Menu +@menuitem-text: #333333; +@menu-bg: #ffffff; +@menu-margin: -1px 0 0; +@menu-border: rgba(0,0,0,0.2); +@menubar-border: mix(@panel-border, @panel-bg, 60%); +@menuitem-text-inverse: #ffffff; +@menubar-bg-active: darken(@btn-bg, 10%); +@menuitem-bg-hover: #0081C2; +@menuitem-bg-selected: #333332; +@menuitem-bg-selected-hlight: #333332; +@menuitem-bg-disabled: #CCC; +@menuitem-caret: @menuitem-text; +@menuitem-caret-selected: @menuitem-text-inverse; +@menuitem-separator-top: #cbcbcb; +@menuitem-separator-bottom: #ffffff; +@menuitem-bg-active: #666666; +@menuitem-text-active: #ffffff; +@menuitem-preview-border-active: #aaaaaa; +@menubar-menubtn-text: ; + +// Panel +@panel-border: #9e9e9e; +@panel-bg: #f1eee6; +@panel-bg-hlight: #f1eee6; + +// Tabs +@tab-border: #c5c5c5; +@tab-bg: #e3e3e3; +@tab-bg-hover: #fdfdfd; +@tab-bg-active: #fdfdfd; +@tabs-bg: #ffffff; + +// Tooltip +@tooltip-bg: #000; +@tooltip-text: white; +@tooltip-font-size: 11px; + +// Notification +@notification-font-size: 14px; +@notification-bg: #f0f0f0; +@notification-border: #cccccc; +@notification-text: #333333; +@notification-success-bg: #dff0d8; +@notification-success-border: #d6e9c6; +@notification-success-text: #3c763d; +@notification-info-bg: #d9edf7; +@notification-info-border: #779ecb; +@notification-info-text: #31708f; +@notification-warning-bg: #fcf8e3; +@notification-warning-border: #faebcc; +@notification-warning-text: #8a6d3b; +@notification-error-bg: #f2dede; +@notification-error-border: #ebccd1; +@notification-error-text: #a94442; + +// Window +@window-border: #c4c4c4; +@window-head-border: @window-border; +@window-head-close: mix(@text, @window-bg, 60%); +@window-head-close-hover: mix(@text, @window-bg, 40%); +@window-foot-border: @window-border; +@window-foot-bg: @window-bg; +@window-fullscreen-bg: #FFF; +@window-modalblock-bg: #000; +@window-modalblock-opacity: 0.3; +@window-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +@window-bg: #ffffff; +@window-title-font-size: 20px; + +// Popover +@popover-bg: @window-bg; +@popover-arrow-width: 10px; +@popover-arrow: @window-bg; +@popover-arrow-outer-width: @popover-arrow-width + 1; +@popover-arrow-outer: rgba(0, 0, 0, 0.25); + +// Floatpanel +@floatpanel-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + +// Checkbox +@checkbox-bg: @btn-bg; +@checkbox-bg-hlight: @btn-bg-hlight; +@checkbox-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@checkbox-border: #c5c5c5; +@checkbox-border-focus: #59a5e1; + +// Path +@path-text: @text; +@path-bg-focus: #666; +@path-text-focus: #fff; + +// Textbox +@textbox-text-placeholder: #aaa; +@textbox-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +@textbox-bg: #ffffff; +@textbox-border: #c5c5c5; +@textbox-border-focus: #59a5e1; + +// Selectbox +@selectbox-bg: @textbox-bg; +@selectbox-border: @textbox-border; + +// Throbber +@throbber-bg: #fff url('img/loader.gif') no-repeat center center; + +// Combobox +@combobox-border: @textbox-border; + +// Colorpicker +@colorpicker-border: @textbox-border; +@colorpicker-hue-bg: #fff; +@colorpicker-hue-border: #333; + +// Grid +@grid-bg-active: @menuitem-bg-active; +@grid-border-active: #a1a1a1; +@grid-border: #d6d6d6; + +// Misc +@colorbtn-backcolor-bg: #bbbbbb; +@iframe-border: @panel-border; + +// Slider +@slider-border: #aaaaaa; +@slider-bg: #eeeeee; +@slider-handle-border: #bbbbbb; +@slider-handle-bg: #dddddd; + +// Progress +@progress-border: #cccccc; +@progress-bar-bg: #dfdfdf; +@progress-bar-bg-hlight: #cccccc; +@progress-text: #333333; +@progress-text-shadow: #ffffff; + +// Flow layout +@flow-layout-spacing: 2px; diff --git a/public/skins/gray-flat/content.inline.min.css b/public/skins/gray-flat/content.inline.min.css new file mode 100644 index 00000000..3597a011 --- /dev/null +++ b/public/skins/gray-flat/content.inline.min.css @@ -0,0 +1 @@ +.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-preview-object[data-mce-selected] .mce-shim{display:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3a3a3a;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #f00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #bbb}td[data-mce-selected],th[data-mce-selected]{background-color:#39f !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7acaff}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1} \ No newline at end of file diff --git a/public/skins/gray-flat/content.min.css b/public/skins/gray-flat/content.min.css new file mode 100644 index 00000000..3597a011 --- /dev/null +++ b/public/skins/gray-flat/content.min.css @@ -0,0 +1 @@ +.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-preview-object[data-mce-selected] .mce-shim{display:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3a3a3a;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #f00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #bbb}td[data-mce-selected],th[data-mce-selected]{background-color:#39f !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7acaff}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1} \ No newline at end of file diff --git a/public/skins/gray-flat/fonts/readme.md b/public/skins/gray-flat/fonts/readme.md new file mode 100644 index 00000000..fa5d6394 --- /dev/null +++ b/public/skins/gray-flat/fonts/readme.md @@ -0,0 +1 @@ +Icons are generated and provided by the http://icomoon.io service. diff --git a/public/skins/gray-flat/fonts/tinymce-small.eot b/public/skins/gray-flat/fonts/tinymce-small.eot new file mode 100644 index 00000000..b144ba0b Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce-small.eot differ diff --git a/public/skins/gray-flat/fonts/tinymce-small.json b/public/skins/gray-flat/fonts/tinymce-small.json new file mode 100644 index 00000000..cbc985b2 --- /dev/null +++ b/public/skins/gray-flat/fonts/tinymce-small.json @@ -0,0 +1,1277 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M704 832v-37.004c151.348-61.628 256-193.82 256-346.996 0-212.078-200.576-384-448-384s-448 171.922-448 384c0 153.176 104.654 285.368 256 346.996v37.004h-192l-64-96v224h320v-222.812c-100.9-51.362-170.666-161.54-170.666-289.188 0-176.732 133.718-320 298.666-320 164.948 0 298.666 143.268 298.666 320 0 127.648-69.766 237.826-170.666 289.188v222.812h320v-224l-64 96h-192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57376, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 0, + "order": 1, + "prevSize": 32, + "code": 57376, + "name": "charmap", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M256 64v896l256-256 256 256v-896h-512zM704 789.49l-192-192-192 192v-661.49h384v661.49z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57363, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 1, + "order": 2, + "prevSize": 32, + "code": 57363, + "name": "bookmark", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM800 838c-9.724 0-19.45-3.708-26.87-11.13l-128-127.998c-14.844-14.84-14.844-38.898 0-53.738 14.84-14.844 38.896-14.844 53.736 0l128 128c14.844 14.84 14.844 38.896 0 53.736-7.416 7.422-17.142 11.13-26.866 11.13zM608 960c-17.674 0-32-14.326-32-32v-128c0-17.674 14.326-32 32-32s32 14.326 32 32v128c0 17.674-14.326 32-32 32zM928 640h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32h128c17.674 0 32 14.326 32 32s-14.326 32-32 32zM224 186c9.724 0 19.45 3.708 26.87 11.13l128 128c14.842 14.84 14.842 38.898 0 53.738-14.84 14.844-38.898 14.844-53.738 0l-128-128c-14.842-14.84-14.842-38.898 0-53.738 7.418-7.422 17.144-11.13 26.868-11.13zM416 64c17.674 0 32 14.326 32 32v128c0 17.674-14.326 32-32 32s-32-14.326-32-32v-128c0-17.674 14.326-32 32-32zM96 384h128c17.674 0 32 14.326 32 32s-14.326 32-32 32h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57362, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 2, + "order": 3, + "prevSize": 32, + "code": 57362, + "name": "link", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM352 710c-9.724 0-19.45-3.71-26.87-11.128-14.84-14.84-14.84-38.898 0-53.738l320-320c14.84-14.84 38.896-14.84 53.736 0 14.844 14.84 14.844 38.9 0 53.74l-320 320c-7.416 7.416-17.142 11.126-26.866 11.126z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57361, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 3, + "order": 4, + "prevSize": 32, + "code": 57361, + "name": "unlink", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M576 281.326v-217.326l336.002 336-336.002 336v-222.096c-390.906-9.17-315 247.096-256 446.096-288-320-212.092-690.874 256-678.674z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57360, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 4, + "order": 5, + "prevSize": 32, + "code": 57360, + "name": "redo", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M704 960c59-199 134.906-455.266-256-446.096v222.096l-336.002-336 336.002-336v217.326c468.092-12.2 544 358.674 256 678.674z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57359, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 5, + "order": 6, + "prevSize": 32, + "code": 57359, + "name": "undo", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M256.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.954 10.578-19.034 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498zM768.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.956 10.578-19.036 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57358, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 6, + "order": 7, + "prevSize": 32, + "code": 57358, + "name": "blockquote", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM384 576h576v128h-576zM384 384h576v128h-576zM64 768h896v128h-896zM64 384l224 160-224 160z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57356, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 7, + "order": 8, + "prevSize": 32, + "code": 57356, + "name": "indent", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h576v128h-576zM64 384h576v128h-576zM64 768h896v128h-896zM960 384l-224 160 224 160z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57357, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 8, + "order": 9, + "prevSize": 32, + "code": 57357, + "name": "outdent", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM320 530v-146h-64v-320h-128v64h64v256h-64v64h128v50l-128 60v146h128v64h-128v64h128v64h-128v64h192v-320h-128v-50z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57355, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 9, + "order": 10, + "prevSize": 32, + "code": 57355, + "name": "numlist", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM128 192c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 512c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 832c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57354, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 10, + "order": 11, + "prevSize": 32, + "code": 57354, + "name": "bullist", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M888 384h-56v-256h64v-64h-320v64h64v256h-256v-256h64v-64h-320v64h64v256h-56c-39.6 0-72 32.4-72 72v432c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-312h128v312c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-432c0-39.6-32.4-72-72-72zM348 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM860 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57353, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 11, + "order": 12, + "prevSize": 32, + "code": 57353, + "name": "searchreplace", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h384l192-192v-384h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM704 869.49v-101.49h101.49l-101.49 101.49zM832 704h-192v192h-256v-448h448v256z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57352, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 12, + "order": 13, + "prevSize": 32, + "code": 57352, + "name": "paste", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M832 320h-192v-64l-192-192h-384v704h384v192h576v-448l-192-192zM832 410.51l101.49 101.49h-101.49v-101.49zM448 154.51l101.49 101.49h-101.49v-101.49zM128 128h256v192h192v384h-448v-576zM960 896h-448v-128h128v-384h128v192h192v320z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57393, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 13, + "order": 14, + "prevSize": 32, + "code": 57393, + "name": "copy", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M960 512h-265.876c-50.078-35.42-114.43-54.86-182.124-54.86-89.206 0-164.572-50.242-164.572-109.712 0-59.47 75.366-109.714 164.572-109.714 75.058 0 140.308 35.576 159.12 82.286h113.016c-7.93-50.644-37.58-97.968-84.058-132.826-50.88-38.16-117.676-59.174-188.078-59.174-70.404 0-137.196 21.014-188.074 59.174-54.788 41.090-86.212 99.502-86.212 160.254s31.424 119.164 86.212 160.254c1.956 1.466 3.942 2.898 5.946 4.316h-265.872v64h512.532c58.208 17.106 100.042 56.27 100.042 100.572 0 59.468-75.368 109.71-164.572 109.71-75.060 0-140.308-35.574-159.118-82.286h-113.016c7.93 50.64 37.582 97.968 84.060 132.826 50.876 38.164 117.668 59.18 188.072 59.18 70.402 0 137.198-21.016 188.074-59.174 54.79-41.090 86.208-99.502 86.208-160.254 0-35.298-10.654-69.792-30.294-100.572h204.012v-64z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57389, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 19, + "order": 15, + "prevSize": 32, + "code": 57389, + "name": "strikethrough", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M192 832h576v64h-576v-64zM640 128v384c0 31.312-14.7 61.624-41.39 85.352-30.942 27.502-73.068 42.648-118.61 42.648-45.544 0-87.668-15.146-118.608-42.648-26.692-23.728-41.392-54.040-41.392-85.352v-384h-128v384c0 141.382 128.942 256 288 256s288-114.618 288-256v-384h-128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57388, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 20, + "order": 16, + "prevSize": 32, + "code": 57388, + "name": "underline", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M832 128v64h-144l-256 640h144v64h-448v-64h144l256-640h-144v-64h448z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57387, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 21, + "order": 17, + "prevSize": 32, + "code": 57387, + "name": "italic", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M625.442 494.182c48.074-38.15 78.558-94.856 78.558-158.182 0-114.876-100.29-208-224-208h-224v768h288c123.712 0 224-93.124 224-208 0-88.196-59.118-163.562-142.558-193.818zM384 304c0-26.51 21.49-48 48-48h67.204c42.414 0 76.796 42.98 76.796 96s-34.382 96-76.796 96h-115.204v-144zM547.2 768h-115.2c-26.51 0-48-21.49-48-48v-144h163.2c42.418 0 76.8 42.98 76.8 96s-34.382 96-76.8 96z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57386, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 22, + "order": 18, + "prevSize": 32, + "code": 57386, + "name": "bold", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M850.746 242.746l-133.492-133.49c-24.888-24.892-74.054-45.256-109.254-45.256h-416c-35.2 0-64 28.8-64 64v768c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-544c0-35.2-20.366-84.364-45.254-109.254zM805.49 287.998c6.792 6.796 13.792 19.162 18.894 32.002h-184.384v-184.386c12.84 5.1 25.204 12.1 32 18.896l133.49 133.488zM831.884 896h-639.77c-0.040-0.034-0.082-0.076-0.114-0.116v-767.77c0.034-0.040 0.076-0.082 0.114-0.114h383.886v256h256v511.884c-0.034 0.040-0.076 0.082-0.116 0.116z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57345, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 23, + "order": 19, + "prevSize": 32, + "code": 57345, + "name": "newdocument", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M960 880v-591.938l-223.938-224.062h-592.062c-44.182 0-80 35.816-80 80v736c0 44.184 35.818 80 80 80h736c44.184 0 80-35.816 80-80zM576 192h64v192h-64v-192zM704 832h-384v-255.882c0.034-0.042 0.076-0.082 0.116-0.118h383.77c0.040 0.036 0.082 0.076 0.116 0.118l-0.002 255.882zM832 832h-64v-256c0-35.2-28.8-64-64-64h-384c-35.2 0-64 28.8-64 64v256h-64v-640h64v192c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-171.010l128 128.072v490.938z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57344, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 24, + "order": 20, + "prevSize": 32, + "code": 57344, + "name": "save", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M64 192v704h896v-704h-896zM384 640v-128h256v128h-256zM640 704v128h-256v-128h256zM640 320v128h-256v-128h256zM320 320v128h-192v-128h192zM128 512h192v128h-192v-128zM704 512h192v128h-192v-128zM704 448v-128h192v128h-192zM128 704h192v128h-192v-128zM704 832v-128h192v128h-192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57371, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 25, + "order": 21, + "prevSize": 32, + "code": 57371, + "name": "table", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M512 140c99.366 0 192.782 38.694 263.042 108.956s108.958 163.678 108.958 263.044-38.696 192.782-108.958 263.042-163.676 108.958-263.042 108.958-192.782-38.696-263.044-108.958-108.956-163.676-108.956-263.042 38.694-192.782 108.956-263.044 163.678-108.956 263.044-108.956zM512 64c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448v0zM320 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM576 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 656c-101.84 0-192.56-36.874-251.166-94.328 23.126 117.608 126.778 206.328 251.166 206.328 124.388 0 228.040-88.72 251.168-206.328-58.608 57.454-149.328 94.328-251.168 94.328z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57377, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 26, + "order": 22, + "prevSize": 32, + "code": 57377, + "name": "emoticons", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M480 384l-192-192 128-128h-352v352l128-128 192 192zM640 480l192-192 128 128v-352h-352l128 128-192 192zM544 640l192 192-128 128h352v-352l-128 128-192-192zM384 544l-192 192-128-128v352h352l-128-128 192-192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57379, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 27, + "order": 23, + "prevSize": 32, + "code": 57379, + "name": "fullscreen", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M64 448h896v128h-896z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57372, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 28, + "order": 24, + "prevSize": 32, + "code": 57372, + "name": "hr", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M64 768h512v128h-512v-128zM768 192h-220.558l-183.766 512h-132.288l183.762-512h-223.15v-128h576v128zM929.774 896l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774-62.226 62.226z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57373, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 29, + "order": 25, + "prevSize": 32, + "code": 57373, + "name": "removefromat", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M256 128h512v128h-512v-128zM896 320h-768c-35.2 0-64 28.8-64 64v256c0 35.2 28.796 64 64 64h128v192h512v-192h128c35.2 0 64-28.8 64-64v-256c0-35.2-28.8-64-64-64zM704 832h-384v-256h384v256zM910.4 416c0 25.626-20.774 46.4-46.398 46.4s-46.402-20.774-46.402-46.4 20.778-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57378, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 30, + "order": 26, + "prevSize": 32, + "code": 57378, + "name": "print", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M384 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57390, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 31, + "order": 27, + "prevSize": 32, + "code": 57390, + "name": "visualchars", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M448 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM64 896l224-192-224-192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57391, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 32, + "order": 28, + "prevSize": 32, + "code": 57391, + "name": "ltr", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M416 704l-192-192 192-192-64-64-256 256 256 256zM672 256l-64 64 192 192-192 192 64 64 256-256z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57367, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 38, + "order": 29, + "prevSize": 32, + "code": 57367, + "name": "code", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M448 704h128v128h-128v-128zM704 256c35.346 0 64 28.654 64 64v166l-228 154h-92v-64l192-128v-64h-320v-128h384zM512 64c-119.666 0-232.166 46.6-316.784 131.216-84.614 84.618-131.216 197.118-131.216 316.784 0 119.664 46.602 232.168 131.216 316.784 84.618 84.616 197.118 131.216 316.784 131.216 119.664 0 232.168-46.6 316.784-131.216 84.616-84.616 131.216-197.12 131.216-316.784 0-119.666-46.6-232.166-131.216-316.784-84.616-84.616-197.12-131.216-316.784-131.216z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57366, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 39, + "order": 30, + "prevSize": 32, + "code": 57366, + "name": "help", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM896 831.884c-0.012 0.014-0.030 0.028-0.042 0.042l-191.958-319.926-160 128-224-288-191.968 479.916c-0.010-0.010-0.022-0.022-0.032-0.032v-639.77c0.034-0.040 0.076-0.082 0.114-0.114h767.77c0.040 0.034 0.082 0.076 0.116 0.116v639.768zM640 352c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57364, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 40, + "order": 31, + "prevSize": 32, + "code": 57364, + "name": "image", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM256 832h-128v-128h128v128zM256 576h-128v-128h128v128zM256 320h-128v-128h128v128zM704 832h-384v-640h384v640zM896 832h-128v-128h128v128zM896 576h-128v-128h128v128zM896 320h-128v-128h128v128zM384 320v384l288-192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57365, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 41, + "order": 32, + "prevSize": 32, + "code": 57365, + "name": "media", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M77.798 304.624l81.414 50.882c50.802-81.114 128.788-143.454 221.208-174.246l-30.366-91.094c-113.748 37.898-209.728 114.626-272.256 214.458zM673.946 90.166l-30.366 91.094c92.422 30.792 170.404 93.132 221.208 174.248l81.412-50.882c-62.526-99.834-158.506-176.562-272.254-214.46zM607.974 704.008c-4.808 0-9.692-1.090-14.286-3.386l-145.688-72.844v-211.778c0-17.672 14.328-32 32-32s32 14.328 32 32v172.222l110.31 55.156c15.806 7.902 22.214 27.124 14.31 42.932-5.604 11.214-16.908 17.696-28.646 17.698zM512 192c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384 0-212.078-171.922-384-384-384zM512 864c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 159.058-128.942 288-288 288z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57368, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 42, + "order": 33, + "prevSize": 32, + "code": 57368, + "name": "insertdatetime", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M64 455.746c45.318-49.92 97.162-92.36 153.272-125.124 90.332-52.744 192.246-80.622 294.728-80.622 102.48 0 204.396 27.878 294.726 80.624 56.112 32.764 107.956 75.204 153.274 125.124v-117.432c-33.010-28.118-68.124-53.14-104.868-74.594-105.006-61.314-223.658-93.722-343.132-93.722s-238.128 32.408-343.134 93.72c-36.742 21.454-71.856 46.478-104.866 74.596v117.43zM512 320c-183.196 0-345.838 100.556-448 256 102.162 155.448 264.804 256 448 256 183.196 0 345.838-100.552 448-256-102.162-155.444-264.804-256-448-256zM512 512c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.348 28.654-64 64-64s64 28.652 64 64zM728.066 696.662c-67.434 39.374-140.128 59.338-216.066 59.338s-148.632-19.964-216.066-59.338c-51.554-30.104-98.616-71.31-138.114-120.662 39.498-49.35 86.56-90.558 138.116-120.66 13.276-7.752 26.758-14.74 40.426-20.982-10.512 23.742-16.362 50.008-16.362 77.642 0 106.040 85.962 192 192 192 106.040 0 192-85.96 192-192 0-27.634-5.85-53.9-16.36-77.642 13.668 6.244 27.15 13.23 40.426 20.982 51.554 30.102 98.616 71.31 138.116 120.66-39.498 49.352-86.56 90.558-138.116 120.662z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57369, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 43, + "order": 34, + "prevSize": 32, + "code": 57369, + "name": "preview", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M651.168 283.834c-24.612-81.962-28.876-91.834-107.168-91.834h-64c-79.618 0-82.664 10.152-108.418 96 0 0.002 0 0.002-0.002 0.004l-143.998 479.996h113.636l57.6-192h226.366l57.6 192h113.63l-145.246-484.166zM437.218 448l38.4-136c10.086-33.618 36.38-30 36.38-30s26.294-3.618 36.38 30h0.004l38.4 136h-149.564z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57370, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 44, + "order": 35, + "prevSize": 32, + "code": 57370, + "name": "forecolor", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57384, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 45, + "order": 36, + "prevSize": 32, + "code": 57384, + "name": "restoredraft", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57346, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 46, + "order": 37, + "prevSize": 32, + "code": 57346, + "name": "fullpage", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57375, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 47, + "order": 38, + "prevSize": 32, + "code": 57375, + "name": "superscript", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57374, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 48, + "order": 39, + "prevSize": 32, + "code": 57374, + "name": "subscript", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h576v-576h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM832 896h-448v-448h448v448zM448 512v128h32l32-64h64v192h-48v64h160v-64h-48v-192h64l32 64h32v-128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pastetext" + ], + "defaultCode": 57397, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 49, + "order": 40, + "prevSize": 32, + "code": 57397, + "name": "pastetext", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "resize", + "dots" + ], + "defaultCode": 57394, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 50, + "order": 41, + "prevSize": 32, + "code": 57394, + "name": "resize", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M928 128h-416l-32-64h-352l-64 128h896zM840.34 704h87.66l32-448h-896l64 640h356.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM874.996 849.75l-134.496-110.692c17.454-28.922 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l110.692 134.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM576 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "browse" + ], + "defaultCode": 57396, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 51, + "order": 42, + "prevSize": 32, + "code": 57396, + "name": "browse", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M864.408 670.132c-46.47-46.47-106.938-68.004-161.082-62.806l-63.326-63.326 192-192c0 0 128-128 0-256l-320 320-320-320c-128 128 0 256 0 256l192 192-63.326 63.326c-54.144-5.198-114.61 16.338-161.080 62.806-74.98 74.98-85.112 186.418-22.626 248.9 62.482 62.482 173.92 52.354 248.9-22.626 46.47-46.468 68.002-106.938 62.806-161.080l63.326-63.326 63.328 63.328c-5.196 54.144 16.336 114.61 62.806 161.078 74.978 74.98 186.418 85.112 248.898 22.626 62.488-62.482 52.356-173.918-22.624-248.9zM353.124 758.578c-2.212 24.332-15.020 49.826-35.14 69.946-22.212 22.214-51.080 35.476-77.218 35.476-10.524 0-25.298-2.228-35.916-12.848-21.406-21.404-17.376-73.132 22.626-113.136 22.212-22.214 51.080-35.476 77.218-35.476 10.524 0 25.298 2.228 35.916 12.848 13.112 13.11 13.47 32.688 12.514 43.19zM512 608c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64zM819.152 851.152c-10.62 10.62-25.392 12.848-35.916 12.848-26.138 0-55.006-13.262-77.218-35.476-20.122-20.12-32.928-45.614-35.138-69.946-0.958-10.502-0.6-30.080 12.514-43.192 10.618-10.622 25.39-12.848 35.916-12.848 26.136 0 55.006 13.262 77.216 35.474 40.004 40.008 44.032 91.736 22.626 113.14z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57351, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 14, + "order": 43, + "prevSize": 32, + "code": 57351, + "name": "cut", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h896v128h-896zM64 768h896v128h-896z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57350, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 15, + "order": 44, + "prevSize": 32, + "code": 57350, + "name": "alignjustify", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM256 384h512v128h-512zM256 768h512v128h-512z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57348, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 16, + "order": 45, + "prevSize": 32, + "code": 57348, + "name": "aligncenter", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM384 384h576v128h-576zM384 768h576v128h-576z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57349, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 17, + "order": 46, + "prevSize": 32, + "code": 57349, + "name": "alignright", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h576v128h-576zM64 768h576v128h-576z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57347, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 18, + "order": 47, + "prevSize": 32, + "code": 57347, + "name": "alignleft", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M320 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM960 512l-224 192 224 192z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57392, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 33, + "order": 48, + "prevSize": 32, + "code": 57392, + "name": "rtl", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M512 384h128v64h-128zM512 768h128v64h-128zM576 576h128v64h-128zM768 576v192h-64v64h128v-256zM384 576h128v64h-128zM320 768h128v64h-128zM320 384h128v64h-128zM192 192v256h64v-192h64v-64zM704 448h128v-256h-64v192h-64zM64 64v896h896v-896h-896zM896 896h-768v-768h768v768zM192 576v256h64v-192h64v-64zM576 192h128v64h-128zM384 192h128v64h-128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57382, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 34, + "order": 49, + "prevSize": 32, + "code": 57382, + "name": "template", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M816 64l16 384h-640l16-384h32l16 320h512l16-320h32zM208 960l-16-320h640l-16 320h-32l-16-256h-512l-16 256h-32zM64 512h128v64h-128zM256 512h128v64h-128zM448 512h128v64h-128zM640 512h128v64h-128zM832 512h128v64h-128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57383, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 35, + "order": 50, + "prevSize": 32, + "code": 57383, + "name": "pagebreak", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M960 128v-64h-192c-35.202 0-64 28.8-64 64v320c0 15.856 5.858 30.402 15.496 41.614l-303.496 260.386-142-148-82 70 224 288 416-448h128v-64h-192v-320h192zM256 512h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192h128v192zM128 256v-128h128v128h-128zM640 448v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64zM448 128h128v128h-128v-128zM448 320h128v128h-128v-128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57380, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 36, + "order": 51, + "prevSize": 32, + "code": 57380, + "name": "spellcheck", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M448 512h-128v-128h128v-128h128v128h128v128h-128v128h-128v-128zM960 576v320h-896v-320h128v192h640v-192h128z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57381, + "grid": 0 + }, + "attrs": [], + "properties": { + "id": 37, + "order": 52, + "prevSize": 32, + "code": 57381, + "name": "nonbreaking", + "ligatures": "" + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M256 352v-128c0-53.020 42.98-96 96-96h32v-128h-32c-123.712 0-224 100.288-224 224v128c0 53.020-42.98 96-96 96h-32v128h32c53.020 0 96 42.98 96 96v128c0 123.71 100.288 224 224 224h32v-128h-32c-53.020 0-96-42.98-96-96v-128c0-62.684-25.758-119.342-67.254-160 41.496-40.658 67.254-97.316 67.254-160z", + "M1024 352v-128c0-53.020-42.98-96-96-96h-32v-128h32c123.71 0 224 100.288 224 224v128c0 53.020 42.98 96 96 96h32v128h-32c-53.020 0-96 42.98-96 96v128c0 123.71-100.29 224-224 224h-32v-128h32c53.020 0 96-42.98 96-96v-128c0-62.684 25.758-119.342 67.254-160-41.496-40.658-67.254-97.316-67.254-160z", + "M768 320.882c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M640 511.118c-70.692 0-128 57.308-128 128 0 68.732 32 123.216 130.156 127.852-29.19 41.126-73.156 57.366-130.156 62.7v76c0 0 256 22.332 256-266.55-0.25-70.694-57.306-128.002-128-128.002z" + ], + "width": 1280, + "attrs": [], + "isMulticolor": false, + "tags": [ + "code", + "semicolon", + "curly-braces" + ], + "grid": 16 + }, + "attrs": [], + "properties": { + "order": 1, + "id": 0, + "prevSize": 16, + "code": 58883, + "name": "codesample" + }, + "setIdx": 1, + "setId": 1, + "iconIdx": 0 + } + ], + "height": 1024, + "metadata": { + "name": "tinymce-small" + }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "tinymce-small", + "majorVersion": 1, + "minorVersion": 0 + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "showMetrics": false, + "showMetadata": false, + "showVersion": false, + "embed": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 + }, + "historySize": 100, + "showCodes": true + } +} \ No newline at end of file diff --git a/public/skins/gray-flat/fonts/tinymce-small.svg b/public/skins/gray-flat/fonts/tinymce-small.svg new file mode 100644 index 00000000..a9076ca8 --- /dev/null +++ b/public/skins/gray-flat/fonts/tinymce-small.svg @@ -0,0 +1,63 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/skins/gray-flat/fonts/tinymce-small.ttf b/public/skins/gray-flat/fonts/tinymce-small.ttf new file mode 100644 index 00000000..a983e2dc Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce-small.ttf differ diff --git a/public/skins/gray-flat/fonts/tinymce-small.woff b/public/skins/gray-flat/fonts/tinymce-small.woff new file mode 100644 index 00000000..d8962df7 Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce-small.woff differ diff --git a/public/skins/gray-flat/fonts/tinymce.eot b/public/skins/gray-flat/fonts/tinymce.eot new file mode 100644 index 00000000..8838c8dc Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce.eot differ diff --git a/public/skins/gray-flat/fonts/tinymce.json b/public/skins/gray-flat/fonts/tinymce.json new file mode 100644 index 00000000..2301beb7 --- /dev/null +++ b/public/skins/gray-flat/fonts/tinymce.json @@ -0,0 +1,1972 @@ +{ + "selection": [ + { + "order": 0, + "id": 0, + "prevSize": 32, + "code": 58882, + "name": "invert", + "tempChar": "" + }, + { + "id": 0, + "order": 0, + "prevSize": 32, + "code": 57396, + "name": "browse", + "ligatures": "", + "tempChar": "" + }, + { + "id": 1, + "order": 0, + "prevSize": 32, + "code": 57394, + "name": "resize", + "ligatures": "", + "tempChar": "" + }, + { + "id": 2, + "order": 0, + "prevSize": 32, + "code": 57393, + "name": "copy", + "ligatures": "", + "tempChar": "" + }, + { + "id": 3, + "order": 0, + "prevSize": 32, + "code": 57392, + "name": "rtl", + "ligatures": "", + "tempChar": "" + }, + { + "id": 4, + "order": 0, + "prevSize": 32, + "code": 57391, + "name": "ltr", + "ligatures": "", + "tempChar": "" + }, + { + "id": 5, + "order": 0, + "prevSize": 32, + "code": 57390, + "name": "visualchars", + "ligatures": "", + "tempChar": "" + }, + { + "id": 6, + "order": 0, + "prevSize": 32, + "code": 57389, + "name": "strikethrough", + "ligatures": "", + "tempChar": "" + }, + { + "id": 7, + "order": 0, + "prevSize": 32, + "code": 57388, + "name": "underline", + "ligatures": "", + "tempChar": "" + }, + { + "id": 8, + "order": 0, + "prevSize": 32, + "code": 57387, + "name": "italic", + "ligatures": "", + "tempChar": "" + }, + { + "id": 9, + "order": 0, + "prevSize": 32, + "code": 57386, + "name": "bold", + "ligatures": "", + "tempChar": "" + }, + { + "id": 11, + "order": 0, + "prevSize": 32, + "code": 57384, + "name": "restoredraft", + "ligatures": "", + "tempChar": "" + }, + { + "id": 12, + "order": 0, + "prevSize": 32, + "code": 57383, + "name": "pagebreak", + "ligatures": "", + "tempChar": "" + }, + { + "id": 13, + "order": 0, + "prevSize": 32, + "code": 57382, + "name": "template", + "ligatures": "", + "tempChar": "" + }, + { + "id": 14, + "order": 0, + "prevSize": 32, + "code": 57381, + "name": "nonbreaking", + "ligatures": "", + "tempChar": "" + }, + { + "id": 15, + "order": 0, + "prevSize": 32, + "code": 57380, + "name": "spellchecker", + "ligatures": "", + "tempChar": "" + }, + { + "id": 19, + "order": 0, + "prevSize": 32, + "code": 57376, + "name": "charmap", + "ligatures": "", + "tempChar": "" + }, + { + "id": 20, + "order": 0, + "prevSize": 32, + "code": 57375, + "name": "sup", + "ligatures": "", + "tempChar": "" + }, + { + "id": 21, + "order": 0, + "prevSize": 32, + "code": 57374, + "name": "sub", + "ligatures": "", + "tempChar": "" + }, + { + "id": 22, + "order": 0, + "prevSize": 32, + "code": 57373, + "name": "removeformat", + "ligatures": "", + "tempChar": "" + }, + { + "id": 23, + "order": 0, + "prevSize": 32, + "code": 57372, + "name": "hr", + "ligatures": "", + "tempChar": "" + }, + { + "id": 24, + "order": 0, + "prevSize": 32, + "code": 57371, + "name": "table", + "ligatures": "", + "tempChar": "" + }, + { + "id": 25, + "order": 0, + "prevSize": 32, + "code": 57370, + "name": "forecolor", + "ligatures": "", + "tempChar": "" + }, + { + "id": 26, + "order": 0, + "prevSize": 32, + "code": 57369, + "name": "preview", + "ligatures": "", + "tempChar": "" + }, + { + "id": 27, + "order": 0, + "prevSize": 32, + "code": 57368, + "name": "inserttime", + "ligatures": "", + "tempChar": "" + }, + { + "id": 28, + "order": 0, + "prevSize": 32, + "code": 57367, + "name": "code", + "ligatures": "", + "tempChar": "" + }, + { + "id": 29, + "order": 0, + "prevSize": 32, + "code": 57366, + "name": "help", + "ligatures": "", + "tempChar": "" + }, + { + "id": 30, + "order": 0, + "prevSize": 32, + "code": 57365, + "name": "media", + "ligatures": "", + "tempChar": "" + }, + { + "id": 31, + "order": 0, + "prevSize": 32, + "code": 57364, + "name": "image", + "ligatures": "", + "tempChar": "" + }, + { + "id": 32, + "order": 0, + "prevSize": 32, + "code": 57363, + "name": "anchor", + "ligatures": "", + "tempChar": "" + }, + { + "id": 33, + "order": 0, + "prevSize": 32, + "code": 57362, + "name": "unlink", + "ligatures": "", + "tempChar": "" + }, + { + "id": 34, + "order": 0, + "prevSize": 32, + "code": 57361, + "name": "link", + "ligatures": "", + "tempChar": "" + }, + { + "id": 38, + "order": 0, + "prevSize": 32, + "code": 57357, + "name": "outdent", + "ligatures": "", + "tempChar": "" + }, + { + "id": 39, + "order": 0, + "prevSize": 32, + "code": 57356, + "name": "indent", + "ligatures": "", + "tempChar": "" + }, + { + "id": 40, + "order": 0, + "prevSize": 32, + "code": 57355, + "name": "numlist", + "ligatures": "", + "tempChar": "" + }, + { + "id": 41, + "order": 0, + "prevSize": 32, + "code": 57354, + "name": "bullist", + "ligatures": "", + "tempChar": "" + }, + { + "id": 42, + "order": 0, + "prevSize": 32, + "code": 57353, + "name": "searchreplace", + "ligatures": "", + "tempChar": "" + }, + { + "id": 43, + "order": 0, + "prevSize": 32, + "code": 57352, + "name": "paste", + "ligatures": "", + "tempChar": "" + }, + { + "id": 44, + "order": 0, + "prevSize": 32, + "code": 57351, + "name": "cut", + "ligatures": "", + "tempChar": "" + }, + { + "id": 45, + "order": 0, + "prevSize": 32, + "code": 57350, + "name": "alignjustify", + "ligatures": "", + "tempChar": "" + }, + { + "id": 46, + "order": 0, + "prevSize": 32, + "code": 57349, + "name": "alignright", + "ligatures": "", + "tempChar": "" + }, + { + "id": 47, + "order": 0, + "prevSize": 32, + "code": 57348, + "name": "aligncenter", + "ligatures": "", + "tempChar": "" + }, + { + "id": 48, + "order": 0, + "prevSize": 32, + "code": 57347, + "name": "alignleft", + "ligatures": "", + "tempChar": "" + }, + { + "id": 49, + "order": 0, + "prevSize": 32, + "code": 57346, + "name": "fullpage", + "ligatures": "", + "tempChar": "" + }, + { + "id": 50, + "order": 0, + "prevSize": 32, + "code": 57345, + "name": "newdocument", + "ligatures": "", + "tempChar": "" + }, + { + "id": 51, + "order": 0, + "prevSize": 32, + "code": 57344, + "name": "save", + "ligatures": "", + "tempChar": "" + }, + { + "id": 52, + "order": 0, + "prevSize": 32, + "code": 57395, + "name": "checkbox", + "ligatures": "", + "tempChar": "" + }, + { + "id": 53, + "order": 0, + "prevSize": 32, + "code": 57397, + "name": "pastetext", + "ligatures": "", + "tempChar": "" + }, + { + "id": 16, + "order": 0, + "prevSize": 32, + "code": 57379, + "name": "fullscreen", + "ligatures": "", + "tempChar": "" + }, + { + "id": 17, + "order": 0, + "prevSize": 32, + "code": 57378, + "name": "print", + "ligatures": "", + "tempChar": "" + }, + { + "id": 18, + "order": 0, + "prevSize": 32, + "code": 57377, + "name": "emoticons", + "ligatures": "", + "tempChar": "" + }, + { + "id": 37, + "order": 0, + "prevSize": 32, + "code": 57358, + "name": "blockquote", + "ligatures": "", + "tempChar": "" + }, + { + "id": 36, + "order": 0, + "prevSize": 32, + "code": 57359, + "name": "undo", + "ligatures": "", + "tempChar": "" + }, + { + "id": 35, + "order": 0, + "prevSize": 32, + "code": 57360, + "name": "redo", + "ligatures": "", + "tempChar": "" + }, + { + "order": 0, + "id": 1, + "prevSize": 32, + "code": 58883, + "name": "codesample", + "tempChar": "" + }, + { + "id": 87, + "order": 0, + "prevSize": 32, + "code": 59700, + "ligatures": "droplet, color9", + "name": "drop", + "tempChar": "" + }, + { + "id": 635, + "order": 0, + "prevSize": 32, + "code": 60327, + "ligatures": "diamond2, gem2", + "name": "sharpen", + "tempChar": "" + }, + { + "id": 854, + "order": 0, + "prevSize": 32, + "code": 60628, + "ligatures": "contrast", + "name": "contrast", + "tempChar": "" + }, + { + "id": 24, + "order": 0, + "prevSize": 32, + "code": 60778, + "ligatures": "cross2, cancel3", + "name": "cross2", + "tempChar": "" + }, + { + "id": 1097, + "order": 0, + "prevSize": 32, + "code": 60921, + "ligatures": "arrow-resize2, diagonal2", + "name": "arrow-resize2", + "tempChar": "" + }, + { + "order": 0, + "id": 1, + "prevSize": 32, + "code": 58880, + "name": "gamma", + "tempChar": "" + }, + { + "order": 0, + "id": 0, + "prevSize": 32, + "code": 58881, + "name": "orientation", + "tempChar": "" + }, + { + "id": 68, + "order": 0, + "prevSize": 32, + "code": 59668, + "ligatures": "pencil7, write7", + "name": "editimage", + "tempChar": "" + }, + { + "id": 22, + "order": 0, + "prevSize": 32, + "code": 60072, + "ligatures": "rotate-ccw3, ccw4", + "name": "rotateleft", + "tempChar": "" + }, + { + "order": 0, + "id": 1679, + "prevSize": 32, + "code": 60073, + "ligatures": "rotate-cw3, cw4", + "name": "rotateright", + "tempChar": "" + }, + { + "id": 403, + "order": 0, + "prevSize": 32, + "code": 60074, + "ligatures": "flip-vertical, mirror", + "name": "flipv", + "tempChar": "" + }, + { + "id": 405, + "order": 0, + "prevSize": 32, + "code": 60076, + "ligatures": "flip-horizontal, mirror3", + "name": "fliph", + "tempChar": "" + }, + { + "id": 534, + "order": 0, + "prevSize": 32, + "code": 60213, + "ligatures": "zoom-in3, magnifier9", + "name": "zoomin", + "tempChar": "" + }, + { + "id": 535, + "order": 0, + "prevSize": 32, + "code": 60214, + "ligatures": "zoom-out3, magnifier10", + "name": "zoomout", + "tempChar": "" + }, + { + "order": 0, + "id": 1448, + "prevSize": 32, + "code": 60522, + "ligatures": "menu3, list4", + "name": "options", + "tempChar": "" + }, + { + "id": 844, + "order": 0, + "prevSize": 32, + "code": 60620, + "ligatures": "sun2, weather21", + "name": "sun", + "tempChar": "" + }, + { + "id": 855, + "order": 0, + "prevSize": 32, + "code": 60621, + "ligatures": "moon, night", + "name": "moon", + "tempChar": "" + }, + { + "id": 1056, + "order": 0, + "prevSize": 32, + "code": 60864, + "ligatures": "arrow-left, left4", + "name": "arrowleft", + "tempChar": "" + }, + { + "id": 1201, + "order": 0, + "prevSize": 32, + "code": 61048, + "ligatures": "crop, resize", + "name": "crop", + "tempChar": "" + }, + { + "id": 1680, + "order": 0, + "prevSize": 32, + "code": 58884, + "name": "tablerowprops", + "tempChar": "" + }, + { + "id": 1681, + "order": 0, + "prevSize": 32, + "code": 58885, + "name": "tablecellprops", + "tempChar": "" + }, + { + "id": 1682, + "order": 0, + "prevSize": 32, + "code": 58886, + "name": "table2", + "tempChar": "" + }, + { + "id": 1683, + "order": 0, + "prevSize": 32, + "code": 58887, + "name": "tablemergecells", + "tempChar": "" + }, + { + "id": 1684, + "order": 0, + "prevSize": 32, + "code": 58888, + "name": "tableinsertcolbefore", + "tempChar": "" + }, + { + "id": 1685, + "order": 0, + "prevSize": 32, + "code": 58889, + "name": "tableinsertcolafter", + "tempChar": "" + }, + { + "id": 1686, + "order": 0, + "prevSize": 32, + "code": 58890, + "name": "tableinsertrowbefore", + "tempChar": "" + }, + { + "id": 1687, + "order": 0, + "prevSize": 32, + "code": 58891, + "name": "tableinsertrowafter", + "tempChar": "" + }, + { + "id": 1688, + "order": 0, + "prevSize": 32, + "code": 58893, + "name": "tablesplitcells", + "tempChar": "" + }, + { + "id": 1689, + "order": 0, + "prevSize": 32, + "code": 58894, + "name": "tabledelete", + "tempChar": "" + }, + { + "id": 1690, + "order": 0, + "prevSize": 32, + "code": 58922, + "name": "tableleftheader", + "tempChar": "" + }, + { + "id": 1691, + "order": 0, + "prevSize": 32, + "code": 58923, + "name": "tabletopheader", + "tempChar": "" + }, + { + "order": 0, + "id": 1693, + "prevSize": 32, + "code": 59392, + "name": "tabledeleterow", + "tempChar": "" + }, + { + "order": 0, + "id": 1692, + "prevSize": 32, + "code": 59393, + "name": "tabledeletecol", + "tempChar": "" + } + ], + "metadata": { + "name": "tinymce", + "iconsHash": 757772004 + }, + "height": 1024, + "prevSize": 32, + "icons": [ + { + "paths": [ + "M892.8 982.4l-89.6-89.6c-70.4 80-172.8 131.2-288 131.2-208 0-380.8-166.4-384-377.6 0 0 0 0 0 0 0-3.2 0-3.2 0-6.4s0-3.2 0-6.4v0c0 0 0 0 0-3.2 0 0 0-3.2 0-3.2 3.2-105.6 48-211.2 105.6-304l-192-192 44.8-44.8 182.4 182.4c0 0 0 0 0 0l569.6 569.6c0 0 0 0 0 0l99.2 99.2-48 44.8zM896 633.6c0 0 0 0 0 0 0-3.2 0-6.4 0-6.4-9.6-316.8-384-627.2-384-627.2s-108.8 89.6-208 220.8l70.4 70.4c6.4-9.6 16-22.4 22.4-32 41.6-51.2 83.2-96 115.2-128v0c32 32 73.6 76.8 115.2 128 108.8 137.6 169.6 265.6 172.8 371.2 0 0 0 3.2 0 3.2v0 0c0 3.2 0 3.2 0 6.4s0 3.2 0 3.2v0 0c0 22.4-3.2 41.6-9.6 64l76.8 76.8c16-41.6 28.8-89.6 28.8-137.6 0 0 0 0 0 0 0-3.2 0-3.2 0-6.4s-0-3.2-0-6.4z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "tags": [ + "invert" + ], + "grid": 16, + "defaultCode": 58882 + }, + { + "paths": [ + "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57396, + "grid": 16 + }, + { + "paths": [ + "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "resize", + "dots" + ], + "defaultCode": 57394, + "grid": 16 + }, + { + "paths": [ + "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "copy" + ], + "defaultCode": 57393, + "grid": 16 + }, + { + "paths": [ + "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "rtl" + ], + "defaultCode": 57392, + "grid": 16 + }, + { + "paths": [ + "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "ltr" + ], + "defaultCode": 57391, + "grid": 16 + }, + { + "paths": [ + "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "visualchars" + ], + "defaultCode": 57390, + "grid": 16 + }, + { + "paths": [ + "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "strikethrough" + ], + "defaultCode": 57389, + "grid": 16 + }, + { + "paths": [ + "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "underline" + ], + "defaultCode": 57388, + "grid": 16 + }, + { + "paths": [ + "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "italic" + ], + "defaultCode": 57387, + "grid": 16 + }, + { + "paths": [ + "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "bold0" + ], + "defaultCode": 57386, + "grid": 16 + }, + { + "paths": [ + "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "restoredraft" + ], + "defaultCode": 57384, + "grid": 16 + }, + { + "paths": [ + "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pagebreak" + ], + "defaultCode": 57383, + "grid": 16 + }, + { + "paths": [ + "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "template" + ], + "defaultCode": 57382, + "grid": 16 + }, + { + "paths": [ + "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "nonbreaking" + ], + "defaultCode": 57381, + "grid": 16 + }, + { + "paths": [ + "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "spellchecker" + ], + "defaultCode": 57380, + "grid": 16 + }, + { + "paths": [ + "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "charmap" + ], + "defaultCode": 57376, + "grid": 16 + }, + { + "paths": [ + "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sup" + ], + "defaultCode": 57375, + "grid": 16 + }, + { + "paths": [ + "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sub" + ], + "defaultCode": 57374, + "grid": 16 + }, + { + "paths": [ + "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "removeformat" + ], + "defaultCode": 57373, + "grid": 16 + }, + { + "paths": [ + "M0 448h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "hr" + ], + "defaultCode": 57372, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "table" + ], + "defaultCode": 57371, + "grid": 16 + }, + { + "paths": [ + "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "forecolor" + ], + "defaultCode": 57370, + "grid": 16 + }, + { + "paths": [ + "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "preview" + ], + "defaultCode": 57369, + "grid": 16 + }, + { + "paths": [ + "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "inserttime" + ], + "defaultCode": 57368, + "grid": 16 + }, + { + "paths": [ + "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "code" + ], + "defaultCode": 57367, + "grid": 16 + }, + { + "paths": [ + "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "help" + ], + "defaultCode": 57366, + "grid": 16 + }, + { + "paths": [ + "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "media" + ], + "defaultCode": 57365, + "grid": 16 + }, + { + "paths": [ + "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "image" + ], + "defaultCode": 57364, + "grid": 16 + }, + { + "paths": [ + "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "anchor" + ], + "defaultCode": 57363, + "grid": 16 + }, + { + "paths": [ + "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "unlink" + ], + "defaultCode": 57362, + "grid": 16 + }, + { + "paths": [ + "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "link" + ], + "defaultCode": 57361, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "outdent" + ], + "defaultCode": 57357, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "indent" + ], + "defaultCode": 57356, + "grid": 16 + }, + { + "paths": [ + "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "numlist" + ], + "defaultCode": 57355, + "grid": 16 + }, + { + "paths": [ + "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "bullist" + ], + "defaultCode": 57354, + "grid": 16 + }, + { + "paths": [ + "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "searchreplace" + ], + "defaultCode": 57353, + "grid": 16 + }, + { + "paths": [ + "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "paste" + ], + "defaultCode": 57352, + "grid": 16 + }, + { + "paths": [ + "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "cut" + ], + "defaultCode": 57351, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignjustify" + ], + "defaultCode": 57350, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignright" + ], + "defaultCode": 57349, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "aligncenter" + ], + "defaultCode": 57348, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignleft" + ], + "defaultCode": 57347, + "grid": 16 + }, + { + "paths": [ + "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "fullpage" + ], + "defaultCode": 57346, + "grid": 16 + }, + { + "paths": [ + "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "newdocument" + ], + "defaultCode": 57345, + "grid": 16 + }, + { + "paths": [ + "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "save" + ], + "defaultCode": 57344, + "grid": 16 + }, + { + "paths": [ + "M128 544l288 288 480-480-128-128-352 352-160-160z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57395, + "grid": 16 + }, + { + "paths": [ + "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pastetext" + ], + "defaultCode": 57397, + "grid": 16 + }, + { + "paths": [ + "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "fullscreen" + ], + "defaultCode": 57379, + "grid": 16 + }, + { + "paths": [ + "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "print" + ], + "defaultCode": 57378, + "grid": 16 + }, + { + "paths": [ + "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "emoticons" + ], + "defaultCode": 57377, + "grid": 16 + }, + { + "paths": [ + "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "blockquote" + ], + "defaultCode": 57358, + "grid": 16 + }, + { + "paths": [ + "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "undo" + ], + "defaultCode": 57359, + "grid": 16 + }, + { + "paths": [ + "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "redo" + ], + "defaultCode": 57360, + "grid": 16 + }, + { + "paths": [ + "M199.995 381.998v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-100.518 0-182.003 81.485-182.003 182.003v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 100.515 81.485 182.003 182.003 182.003h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-50.931-20.928-96.966-54.646-130.002 33.716-33.036 54.646-79.072 54.646-130.002z", + "M824.005 381.998v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c100.515 0 182.003 81.485 182.003 182.003v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 100.515-81.488 182.003-182.003 182.003h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-50.931 20.928-96.966 54.646-130.002-33.716-33.036-54.646-79.072-54.646-130.002z", + "M616.002 356.715c0 57.439-46.562 104.002-104.002 104.002s-104.002-46.562-104.002-104.002c0-57.439 46.562-104.002 104.002-104.002s104.002 46.562 104.002 104.002z", + "M512 511.283c-57.439 0-104.002 46.562-104.002 104.002 0 55.845 26 100.115 105.752 103.88-23.719 33.417-59.441 46.612-105.752 50.944v61.751c0 0 208.003 18.144 208.003-216.577-0.202-57.441-46.56-104.004-104.002-104.004z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "code", + "semicolon", + "curly-braces" + ], + "grid": 16, + "defaultCode": 58883 + }, + { + "paths": [ + "M864.626 473.162c-65.754-183.44-205.11-348.15-352.626-473.162-147.516 125.012-286.87 289.722-352.626 473.162-40.664 113.436-44.682 236.562 12.584 345.4 65.846 125.14 198.632 205.438 340.042 205.438s274.196-80.298 340.040-205.44c57.27-108.838 53.25-231.962 12.586-345.398zM738.764 758.956c-43.802 83.252-132.812 137.044-226.764 137.044-55.12 0-108.524-18.536-152.112-50.652 13.242 1.724 26.632 2.652 40.112 2.652 117.426 0 228.668-67.214 283.402-171.242 44.878-85.292 40.978-173.848 23.882-244.338 14.558 28.15 26.906 56.198 36.848 83.932 22.606 63.062 40.024 156.34-5.368 242.604z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "drop" + ], + "defaultCode": 57381, + "grid": 16 + }, + { + "paths": [ + "M768 128h-512l-256 256 512 576 512-576-256-256zM512 778.666v-2.666h-2.37l-14.222-16h16.592v-16h-30.814l-14.222-16h45.036v-16h-59.258l-14.222-16h73.48v-16h-87.704l-14.222-16h101.926v-16h-116.148l-14.222-16h130.37v-16h-144.592l-14.222-16h158.814v-16h-173.038l-14.222-16h187.26v-16h-201.482l-14.222-16h215.704v-16h-229.926l-14.222-16h244.148v-16h-258.372l-14.222-16h272.594v-16h-286.816l-14.222-16h301.038v-16h-315.26l-14.222-16h329.482v-16h-343.706l-7.344-8.262 139.072-139.072h211.978v3.334h215.314l16 16h-231.314v16h247.314l16 16h-263.314v16h279.314l16 16h-295.314v16h311.314l16 16h-327.314v16h343.312l7.738 7.738-351.050 394.928z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "diamond", + "gem", + "jewelry", + "dualtone" + ], + "defaultCode": 57889, + "grid": 16 + }, + { + "paths": [ + "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM128 512c0-212.078 171.922-384 384-384v768c-212.078 0-384-171.922-384-384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "contrast" + ], + "defaultCode": 58104, + "grid": 16 + }, + { + "paths": [ + "M893.254 221.254l-90.508-90.508-290.746 290.744-290.746-290.744-90.508 90.506 290.746 290.748-290.746 290.746 90.508 90.508 290.746-290.746 290.746 290.746 90.508-90.51-290.744-290.744z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "cross", + "cancel", + "close", + "quit", + "remove" + ], + "defaultCode": 60778, + "grid": 16 + }, + { + "paths": [ + "M0 64v384c0 35.346 28.654 64 64 64s64-28.654 64-64v-229.488l677.488 677.488h-229.488c-35.346 0-64 28.652-64 64 0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64v-384c0-35.348-28.654-64-64-64s-64 28.652-64 64v229.488l-677.488-677.488h229.488c35.346 0 64-28.654 64-64s-28.652-64-64-64h-384c-35.346 0-64 28.654-64 64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-resize", + "diagonal" + ], + "defaultCode": 58329, + "grid": 16 + }, + { + "paths": [ + "M483.2 640l-147.2-336c-9.6-25.6-19.2-44.8-25.6-54.4s-16-12.8-25.6-12.8c-16 0-25.6 3.2-28.8 3.2v-70.4c9.6-6.4 25.6-6.4 38.4-9.6 32 0 57.6 6.4 73.6 22.4 6.4 6.4 12.8 16 19.2 25.6 6.4 12.8 12.8 25.6 16 41.6l121.6 291.2 150.4-371.2h92.8l-198.4 470.4v224h-86.4v-224z", + "M0 0v1024h1024v-1024h-1024zM960 960h-896v-896h896v896z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "tags": [ + "gamma2" + ], + "grid": 16, + "defaultCode": 58880 + }, + { + "paths": [ + "M627.2 880h-579.2v-396.8h579.2v396.8zM553.6 553.6h-435.2v256h435.2v-256z", + "M259.2 227.2c176-176 457.6-176 633.6 0s176 457.6 0 633.6c-121.6 121.6-297.6 160-454.4 108.8 121.6 28.8 262.4-9.6 361.6-108.8 150.4-150.4 160-384 22.4-521.6-121.6-121.6-320-128-470.4-19.2l86.4 86.4-294.4 22.4 22.4-294.4 92.8 92.8z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "tags": [ + "orientation" + ], + "grid": 16, + "defaultCode": 58881 + }, + { + "paths": [ + "M768 544v352h-640v-640h352l128-128h-512c-52.8 0-96 43.2-96 96v704c0 52.8 43.2 96 96 96h704c52.798 0 96-43.2 96-96v-512l-128 128z", + "M864 0l-608 608v160h160l608-608c0-96-64-160-160-160zM416 640l-48-48 480-480 48 48-480 480z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pencil", + "write", + "edit" + ], + "defaultCode": 57361, + "grid": 16 + }, + { + "paths": [ + "M607.998 128.014c-212.070 0-383.986 171.916-383.986 383.986h-191.994l246.848 246.848 246.848-246.848h-191.994c0-151.478 122.798-274.276 274.276-274.276 151.48 0 274.276 122.798 274.276 274.276 0 151.48-122.796 274.276-274.276 274.276v109.71c212.070 0 383.986-171.916 383.986-383.986s-171.916-383.986-383.986-383.986z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "rotate-ccw", + "ccw", + "arrow" + ], + "defaultCode": 60072, + "grid": 16 + }, + { + "paths": [ + "M416.002 128.014c212.070 0 383.986 171.916 383.986 383.986h191.994l-246.848 246.848-246.848-246.848h191.994c0-151.478-122.798-274.276-274.276-274.276-151.48 0-274.276 122.798-274.276 274.276 0 151.48 122.796 274.276 274.276 274.276v109.71c-212.070 0-383.986-171.916-383.986-383.986s171.916-383.986 383.986-383.986z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "rotate-cw", + "cw", + "arrow" + ], + "defaultCode": 60073, + "grid": 16 + }, + { + "paths": [ + "M0 384h1024v-384zM1024 960v-384h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "flip-vertical", + "mirror" + ], + "defaultCode": 57663, + "grid": 16 + }, + { + "paths": [ + "M576 0v1024h384zM0 1024h384v-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "flip-horizontal", + "mirror" + ], + "defaultCode": 57664, + "grid": 16 + }, + { + "paths": [ + "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384 0 212.078 171.922 384 384 384 95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM448 192h-128v128h-128v128h128v128h128v-128h128v-128h-128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "zoom-in", + "magnifier", + "magnifier-plus", + "enlarge" + ], + "defaultCode": 57788, + "grid": 16 + }, + { + "paths": [ + "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384 0 212.078 171.922 384 384 384 95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM192 320h384v128h-384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "zoom-out", + "magnifier", + "magnifier-minus", + "reduce" + ], + "defaultCode": 57789, + "grid": 16 + }, + { + "paths": [ + "M64 192h896v192h-896zM64 448h896v192h-896zM64 704h896v192h-896z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "menu", + "list", + "options", + "lines", + "hamburger" + ], + "defaultCode": 58031, + "grid": 16 + }, + { + "paths": [ + "M512 832c35.346 0 64 28.654 64 64v64c0 35.346-28.654 64-64 64s-64-28.654-64-64v-64c0-35.346 28.654-64 64-64zM512 192c-35.346 0-64-28.654-64-64v-64c0-35.346 28.654-64 64-64s64 28.654 64 64v64c0 35.346-28.654 64-64 64zM960 448c35.346 0 64 28.654 64 64s-28.654 64-64 64h-64c-35.348 0-64-28.654-64-64s28.652-64 64-64h64zM192 512c0 35.346-28.654 64-64 64h-64c-35.346 0-64-28.654-64-64s28.654-64 64-64h64c35.346 0 64 28.654 64 64zM828.784 738.274l45.256 45.258c24.992 24.99 24.992 65.516 0 90.508-24.994 24.992-65.518 24.992-90.51 0l-45.256-45.256c-24.992-24.99-24.992-65.516 0-90.51 24.994-24.992 65.518-24.992 90.51-0zM195.216 285.726l-45.256-45.256c-24.994-24.994-24.994-65.516 0-90.51s65.516-24.994 90.51 0l45.256 45.256c24.994 24.994 24.994 65.516 0 90.51s-65.516 24.994-90.51 0zM828.784 285.726c-24.992 24.992-65.516 24.992-90.51 0-24.992-24.994-24.992-65.516 0-90.51l45.256-45.254c24.992-24.994 65.516-24.994 90.51 0 24.992 24.994 24.992 65.516 0 90.51l-45.256 45.254zM195.216 738.274c24.992-24.992 65.518-24.992 90.508 0 24.994 24.994 24.994 65.52 0 90.51l-45.254 45.256c-24.994 24.992-65.516 24.992-90.51 0s-24.994-65.518 0-90.508l45.256-45.258z", + "M512 256c-141.384 0-256 114.616-256 256 0 141.382 114.616 256 256 256 141.382 0 256-114.618 256-256 0-141.384-114.616-256-256-256zM512 672c-88.366 0-160-71.634-160-160s71.634-160 160-160 160 71.634 160 160-71.634 160-160 160z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sun", + "weather" + ], + "defaultCode": 58094, + "grid": 16 + }, + { + "paths": [ + "M715.812 64.48c-60.25-34.784-124.618-55.904-189.572-64.48 122.936 160.082 144.768 384.762 37.574 570.42-107.2 185.67-312.688 279.112-512.788 252.68 39.898 51.958 90.376 97.146 150.628 131.934 245.908 141.974 560.37 57.72 702.344-188.198 141.988-245.924 57.732-560.372-188.186-702.356z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "moon", + "night", + "sleep" + ], + "defaultCode": 58105, + "grid": 16 + }, + { + "paths": [ + "M672 1024l192-192-320-320 320-320-192-192-512 512z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-left", + "left", + "previous" + ], + "defaultCode": 58291, + "grid": 16 + }, + { + "paths": [ + "M832 256l192-192-64-64-192 192h-448v-192h-128v192h-192v128h192v512h512v192h128v-192h192v-128h-192v-448zM320 320h320l-320 320v-320zM384 704l320-320v320h-320z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "crop", + "resize", + "cut" + ], + "defaultCode": 58428, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablerowprops" + ], + "defaultCode": 58880, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablecellprops" + ], + "defaultCode": 58881, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM320 832h-256v-192h256v192zM320 576h-256v-192h256v192zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192zM960 320h-896v-192h896v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "table2" + ], + "defaultCode": 58882, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 896v-448h576v448h-576zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablemergecells" + ], + "defaultCode": 58884, + "grid": 16 + }, + { + "paths": [ + "M320 771.2v-182.4h-182.4v-89.6h182.4v-182.4h86.4v182.4h185.6v89.6h-185.6v182.4zM0 64v896h1024v-896h-1024zM640 896h-576v-704h576v704zM960 896h-256v-192h256v192zM960 640h-256v-192h256v192zM960 384h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertcolbefore" + ], + "defaultCode": 58885, + "grid": 16 + }, + { + "paths": [ + "M704 316.8v182.4h182.4v89.6h-182.4v182.4h-86.4v-182.4h-185.6v-89.6h185.6v-182.4zM0 64v896h1024v-896h-1024zM320 896h-256v-192h256v192zM320 640h-256v-192h256v192zM320 384h-256v-192h256v192zM960 896h-576v-704h576v704z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertcolafter" + ], + "defaultCode": 58886, + "grid": 16 + }, + { + "paths": [ + "M691.2 451.2h-144v144h-70.4v-144h-144v-67.2h144v-144h70.4v144h144zM0 64v896h1024v-896h-1024zM320 896h-256v-192h256v192zM640 896h-256v-192h256v192zM960 896h-256v-192h256v192zM960 643.2h-896v-451.2h896v451.2z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertrowbefore" + ], + "defaultCode": 58887, + "grid": 16 + }, + { + "paths": [ + "M332.8 636.8h144v-144h70.4v144h144v67.2h-144v144h-70.4v-144h-144zM0 64v896h1024v-896h-1024zM384 192h256v192h-256v-192zM64 192h256v192h-256v-192zM960 896h-896v-451.2h896v451.2zM960 384h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertrowafter" + ], + "defaultCode": 58888, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 192h256v192h-256v-192zM320 896h-256v-192h256v192zM320 640h-256v-192h256v192zM320 384h-256v-192h256v192zM960 896h-576v-448h576v448zM960 384h-256v-192h256v192zM864 803.2l-60.8 60.8-131.2-131.2-131.2 131.2-60.8-60.8 131.2-131.2-131.2-131.2 60.8-60.8 131.2 131.2 131.2-131.2 60.8 60.8-131.2 131.2z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablesplitcells" + ], + "defaultCode": 58890, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v896h-1024v-896zM60.8 192v704h899.2v-704h-899.2zM809.6 748.8l-96 96-204.8-204.8-204.8 204.8-96-96 204.8-204.8-204.8-204.8 96-96 204.8 204.8 204.8-204.8 96 96-204.8 204.8z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tabledelete" + ], + "defaultCode": 58891, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM640 320h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192zM960 320h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableleftheader" + ], + "defaultCode": 58922, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM320 832h-256v-192h256v192zM320 576h-256v-192h256v192zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tabletopheader" + ], + "defaultCode": 58923, + "grid": 16 + }, + { + "paths": [ + "M886.4 387.2l-156.8 156.8 160 160-76.8 76.8-160-160-156.8 156.8-76.8-73.6 160-160-163.2-163.2 76.8-76.8 163.2 163.2 156.8-156.8 73.6 76.8zM0 64v896h1024v-896h-1024zM960 384h-22.4l-64 64h86.4v192h-89.6l64 64h25.6v192h-896v-192h310.4l64-64h-374.4v-192h371.2l-64-64h-307.2v-192h896v192z" + ], + "attrs": [], + "isMulticolor": false, + "grid": 16, + "tags": [ + "tabledeleterow" + ], + "defaultCode": 59392 + }, + { + "paths": [ + "M320 460.8l64 64v12.8l-64 64v-140.8zM640 537.6l64 64v-137.6l-64 64v9.6zM1024 64v896h-1024v-896h1024zM960 192h-256v51.2l-12.8-12.8-51.2 51.2v-89.6h-256v89.6l-51.2-51.2-12.8 12.8v-51.2h-256v704h256v-118.4l35.2 35.2 28.8-28.8v115.2h256v-115.2l48 48 16-16v83.2h256v-707.2zM672 297.6l-156.8 156.8-163.2-163.2-76.8 76.8 163.2 163.2-156.8 156.8 76.8 76.8 156.8-156.8 160 160 76.8-76.8-160-160 156.8-156.8-76.8-76.8z" + ], + "attrs": [], + "isMulticolor": false, + "grid": 16, + "tags": [ + "tabledeletecol" + ], + "defaultCode": 59393 + } + ], + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "tinymce", + "majorVersion": 1, + "minorVersion": 0 + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "resetPoint": 58880, + "embed": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 + }, + "historySize": 100, + "gridSize": 16, + "showGrid": true, + "showCodes": true, + "showLiga": false + }, + "IcoMoonType": "icon-set" +} \ No newline at end of file diff --git a/public/skins/gray-flat/fonts/tinymce.svg b/public/skins/gray-flat/fonts/tinymce.svg new file mode 100644 index 00000000..d7004a97 --- /dev/null +++ b/public/skins/gray-flat/fonts/tinymce.svg @@ -0,0 +1,98 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/skins/gray-flat/fonts/tinymce.ttf b/public/skins/gray-flat/fonts/tinymce.ttf new file mode 100644 index 00000000..ab4487fe Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce.ttf differ diff --git a/public/skins/gray-flat/fonts/tinymce.woff b/public/skins/gray-flat/fonts/tinymce.woff new file mode 100644 index 00000000..171a2a2d Binary files /dev/null and b/public/skins/gray-flat/fonts/tinymce.woff differ diff --git a/public/skins/gray-flat/img/anchor.gif b/public/skins/gray-flat/img/anchor.gif new file mode 100644 index 00000000..606348c7 Binary files /dev/null and b/public/skins/gray-flat/img/anchor.gif differ diff --git a/public/skins/gray-flat/img/loader.gif b/public/skins/gray-flat/img/loader.gif new file mode 100644 index 00000000..c69e9372 Binary files /dev/null and b/public/skins/gray-flat/img/loader.gif differ diff --git a/public/skins/gray-flat/img/object.gif b/public/skins/gray-flat/img/object.gif new file mode 100644 index 00000000..cccd7f02 Binary files /dev/null and b/public/skins/gray-flat/img/object.gif differ diff --git a/public/skins/gray-flat/img/trans.gif b/public/skins/gray-flat/img/trans.gif new file mode 100644 index 00000000..38848651 Binary files /dev/null and b/public/skins/gray-flat/img/trans.gif differ diff --git a/public/skins/gray-flat/skin.ie7.min.css b/public/skins/gray-flat/skin.ie7.min.css new file mode 100644 index 00000000..2d2fe9c7 --- /dev/null +++ b/public/skins/gray-flat/skin.ie7.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#333332}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#666}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #e0ded8;border:0 solid #9e9e9e;background-color:#f1eee6}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c4c4c4;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c4c4c4;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-window-body .mce-listbox{border-color:#000}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333;text-shadow:1px 1px #fff}.mce-bar{display:block;width:0%;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#f0f0f0;padding:5px;margin-top:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;border-width:1px;border-style:solid;border-color:#ccc}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ecb}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333}.mce-notification .mce-progress .mce-bar-container{border-color:#ccc}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ecb}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #a9a7a1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#333332}.mce-btn:hover,.mce-btn:focus{color:#fff;background-color:#262625;border-color:#000}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#1e1e1e;border-color:#000}.mce-btn:active{background-color:#232322;border-color:#000}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#fff;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #333332}.mce-primary{min-width:50px;color:#fff;border:1px solid transparent;border-color:transparent;background-color:#333332}.mce-primary:hover,.mce-primary:focus{background-color:#262625;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#191919}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #fff;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#191919;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;margin-left:2px}.mce-btn-group .mce-btn{border-left-width:0;border-right-width:0;margin-left:0}.mce-btn-group:not(:first-child){padding-left:1px;margin-left:1px}.mce-btn-group .mce-first{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;border-left:1px solid rgba(0,0,0,0.25);margin-left:0}.mce-btn-group .mce-last{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;border-right:1px solid rgba(0,0,0,0.1)}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #0c0c0c;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#333332;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#fff;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #59a5e1}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#a5a39e}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#000}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;filter:none}.mce-menubar .mce-menubtn button{color:}.mce-menubar{border:1px solid #bfbebb}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#000;background:#fff;filter:none}.mce-menubtn button{color:#fff}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#666}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#fff}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#333332}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #918f8a;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #aaa;background:#eee;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #bbb;background:#ddd;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#000}.mce-splitbtn button{padding-right:4px;padding-left:8px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#1e1e1e;outline:1px solid #000}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#59a5e1}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#fff;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-alignnone{-ie7-icon:"\e003"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-rotateleft{-ie7-icon:"\eaa8"}.mce-i-rotateright{-ie7-icon:"\eaa9"}.mce-i-crop{-ie7-icon:"\ee78"}.mce-i-editimage{-ie7-icon:"\e914"}.mce-i-options{-ie7-icon:"\ec6a"}.mce-i-flipv{-ie7-icon:"\eaaa"}.mce-i-fliph{-ie7-icon:"\eaac"}.mce-i-zoomin{-ie7-icon:"\eb35"}.mce-i-zoomout{-ie7-icon:"\eb36"}.mce-i-sun{-ie7-icon:"\eccc"}.mce-i-moon{-ie7-icon:"\eccd"}.mce-i-arrowleft{-ie7-icon:"\edc0"}.mce-i-arrowright{-ie7-icon:"\edb8"}.mce-i-drop{-ie7-icon:"\e934"}.mce-i-contrast{-ie7-icon:"\ecd4"}.mce-i-sharpen{-ie7-icon:"\eba7"}.mce-i-palette{-ie7-icon:"\e92a"}.mce-i-resize2{-ie7-icon:"\edf9"}.mce-i-orientation{-ie7-icon:"\e601"}.mce-i-invert{-ie7-icon:"\e602"}.mce-i-gamma{-ie7-icon:"\e600"}.mce-i-remove{-ie7-icon:"\ed6a"}.mce-i-codesample{-ie7-icon:"\e603"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file diff --git a/public/skins/gray-flat/skin.json b/public/skins/gray-flat/skin.json new file mode 100644 index 00000000..0e134c3a --- /dev/null +++ b/public/skins/gray-flat/skin.json @@ -0,0 +1,79 @@ +{ + "skin-name": "gray-flat", + "preview-bg": "#eeeeee", + "text": "#333333", + "text-inverse": "#ffffff", + "text-disabled": "#aaaaaa", + "has-gradients": false, + "has-radius": true, + "has-boxshadow": false, + "has-button-borders": true, + "btn-text": "#ffffff", + "btn-text-shadow": "#333332", + "btn-bg": "#333332", + "btn-bg-hlight": "#333332", + "btn-border-top": "rgba(0,0,0,0.1)", + "btn-border-right": "rgba(0,0,0,0.1)", + "btn-border-bottom": "rgba(0,0,0,0.25)", + "btn-border-left": "rgba(0,0,0,0.25)", + "btn-split-border": "#ffffff", + "btn-primary-text": "#ffffff", + "btn-primary-text-shadow": "#333333", + "btn-primary-bg": "#333332", + "btn-primary-bg-hlight": "#333332", + "btn-padding": "4px 8px", + "menu-bg": "#ffffff", + "menu-border": "rgba(0,0,0,0.2)", + "menuitem-text": "#333333", + "menuitem-bg-selected": "#333332", + "menuitem-bg-selected-hlight": "#333332", + "menuitem-separator-top": "#cbcbcb", + "menuitem-separator-bottom": "#ffffff", + "menuitem-text-inverse": "#ffffff", + "menuitem-bg-active": "#666666", + "menuitem-text-active": "#ffffff", + "menuitem-preview-border-active": "#aaaaaa", + "menubar-menubtn-text": "", + "checkbox-border": "#c5c5c5", + "checkbox-border-focus": "#59a5e1", + "panel-border": "#9e9e9e", + "panel-bg": "#f1eee6", + "panel-bg-hlight": "#f1eee6", + "textbox-bg": "#ffffff", + "textbox-border": "#c5c5c5", + "textbox-border-focus": "#59a5e1", + "window-bg": "#ffffff", + "window-border": "#c4c4c4", + "tab-bg": "#e3e3e3", + "tab-bg-hover": "#fdfdfd", + "tab-bg-active": "#fdfdfd", + "tab-border": "#c5c5c5", + "tabs-bg": "#ffffff", + "notification-bg": "#f0f0f0", + "notification-border": "#cccccc", + "notification-text": "#333333", + "notification-success-bg": "#dff0d8", + "notification-success-border": "#d6e9c6", + "notification-success-text": "#3c763d", + "notification-info-bg": "#d9edf7", + "notification-info-border": "#779ecb", + "notification-info-text": "#31708f", + "notification-warning-bg": "#fcf8e3", + "notification-warning-border": "#faebcc", + "notification-warning-text": "#8a6d3b", + "notification-error-bg": "#f2dede", + "notification-error-border": "#ebccd1", + "notification-error-text": "#a94442", + "progress-bar-bg": "#dfdfdf", + "progress-bar-bg-hlight": "#cccccc", + "progress-border": "#cccccc", + "progress-text": "#333333", + "progress-text-shadow": "#ffffff", + "slider-bg": "#eeeeee", + "slider-border": "#aaaaaa", + "slider-handle-bg": "#dddddd", + "slider-handle-border": "#bbbbbb", + "colorbtn-backcolor-bg": "#bbbbbb", + "grid-border": "#d6d6d6", + "grid-border-active": "#a1a1a1" +} \ No newline at end of file diff --git a/public/skins/gray-flat/skin.min.css b/public/skins/gray-flat/skin.min.css new file mode 100644 index 00000000..955fce5b --- /dev/null +++ b/public/skins/gray-flat/skin.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#333332}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#666}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #e0ded8;border:0 solid #9e9e9e;background-color:#f1eee6}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c4c4c4;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c4c4c4;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-window-body .mce-listbox{border-color:#000}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0%;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#f0f0f0;padding:5px;margin-top:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;border-width:1px;border-style:solid;border-color:#ccc}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ecb}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333}.mce-notification .mce-progress .mce-bar-container{border-color:#ccc}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ecb}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #a9a7a1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#333332}.mce-btn:hover,.mce-btn:focus{color:#fff;background-color:#262625;border-color:#000}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#1e1e1e;border-color:#000}.mce-btn:active{background-color:#232322;border-color:#000}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#fff;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #333332}.mce-primary{min-width:50px;color:#fff;border:1px solid transparent;border-color:transparent;background-color:#333332}.mce-primary:hover,.mce-primary:focus{background-color:#262625;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#191919}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #fff;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#191919;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;margin-left:2px}.mce-btn-group .mce-btn{border-left-width:0;border-right-width:0;margin-left:0}.mce-btn-group:not(:first-child){padding-left:1px;margin-left:1px}.mce-btn-group .mce-first{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;border-left:1px solid rgba(0,0,0,0.25);margin-left:0}.mce-btn-group .mce-last{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;border-right:1px solid rgba(0,0,0,0.1)}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #0c0c0c;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#333332;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#fff;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #59a5e1}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#a5a39e}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#000}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;filter:none}.mce-menubar .mce-menubtn button{color:}.mce-menubar{border:1px solid #bfbebb}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#000;background:#fff;filter:none}.mce-menubtn button{color:#fff}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#666}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#fff}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#333332}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #918f8a;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #aaa;background:#eee;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #bbb;background:#ddd;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#000}.mce-splitbtn button{padding-right:4px;padding-left:8px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#1e1e1e;outline:1px solid #000}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#59a5e1}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#fff}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e914"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\edb8"}.mce-i-drop:before{content:"\e934"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-palette:before{content:"\e92a"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb} \ No newline at end of file diff --git a/public/tinymce-langs/fr_FR.js b/public/tinymce-langs/fr_FR.js new file mode 100755 index 00000000..b74abd48 --- /dev/null +++ b/public/tinymce-langs/fr_FR.js @@ -0,0 +1,219 @@ +tinymce.addI18n('fr_FR',{ +"Cut": "Couper", +"Heading 5": "En-t\u00eate 5", +"Header 2": "Titre 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas la copie directe. Merci d'utiliser les touches Ctrl+X\/C\/V.", +"Heading 4": "En-t\u00eate 4", +"Div": "Div", +"Heading 2": "En-t\u00eate 2", +"Paste": "Coller", +"Close": "Fermer", +"Font Family": "Police", +"Pre": "Pre", +"Align right": "Aligner \u00e0 droite", +"New document": "Nouveau document", +"Blockquote": "Citation", +"Numbered list": "Num\u00e9rotation", +"Heading 1": "En-t\u00eate 1", +"Headings": "En-t\u00eates", +"Increase indent": "Augmenter le retrait", +"Formats": "Formats", +"Headers": "Titres", +"Select all": "Tout s\u00e9lectionner", +"Header 3": "Titre 3", +"Blocks": "Blocs", +"Undo": "Annuler", +"Strikethrough": "Barr\u00e9", +"Bullet list": "Puces", +"Header 1": "Titre 1", +"Superscript": "Exposant", +"Clear formatting": "Effacer la mise en forme", +"Font Sizes": "Taille de police", +"Subscript": "Indice", +"Header 6": "Titre 6", +"Redo": "R\u00e9tablir", +"Paragraph": "Paragraphe", +"Ok": "Ok", +"Bold": "Gras", +"Code": "Code", +"Italic": "Italique", +"Align center": "Centrer", +"Header 5": "Titre 5", +"Heading 6": "En-t\u00eate 6", +"Heading 3": "En-t\u00eate 3", +"Decrease indent": "Diminuer le retrait", +"Header 4": "Titre 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.", +"Underline": "Soulign\u00e9", +"Cancel": "Annuler", +"Justify": "Justifier", +"Inline": "En ligne", +"Copy": "Copier", +"Align left": "Aligner \u00e0 gauche", +"Visual aids": "Aides visuelle", +"Lower Greek": "Grec minuscule", +"Square": "Carr\u00e9", +"Default": "Par d\u00e9faut", +"Lower Alpha": "Alpha minuscule", +"Circle": "Cercle", +"Disc": "Disque", +"Upper Alpha": "Alpha majuscule", +"Upper Roman": "Romain majuscule", +"Lower Roman": "Romain minuscule", +"Name": "Nom", +"Anchor": "Ancre", +"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?", +"Restore last draft": "Restaurer le dernier brouillon", +"Special character": "Caract\u00e8res sp\u00e9ciaux", +"Source code": "Code source", +"B": "B", +"R": "R", +"G": "V", +"Color": "Couleur", +"Right to left": "Droite \u00e0 gauche", +"Left to right": "Gauche \u00e0 droite", +"Emoticons": "Emotic\u00f4nes", +"Robots": "Robots", +"Document properties": "Propri\u00e9t\u00e9 du document", +"Title": "Titre", +"Keywords": "Mots-cl\u00e9s", +"Encoding": "Encodage", +"Description": "Description", +"Author": "Auteur", +"Fullscreen": "Plein \u00e9cran", +"Horizontal line": "Ligne horizontale", +"Horizontal space": "Espacement horizontal", +"Insert\/edit image": "Ins\u00e9rer\/modifier une image", +"General": "G\u00e9n\u00e9ral", +"Advanced": "Avanc\u00e9", +"Source": "Source", +"Border": "Bordure", +"Constrain proportions": "Conserver les proportions", +"Vertical space": "Espacement vertical", +"Image description": "Description de l'image", +"Style": "Style", +"Dimensions": "Dimensions", +"Insert image": "Ins\u00e9rer une image", +"Zoom in": "Zoomer", +"Contrast": "Contraste", +"Back": "Retour", +"Gamma": "Gamma", +"Flip horizontally": "Retournement horizontal", +"Resize": "Redimensionner", +"Sharpen": "Affiner", +"Zoom out": "D\u00e9zoomer", +"Image options": "Options de l'image", +"Apply": "Appliquer", +"Brightness": "Luminosit\u00e9", +"Rotate clockwise": "Rotation horaire", +"Rotate counterclockwise": "Rotation anti-horaire", +"Edit image": "Modifier l'image", +"Color levels": "Niveaux de couleur", +"Crop": "Rogner", +"Orientation": "Orientation", +"Flip vertically": "Retournement vertical", +"Invert": "Inverser", +"Insert date\/time": "Ins\u00e9rer date\/heure", +"Remove link": "Enlever le lien", +"Url": "Url", +"Text to display": "Texte \u00e0 afficher", +"Anchors": "Ancres", +"Insert link": "Ins\u00e9rer un lien", +"New window": "Nouvelle fen\u00eatre", +"None": "n\/a", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?", +"Target": "Cible", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?", +"Insert\/edit link": "Ins\u00e9rer\/modifier un lien", +"Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o", +"Poster": "Publier", +"Alternative source": "Source alternative", +"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :", +"Insert video": "Ins\u00e9rer une vid\u00e9o", +"Embed": "Int\u00e9grer", +"Nonbreaking space": "Espace ins\u00e9cable", +"Page break": "Saut de page", +"Paste as text": "Coller comme texte", +"Preview": "Pr\u00e9visualiser", +"Print": "Imprimer", +"Save": "Enregistrer", +"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.", +"Replace": "Remplacer", +"Next": "Suiv", +"Whole words": "Mots entiers", +"Find and replace": "Trouver et remplacer", +"Replace with": "Remplacer par", +"Find": "Chercher", +"Replace all": "Tout remplacer", +"Match case": "Respecter la casse", +"Prev": "Pr\u00e9c ", +"Spellcheck": "V\u00e9rification orthographique", +"Finish": "Finie", +"Ignore all": "Tout ignorer", +"Ignore": "Ignorer", +"Add to Dictionary": "Ajouter au dictionnaire", +"Insert row before": "Ins\u00e9rer une ligne avant", +"Rows": "Lignes", +"Height": "Hauteur", +"Paste row after": "Coller la ligne apr\u00e8s", +"Alignment": "Alignement", +"Border color": "Couleur de la bordure", +"Column group": "Groupe de colonnes", +"Row": "Ligne", +"Insert column before": "Ins\u00e9rer une colonne avant", +"Split cell": "Diviser la cellule", +"Cell padding": "Espacement interne cellule", +"Cell spacing": "Espacement inter-cellulles", +"Row type": "Type de ligne", +"Insert table": "Ins\u00e9rer un tableau", +"Body": "Corps", +"Caption": "Titre", +"Footer": "Pied", +"Delete row": "Effacer la ligne", +"Paste row before": "Coller la ligne avant", +"Scope": "Etendue", +"Delete table": "Supprimer le tableau", +"H Align": "Alignement H", +"Top": "Haut", +"Header cell": "Cellule d'en-t\u00eate", +"Column": "Colonne", +"Row group": "Groupe de lignes", +"Cell": "Cellule", +"Middle": "Milieu", +"Cell type": "Type de cellule", +"Copy row": "Copier la ligne", +"Row properties": "Propri\u00e9t\u00e9s de la ligne", +"Table properties": "Propri\u00e9t\u00e9s du tableau", +"Bottom": "Bas", +"V Align": "Alignement V", +"Header": "En-t\u00eate", +"Right": "Droite", +"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s", +"Cols": "Colonnes", +"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s", +"Width": "Largeur", +"Cell properties": "Propri\u00e9t\u00e9s de la cellule", +"Left": "Gauche", +"Cut row": "Couper la ligne", +"Delete column": "Effacer la colonne", +"Center": "Centr\u00e9", +"Merge cells": "Fusionner les cellules", +"Insert template": "Ajouter un th\u00e8me", +"Templates": "Th\u00e8mes", +"Background color": "Couleur d'arri\u00e8re-plan", +"Custom...": "Personnalis\u00e9...", +"Custom color": "Couleur personnalis\u00e9e", +"No color": "Aucune couleur", +"Text color": "Couleur du texte", +"Show blocks": "Afficher les blocs", +"Show invisible characters": "Afficher les caract\u00e8res invisibles", +"Words: {0}": "Mots : {0}", +"Insert": "Ins\u00e9rer", +"File": "Fichier", +"Edit": "Editer", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.", +"Tools": "Outils", +"View": "Voir", +"Table": "Tableau", +"Format": "Format" +}); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..35fef6db --- /dev/null +++ b/yarn.lock @@ -0,0 +1,17283 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.6.tgz#7eeaa0dfa17e50c7d9c0832515eee09b56f04e35" + integrity sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q== + dependencies: + browserslist "^4.8.5" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.6.2", "@babel/core@^7.7.5": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.7" + "@babel/helpers" "^7.7.4" + "@babel/parser" "^7.7.7" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.8.4": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.6.tgz#27d7df9258a45c2e686b6f18b6c659e563aa4636" + integrity sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helpers" "^7.8.4" + "@babel/parser" "^7.8.6" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.7.4", "@babel/generator@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== + dependencies: + "@babel/types" "^7.7.4" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/generator@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== + dependencies: + "@babel/types" "^7.8.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" + integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" + integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-call-delegate@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" + integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== + dependencies: + "@babel/helper-hoist-variables" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-call-delegate@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" + integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-compilation-targets@^7.8.4", "@babel/helper-compilation-targets@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz#015b85db69e3a34240d5c2b761fc53eb9695f09c" + integrity sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ== + dependencies: + "@babel/compat-data" "^7.8.6" + browserslist "^4.8.5" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz#fce60939fd50618610942320a8d951b3b639da2d" + integrity sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA== + dependencies: + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-member-expression-to-functions" "^7.7.4" + "@babel/helper-optimise-call-expression" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" + integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + +"@babel/helper-create-regexp-features-plugin@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" + integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== + dependencies: + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/helper-create-regexp-features-plugin@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz#7fa040c97fb8aebe1247a5c645330c32d083066b" + integrity sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.6.0" + +"@babel/helper-define-map@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" + integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== + dependencies: + "@babel/helper-function-name" "^7.7.4" + "@babel/types" "^7.7.4" + lodash "^4.17.13" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" + integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== + dependencies: + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== + dependencies: + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-function-name@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" + integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== + dependencies: + "@babel/helper-get-function-arity" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-get-function-arity@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" + integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" + integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" + integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" + integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.7.4", "@babel/helper-module-transforms@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" + integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-simple-access" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" + lodash "^4.17.13" + +"@babel/helper-module-transforms@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz#6a13b5eecadc35692047073a64e42977b97654a4" + integrity sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.8.6" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" + integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" + integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.7.4" + "@babel/helper-wrap-function" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" + integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.7.4" + "@babel/helper-optimise-call-expression" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" + integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== + dependencies: + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" + integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== + dependencies: + "@babel/types" "^7.7.4" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-wrap-function@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" + integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== + dependencies: + "@babel/helper-function-name" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" + integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== + dependencies: + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/helpers@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" + integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.4" + "@babel/types" "^7.8.3" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.7.4", "@babel/parser@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" + integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== + +"@babel/parser@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== + +"@babel/plugin-proposal-async-generator-functions@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" + integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/plugin-syntax-async-generators" "^7.7.4" + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz#2f964f0cb18b948450362742e33e15211e77c2ba" + integrity sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-proposal-decorators@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.7.4.tgz#58c1e21d21ea12f9f5f0a757e46e687b94a7ab2b" + integrity sha512-GftcVDcLCwVdzKmwOBDjATd548+IE+mBo7ttgatqNDR7VG7GqIuZPtRWlMLHbhTXhcnFZiGER8iIYl1n/imtsg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.7.4" + +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e" + integrity sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-decorators" "^7.8.3" + +"@babel/plugin-proposal-dynamic-import@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" + integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.7.4" + +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" + integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.7.4" + +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-object-rest-spread@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" + integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + +"@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" + integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" + integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" + integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" + integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" + integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" + integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-decorators@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.7.4.tgz#3c91cfee2a111663ff3ac21b851140f5a52a4e0b" + integrity sha512-0oNLWNH4k5ZbBVfAwiTU53rKFWIeTh6ZlaWOXWJc4ywxs0tjz5fc3uZ6jKAnZSxN98eXVgg7bJIuzjX+3SXY+A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda" + integrity sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-dynamic-import@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" + integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-json-strings@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" + integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec" + integrity sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-object-rest-spread@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" + integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" + integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" + integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-arrow-functions@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" + integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-async-to-generator@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" + integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.7.4" + +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" + integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" + integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" + integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.7.4" + "@babel/helper-define-map" "^7.7.4" + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-optimise-call-expression" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz#77534447a477cbe5995ae4aee3e39fbc8090c46d" + integrity sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" + integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" + integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" + integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-dotall-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" + integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-duplicate-keys@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" + integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" + integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" + integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz#a051bd1b402c61af97a27ff51b468321c7c2a085" + integrity sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-function-name@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" + integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== + dependencies: + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-literals@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" + integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-member-expression-literals@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" + integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" + integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== + dependencies: + "@babel/helper-module-transforms" "^7.7.5" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-amd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" + integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" + integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== + dependencies: + "@babel/helper-module-transforms" "^7.7.5" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.7.4" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" + integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" + integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== + dependencies: + "@babel/helper-hoist-variables" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" + integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" + integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== + dependencies: + "@babel/helper-module-transforms" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" + integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" + integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + +"@babel/plugin-transform-new-target@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" + integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-object-super@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" + integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.4" + +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" + integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== + dependencies: + "@babel/helper-call-delegate" "^7.7.4" + "@babel/helper-get-function-arity" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-parameters@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz#1d5155de0b65db0ccf9971165745d3bb990d77d3" + integrity sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA== + dependencies: + "@babel/helper-call-delegate" "^7.8.3" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" + integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" + integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-regenerator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" + integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" + integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-runtime@^7.7.6": + version "7.7.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.6.tgz#4f2b548c88922fb98ec1c242afd4733ee3e12f61" + integrity sha512-tajQY+YmXR7JjTwRvwL4HePqoL3DYxpYXIHKVvrOIvJmeHe2y1w4tz5qz9ObUDC9m76rCzIMPyn4eERuwA4a4A== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-runtime@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" + integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" + integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" + integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" + integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" + integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" + integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" + integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@^7.6.2", "@babel/preset-env@^7.7.6": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.7.4" + "@babel/plugin-proposal-dynamic-import" "^7.7.4" + "@babel/plugin-proposal-json-strings" "^7.7.4" + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" + "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/plugin-syntax-top-level-await" "^7.7.4" + "@babel/plugin-transform-arrow-functions" "^7.7.4" + "@babel/plugin-transform-async-to-generator" "^7.7.4" + "@babel/plugin-transform-block-scoped-functions" "^7.7.4" + "@babel/plugin-transform-block-scoping" "^7.7.4" + "@babel/plugin-transform-classes" "^7.7.4" + "@babel/plugin-transform-computed-properties" "^7.7.4" + "@babel/plugin-transform-destructuring" "^7.7.4" + "@babel/plugin-transform-dotall-regex" "^7.7.7" + "@babel/plugin-transform-duplicate-keys" "^7.7.4" + "@babel/plugin-transform-exponentiation-operator" "^7.7.4" + "@babel/plugin-transform-for-of" "^7.7.4" + "@babel/plugin-transform-function-name" "^7.7.4" + "@babel/plugin-transform-literals" "^7.7.4" + "@babel/plugin-transform-member-expression-literals" "^7.7.4" + "@babel/plugin-transform-modules-amd" "^7.7.5" + "@babel/plugin-transform-modules-commonjs" "^7.7.5" + "@babel/plugin-transform-modules-systemjs" "^7.7.4" + "@babel/plugin-transform-modules-umd" "^7.7.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" + "@babel/plugin-transform-new-target" "^7.7.4" + "@babel/plugin-transform-object-super" "^7.7.4" + "@babel/plugin-transform-parameters" "^7.7.7" + "@babel/plugin-transform-property-literals" "^7.7.4" + "@babel/plugin-transform-regenerator" "^7.7.5" + "@babel/plugin-transform-reserved-words" "^7.7.4" + "@babel/plugin-transform-shorthand-properties" "^7.7.4" + "@babel/plugin-transform-spread" "^7.7.4" + "@babel/plugin-transform-sticky-regex" "^7.7.4" + "@babel/plugin-transform-template-literals" "^7.7.4" + "@babel/plugin-transform-typeof-symbol" "^7.7.4" + "@babel/plugin-transform-unicode-regex" "^7.7.4" + "@babel/types" "^7.7.4" + browserslist "^4.6.0" + core-js-compat "^3.6.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/preset-env@^7.8.4": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.6.tgz#2a0773b08589ecba4995fc71b1965e4f531af40b" + integrity sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg== + dependencies: + "@babel/compat-data" "^7.8.6" + "@babel/helper-compilation-targets" "^7.8.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.8.6" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.8.6" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.8.3" + "@babel/plugin-transform-modules-systemjs" "^7.8.3" + "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.4" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/types" "^7.8.6" + browserslist "^4.8.5" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/runtime@^7.1.5", "@babel/runtime@^7.7.6": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" + integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" + integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" + integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.4" + "@babel/types" "^7.7.4" + +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" + integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.4" + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/parser" "^7.7.4" + "@babel/types" "^7.7.4" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" + integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" + integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@easylogic/colorpicker@^1.9.64": + version "1.9.65" + resolved "https://registry.yarnpkg.com/@easylogic/colorpicker/-/colorpicker-1.9.65.tgz#ab1e780b135a03dbfe76607aa9d13644f9c875e1" + integrity sha512-okANz1wWMAJ0nRrPGCvv5dLbdNPh4tOaUNC3/PsAX9hXVf4TqRyRhMwV1XNxWhJZfI1mqaf4IrfdD0FAeT+PBQ== + +"@gulp-sourcemaps/identity-map@1.X": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz#1e6fe5d8027b1f285dc0d31762f566bccd73d5a9" + integrity sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ== + dependencies: + acorn "^5.0.3" + css "^2.2.1" + normalize-path "^2.1.1" + source-map "^0.6.0" + through2 "^2.0.3" + +"@gulp-sourcemaps/map-sources@1.X": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= + dependencies: + normalize-path "^2.0.1" + through2 "^2.0.3" + +"@kazupon/vue-i18n-loader@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@kazupon/vue-i18n-loader/-/vue-i18n-loader-0.5.0.tgz#64819fc9dbe21bac523e3436b7e15c32bcd33b92" + integrity sha512-Tp2mXKemf9/RBhI9CW14JjR9oKjL2KH7tV6S0eKEjIBuQBAOFNuPJu3ouacmz9hgoXbNp+nusw3MVQmxZWFR9g== + dependencies: + js-yaml "^3.13.1" + json5 "^2.1.1" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nuxt/babel-preset-app@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.11.0.tgz#e89fdb7ef5c08dce13532ccf63a7064399f67ab0" + integrity sha512-2Y9NQrhzx1zjELPk3msADtH4WFXFslU8nQnRkEHMmgKAYSCGOoV+D5ZBzlCcMy+4IoK7HBzr0tIn4rRNRwjTuQ== + dependencies: + "@babel/core" "^7.7.5" + "@babel/plugin-proposal-class-properties" "^7.7.4" + "@babel/plugin-proposal-decorators" "^7.7.4" + "@babel/plugin-transform-runtime" "^7.7.6" + "@babel/preset-env" "^7.7.6" + "@babel/runtime" "^7.7.6" + "@vue/babel-preset-jsx" "^1.1.2" + core-js "^2.6.5" + +"@nuxt/builder@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.11.0.tgz#501fc60b9dae8956ffeb6ead890e708b631587aa" + integrity sha512-uIaY/MiNrgirneYn9goduh6eaRKJHovdXZ8cWESxFMolhenHaGRrjUeC8fKPFyS1mBjnweShg3bHAWjtLfFrIg== + dependencies: + "@nuxt/devalue" "^1.2.4" + "@nuxt/utils" "2.11.0" + "@nuxt/vue-app" "2.11.0" + chokidar "^3.3.1" + consola "^2.11.1" + fs-extra "^8.1.0" + glob "^7.1.6" + hash-sum "^2.0.0" + ignore "^5.1.4" + lodash "^4.17.15" + pify "^4.0.1" + semver "^7.1.0" + serialize-javascript "^2.1.2" + upath "^1.2.0" + +"@nuxt/cli@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.11.0.tgz#0655547b449b50be41f012abedc30458412b9417" + integrity sha512-f7fOopxz3NGKdgZ92RUM1oT4Xr5oAVqLyqEPEoa60oKKRuy/rf8gZ5DLANKjyE5vpj2dwYM1pPrabCloF/33zw== + dependencies: + "@nuxt/config" "2.11.0" + "@nuxt/utils" "2.11.0" + boxen "^4.2.0" + chalk "^2.4.2" + consola "^2.11.1" + esm "^3.2.25" + execa "^3.4.0" + exit "^0.1.2" + fs-extra "^8.1.0" + hable "^2.3.2" + minimist "^1.2.0" + opener "1.5.1" + pretty-bytes "^5.3.0" + std-env "^2.2.1" + wrap-ansi "^6.2.0" + +"@nuxt/config@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.11.0.tgz#d2b850d8a1b2a2b41726f3f02f6c1e4d59d7bd7f" + integrity sha512-7pB5R3N2JjNdbQpCR87tw3aROm5e9yV+XXMYXgxbH6yDAweuf3Bji4VJCWrkkE8VgLSLdtGQ5O0v8cT6dvf0cw== + dependencies: + "@nuxt/utils" "2.11.0" + consola "^2.11.1" + std-env "^2.2.1" + +"@nuxt/core@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.11.0.tgz#aae08ffabd665ca24f921196df95b27937b05760" + integrity sha512-ZhmdLG7r7vfw/UrH9cChKUwxbEub/tUTLdNbjRBtId5Zxm1x0+hgV2GX3VNlk9fyUzzcmVKzYP8Asxhy+ZMAGg== + dependencies: + "@nuxt/config" "2.11.0" + "@nuxt/devalue" "^1.2.4" + "@nuxt/server" "2.11.0" + "@nuxt/utils" "2.11.0" + "@nuxt/vue-renderer" "2.11.0" + consola "^2.11.1" + debug "^4.1.1" + esm "^3.2.25" + fs-extra "^8.1.0" + hable "^2.3.2" + hash-sum "^2.0.0" + std-env "^2.2.1" + +"@nuxt/devalue@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-1.2.4.tgz#69eca032b7481fd3c019a78ade65d642da3f2f35" + integrity sha512-hS87c2HdSfTk1d+2KQx7mQpebyd2HjguvZu/UBy9LB+kUgT1qz2+Sj38FH32yJALK6Fv49ZfOZEwgcZ4rcNLjg== + dependencies: + consola "^2.9.0" + +"@nuxt/friendly-errors-webpack-plugin@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.0.tgz#5374665bc72d34b7dbadcc361a4777e3f0f5d46b" + integrity sha512-pUgPFmRL56/xuTCGN5rqgTfxvs1N/AYJw7q7tUHiZaBm3UyPgbIVPkadS9njwbFbPD2XcebVy7npQMMVwQJWfA== + dependencies: + chalk "^2.3.2" + consola "^2.6.0" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + +"@nuxt/generator@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.11.0.tgz#8e13130eb8060a6dc374450d37b643ce9d538ad3" + integrity sha512-gPgl2AsbSbeoxmaH4YoejkMR7JEsh4Fpy08zdvpWYE1ZA9Y309DbhIKegpf8UCm7BTAEvC7/R6Dv2ByS/czXug== + dependencies: + "@nuxt/utils" "2.11.0" + chalk "^2.4.2" + consola "^2.11.1" + fs-extra "^8.1.0" + html-minifier "^4.0.0" + +"@nuxt/loading-screen@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-1.2.0.tgz#9cfab1e5e421bbaedadb26f7f27a68bcde313c24" + integrity sha512-l7nXgwkuX2/lDxEDAyIe3013MS8Jhja29uDVka21gyEbRnL68XOkoV3ws4dkk6QfhT2bcPwtu2C8tYvAhhhUzA== + dependencies: + connect "^3.7.0" + fs-extra "^8.1.0" + node-res "^5.0.1" + serve-static "^1.14.1" + +"@nuxt/opencollective@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.0.tgz#11d8944dcf2d526e31660bb69570be03f8fb72b7" + integrity sha512-Vf09BxCdj1iT2IRqVwX5snaY2WCTkvM0O4cWWSO1ThCFuc4if0Q/nNwAgCxRU0FeYHJ7DdyMUNSdswCLKlVqeg== + dependencies: + chalk "^2.4.2" + consola "^2.10.1" + node-fetch "^2.6.0" + +"@nuxt/server@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.11.0.tgz#63dc8a1147dd9905f0da302bee682b6d14bdfdab" + integrity sha512-MsLRKEci3UtlFapLRVfg6sd6fbQ0floJ6Q/KQdon6B0tXyWJFL7eoMUpfKGUWyrY1+gAi+fXrcusT3zBPq9XvQ== + dependencies: + "@nuxt/config" "2.11.0" + "@nuxt/utils" "2.11.0" + "@nuxtjs/youch" "^4.2.3" + chalk "^2.4.2" + compression "^1.7.4" + connect "^3.7.0" + consola "^2.11.1" + etag "^1.8.1" + fresh "^0.5.2" + fs-extra "^8.1.0" + ip "^1.1.5" + launch-editor-middleware "^2.2.1" + on-headers "^1.0.2" + pify "^4.0.1" + serve-placeholder "^1.2.1" + serve-static "^1.14.1" + server-destroy "^1.0.1" + +"@nuxt/utils@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.11.0.tgz#0185767fdb582b907d06a151d3e624a5ad7bede2" + integrity sha512-wnE+qMau0t9+zFWyovKM3mzTpTJl/umX0bn4pdCjK8dw6GZ1EfGmj83hRMW8SAawJooEB1R2xf7TWgohJ7feRQ== + dependencies: + consola "^2.11.1" + fs-extra "^8.1.0" + hash-sum "^2.0.0" + proper-lockfile "^4.1.1" + semver "^7.1.0" + serialize-javascript "^2.1.2" + signal-exit "^3.0.2" + ua-parser-js "^0.7.20" + +"@nuxt/vue-app@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.11.0.tgz#05aa5fd7cc69bcf6a763b89c51df3bd27b58869e" + integrity sha512-Eb1XB6LyqgjA0sbr2Ix5VCbq6+yJhEYetNe2TZ7wSeu3eWRSbE0bT5UpB6uvBGT6y95tQBNEJVGyLKvNAWAlkg== + dependencies: + node-fetch "^2.6.0" + unfetch "^4.1.0" + vue "^2.6.11" + vue-client-only "^2.0.0" + vue-meta "^2.3.1" + vue-no-ssr "^1.1.1" + vue-router "^3.1.3" + vue-template-compiler "^2.6.11" + vuex "^3.1.2" + +"@nuxt/vue-renderer@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.11.0.tgz#ada3aec1ad3eafc6b796b0631243d1b45e2ae2a6" + integrity sha512-Xqh3X0JOcwauXQwmOTNHVCwxfvZM0OjB86wUtu+B6molHEZK7XmtD/OUnsQSxcVSH5n+I2H2X2Yhg9H8gUsqBg== + dependencies: + "@nuxt/devalue" "^1.2.4" + "@nuxt/utils" "2.11.0" + consola "^2.11.1" + fs-extra "^8.1.0" + lru-cache "^5.1.1" + vue "^2.6.11" + vue-meta "^2.3.1" + vue-server-renderer "^2.6.11" + +"@nuxt/webpack@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.11.0.tgz#16d6349e6df10c7671c58ea5948e5f369aeeee84" + integrity sha512-QRU53bDcdzGhqZf5nfMzyI+n6uftqYUTTtCcF/1c03l258GaJ6m5Ky2UAcPRxK4OdO1PqJ/yaT2lonYOQYUrsg== + dependencies: + "@babel/core" "^7.7.5" + "@nuxt/babel-preset-app" "2.11.0" + "@nuxt/friendly-errors-webpack-plugin" "^2.5.0" + "@nuxt/utils" "2.11.0" + babel-loader "^8.0.6" + cache-loader "^4.1.0" + caniuse-lite "^1.0.30001016" + chalk "^2.4.2" + consola "^2.11.1" + css-loader "^3.3.2" + cssnano "^4.1.10" + eventsource-polyfill "^0.9.6" + extract-css-chunks-webpack-plugin "^4.7.1" + file-loader "^4.3.0" + glob "^7.1.6" + hard-source-webpack-plugin "^0.13.1" + hash-sum "^2.0.0" + html-webpack-plugin "^3.2.0" + memory-fs "^0.4.1" + optimize-css-assets-webpack-plugin "^5.0.3" + pify "^4.0.1" + postcss "^7.0.25" + postcss-import "^12.0.1" + postcss-import-resolver "^2.0.0" + postcss-loader "^3.0.0" + postcss-preset-env "^6.7.0" + postcss-url "^8.0.0" + semver "^7.1.0" + std-env "^2.2.1" + style-resources-loader "^1.3.2" + terser-webpack-plugin "^2.3.0" + thread-loader "^2.1.3" + time-fix-plugin "^2.0.6" + url-loader "^2.3.0" + vue-loader "^15.8.3" + webpack "^4.41.3" + webpack-bundle-analyzer "^3.6.0" + webpack-dev-middleware "^3.7.2" + webpack-hot-middleware "^2.25.0" + webpack-node-externals "^1.7.2" + webpackbar "^4.0.0" + +"@nuxtjs/axios@^5.9.3": + version "5.9.3" + resolved "https://registry.yarnpkg.com/@nuxtjs/axios/-/axios-5.9.3.tgz#9d99b10f752b49b42aaa3e2e5ca9484372ce86e9" + integrity sha512-+P1BK7MxMRL4q1WeYM9vyfocJrRoskbuD2TztKU8ryunK8JgpkIvqCzQxTI2BLUbOPd7qvjPLwzA0QBdzqYlaA== + dependencies: + "@nuxtjs/proxy" "^1.3.3" + axios "^0.19.1" + axios-retry "^3.1.2" + consola "^2.11.3" + defu "^0.0.4" + +"@nuxtjs/proxy@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@nuxtjs/proxy/-/proxy-1.3.3.tgz#3de3d9f073e8e57167168100940be2a824a220e0" + integrity sha512-ykpCUdOqPOH79mQG30QfWZmbRD8yjTD+TTSBbwow5GkROUQEtXw+HE+q6i+YFpuChvgJNbwVrXdZ3YmfXbZtTw== + dependencies: + consola "^2.5.6" + http-proxy-middleware "^0.19.1" + +"@nuxtjs/style-resources@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/style-resources/-/style-resources-1.0.0.tgz#7c4d6be19d7f7cc5d687d689f2ab16c0b94773a1" + integrity sha512-tDRcC/pm8B0Kpxtzb/1/HOBkv3/kPD+2FiCiUBGMB7YriRud9OUPw1pnYCsAH9ftwpMJS4k4XOyUY8FCTk6OxA== + dependencies: + consola "^2.4.0" + glob-all "^3.1.0" + sass-resources-loader "^2.0.0" + +"@nuxtjs/vuetify@^1.10.2": + version "1.10.2" + resolved "https://registry.yarnpkg.com/@nuxtjs/vuetify/-/vuetify-1.10.2.tgz#79d1f35ad76aa412985c4e83593e5d33a11b65ad" + integrity sha512-C8bCvk5UBAZVRlF+L2XhZPO790VZiXJcqZcbwf2Pa2QAgfE6H01tAQe9AnFEThpQADoAEGT8QoIaPciz0cFhFA== + dependencies: + deepmerge "^4.2.2" + fibers "^4.0.2" + sass "^1.24.5" + sass-loader "^8.0.2" + vuetify "^2.2.4" + vuetify-loader "^1.4.3" + +"@nuxtjs/youch@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed" + integrity sha512-XiTWdadTwtmL/IGkNqbVe+dOlT+IMvcBu7TvKI7plWhVQeBCQ9iKhk3jgvVWFyiwL2yHJDlEwOM5v9oVES5Xmw== + dependencies: + cookie "^0.3.1" + mustache "^2.3.0" + stack-trace "0.0.10" + +"@poziworld/oauth2orize@^1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@poziworld/oauth2orize/-/oauth2orize-1.11.1.tgz#22dff8b640626d0e48be0742beafd8fa17fdbfeb" + integrity sha512-3m+iUTwPtgO1kSjSHVv1G7qn7SZjMgm6MFphfuLOdxlFLOVhDzmX65gXANr8cFXDkvkPgJsbqP8VbYjbLn3Jxw== + dependencies: + debug "2.x.x" + uid2 "0.0.x" + utils-merge "1.x.x" + +"@sendgrid/client@^6.5.5": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-6.5.5.tgz#66cf569445d98a795998a894bb432a9939ead7c3" + integrity sha512-Nbfgo94gbWSL8PIgJfuHoifyOJJepvV8NQkkglctAEfb1hyozKhrzE6v1kPG/z4j0RodaTtXD5LJj/t0q/VhLA== + dependencies: + "@sendgrid/helpers" "^6.5.5" + "@types/request" "^2.48.4" + request "^2.88.0" + +"@sendgrid/helpers@^6.5.5": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-6.5.5.tgz#de6de9b94794fbf834b4f66a7d44af84bf736459" + integrity sha512-uRFEanalfss5hDsuzVXZ1wm7i7eEXHh1py80piOXjobiQ+MxmtR19EU+gDSXZ+uMcEehBGhxnb7QDNN0q65qig== + dependencies: + chalk "^2.0.1" + deepmerge "^4.2.2" + +"@sendgrid/mail@^6.2.1": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-6.5.5.tgz#45bef4e4878144304b6688867baa13179deecc4b" + integrity sha512-DSu8oTPI0BJFH60jMOG9gM+oeNMoRALFmdAYg2PIXpL+Zbxd7L2GzQZtmf1jLy/8UBImkbB3D74TjiOBiLRK1w== + dependencies: + "@sendgrid/client" "^6.5.5" + "@sendgrid/helpers" "^6.5.5" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/babel-types@*", "@types/babel-types@^7.0.0": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.7.tgz#667eb1640e8039436028055737d2b9986ee336e3" + integrity sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ== + +"@types/babylon@^6.16.2": + version "6.16.5" + resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.5.tgz#1c5641db69eb8cdf378edd25b4be7754beeb48b4" + integrity sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w== + dependencies: + "@types/babel-types" "*" + +"@types/caseless@*": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" + integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w== + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "13.1.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.1.tgz#6d11a8c2d58405b3db9388ab740106cbfa64c3c9" + integrity sha512-hx6zWtudh3Arsbl3cXay+JnkvVgCKzCWKv42C9J01N2T2np4h8w5X8u6Tpz5mj38kE3M9FM0Pazx8vKFFMnjLQ== + +"@types/pug@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2" + integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/request@^2.48.4": + version "2.48.5" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" + integrity sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ== + dependencies: + "@types/caseless" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" + +"@types/tough-cookie@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" + integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== + +"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" + integrity sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw== + +"@vue/babel-plugin-transform-vue-jsx@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz#c0a3e6efc022e75e4247b448a8fc6b86f03e91c0" + integrity sha512-YfdaoSMvD1nj7+DsrwfTvTnhDXI7bsuh+Y5qWwvQXlD24uLgnsoww3qbiZvWf/EoviZMrvqkqN4CBw0W3BWUTQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^4.1.2": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.2.3.tgz#608b2c9f7ca677e793833662fc727ff9137a9a35" + integrity sha512-Xlc8d9Ebgu9pNZMUxKZWVP2CctVZzfX3LAxjBDWAAIiVpdXX4IkQQCevDhgiANFzlmE3KXtiSgPGs57Sso2g7Q== + dependencies: + "@babel/core" "^7.8.4" + "@babel/helper-compilation-targets" "^7.8.4" + "@babel/helper-module-imports" "^7.8.3" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-decorators" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.8.3" + "@babel/preset-env" "^7.8.4" + "@babel/runtime" "^7.8.4" + "@vue/babel-preset-jsx" "^1.1.2" + babel-plugin-dynamic-import-node "^2.3.0" + core-js "^3.6.4" + core-js-compat "^3.6.4" + +"@vue/babel-preset-jsx@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz#2e169eb4c204ea37ca66c2ea85a880bfc99d4f20" + integrity sha512-zDpVnFpeC9YXmvGIDSsKNdL7qCG2rA3gjywLYHPCKDT10erjxF4U+6ay9X6TW5fl4GsDlJp9bVfAVQAAVzxxvQ== + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" + "@vue/babel-sugar-functional-vue" "^1.1.2" + "@vue/babel-sugar-inject-h" "^1.1.2" + "@vue/babel-sugar-v-model" "^1.1.2" + "@vue/babel-sugar-v-on" "^1.1.2" + +"@vue/babel-sugar-functional-vue@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz#f7e24fba09e6f1ee70104560a8808057555f1a9a" + integrity sha512-YhmdJQSVEFF5ETJXzrMpj0nkCXEa39TvVxJTuVjzvP2rgKhdMmQzlJuMv/HpadhZaRVMCCF3AEjjJcK5q/cYzQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz#8a5276b6d8e2ed16ffc8078aad94236274e6edf0" + integrity sha512-VRSENdTvD5htpnVp7i7DNuChR5rVMcORdXjvv5HVvpdKHzDZAYiLSD+GhnhxLm3/dMuk8pSzV+k28ECkiN5m8w== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz#1ff6fd1b800223fc9cb1e84dceb5e52d737a8192" + integrity sha512-vLXPvNq8vDtt0u9LqFdpGM9W9IWDmCmCyJXuozlq4F4UYVleXJ2Fa+3JsnTZNJcG+pLjjfnEGHci2339Kj5sGg== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz#b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b" + integrity sha512-T8ZCwC8Jp2uRtcZ88YwZtZXe7eQrJcfRq0uTFy6ShbwYJyz5qWskRFoVsdTi9o0WEhmQXxhQUewodOSCUPVmsQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" + camelcase "^5.0.0" + +"@vue/component-compiler-utils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.0.tgz#64cd394925f5af1f9c3228c66e954536f5311857" + integrity sha512-OJ7swvl8LtKtX5aYP8jHhO6fQBIRIGkU6rvWzK+CGJiNOnvg16nzcBkd9qMZzW8trI2AsqAKx263nv7kb5rhZw== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.14" + postcss-selector-parser "^5.0.0" + prettier "^1.18.2" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + +"@vuepress/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.3.1.tgz#36db30d13e917f172f931a78b5e916c923523675" + integrity sha512-BBtM3imJUPwCTz0Fzl++ZLgf1afcsas4jo/wbVvroIdI0R6GEbXdivnisVGD48tZ10WcwvY94tlL1jWO8xV6bg== + dependencies: + "@babel/core" "^7.8.4" + "@vue/babel-preset-app" "^4.1.2" + "@vuepress/markdown" "^1.3.1" + "@vuepress/markdown-loader" "^1.3.1" + "@vuepress/plugin-last-updated" "^1.3.1" + "@vuepress/plugin-register-components" "^1.3.1" + "@vuepress/shared-utils" "^1.3.1" + autoprefixer "^9.5.1" + babel-loader "^8.0.4" + cache-loader "^3.0.0" + chokidar "^2.0.3" + connect-history-api-fallback "^1.5.0" + copy-webpack-plugin "^5.0.2" + core-js "^3.6.4" + cross-spawn "^6.0.5" + css-loader "^2.1.1" + file-loader "^3.0.1" + js-yaml "^3.13.1" + lru-cache "^5.1.1" + mini-css-extract-plugin "0.6.0" + optimize-css-assets-webpack-plugin "^5.0.1" + portfinder "^1.0.13" + postcss-loader "^3.0.0" + postcss-safe-parser "^4.0.1" + toml "^3.0.0" + url-loader "^1.0.1" + vue "^2.6.10" + vue-loader "^15.7.1" + vue-router "^3.1.3" + vue-server-renderer "^2.6.10" + vue-template-compiler "^2.6.10" + vuepress-html-webpack-plugin "^3.2.0" + vuepress-plugin-container "^2.0.2" + webpack "^4.8.1" + webpack-chain "^6.0.0" + webpack-dev-server "^3.5.1" + webpack-merge "^4.1.2" + webpackbar "3.2.0" + +"@vuepress/markdown-loader@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.3.1.tgz#6ee5db3ef179c42db406e3542e90cc4a3f5baf39" + integrity sha512-JxjQgSClW51hE0bCrcAqnG0yrvVURzcZwP2zbWkcCMD7vomHbvkHyPmuf6oa8Jk4S//RQUYINrzC/KrDjVuzIQ== + dependencies: + "@vuepress/markdown" "^1.3.1" + loader-utils "^1.1.0" + lru-cache "^5.1.1" + +"@vuepress/markdown@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.3.1.tgz#9bd41e9b2fa7ed7e3364bc4883ef21f13bdd936d" + integrity sha512-UJoGHR9GsFnPk+Jot8tieO4M6WJQ5CkdIWlQfbpC1+Z0ETJjlNIel23BKLNzqfo3NhLq+/i33RnzMVzkBKlVvQ== + dependencies: + "@vuepress/shared-utils" "^1.3.1" + markdown-it "^8.4.1" + markdown-it-anchor "^5.0.2" + markdown-it-chain "^1.3.0" + markdown-it-emoji "^1.4.0" + markdown-it-table-of-contents "^0.4.0" + prismjs "^1.13.0" + +"@vuepress/plugin-active-header-links@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.3.1.tgz#b82a69b963edb3cf5361ef5a0a38642285757130" + integrity sha512-mrawXXAv2K1GrD1JNoFHxF8xX3KiphVcwvf+58GXpsyAQ5ag5X1BZG3gCA1JdNFUe3SXRh5jF6HTBuM2dc6Ovg== + dependencies: + lodash.debounce "^4.0.8" + +"@vuepress/plugin-last-updated@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.3.1.tgz#70f241181a0d485029329a7c9d0f0629d4242b5b" + integrity sha512-n1EhhFcaWxQtbC9ICyLg8kmSULjV18wYMbHCyaKRYAvyhlPau95zbSpQfG2Nl3ZgFR6kRodK6AmZUOgho0zh/g== + dependencies: + cross-spawn "^6.0.5" + +"@vuepress/plugin-nprogress@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.3.1.tgz#4fb519f3a88cdc07439ac3a08595ab7b5ed182a6" + integrity sha512-vDBnIhTgGZbADwhaatSLsFnuj+MDDpCWQ79m9o+8RtMZO2HemedcCRNIj/ZLRJSBFjXrDdnXF5lpW4EEIeRaew== + dependencies: + nprogress "^0.2.0" + +"@vuepress/plugin-register-components@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.3.1.tgz#0f0683b9f69542d3e7a6481e48011d623648b56b" + integrity sha512-ae/94omRTPZkJKuVic8Rvzfnu2NtqsyVPYTL6qcnjDgxieR3L7EAYLNEvYpg1jof+QTHoEDCaVU2c63chZcfEQ== + dependencies: + "@vuepress/shared-utils" "^1.3.1" + +"@vuepress/plugin-search@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.3.1.tgz#eee95c9c79a316a64ab046696a90a2ee1db35c34" + integrity sha512-iOIvMWUTPHrGxjDprFoGTcuI8Y8/6e6JjLO4mO6qe6qVqR1yCQ8cJzVYXIizjEHUFYJ04uZ3jF9gBV8npS+3ZQ== + +"@vuepress/shared-utils@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.3.1.tgz#930038dfadf28f39147e6cb781e9930259995a7e" + integrity sha512-MlIAlnptjDC9+l0SJKW6BpkuwtxfKDzq4Rmag75RdyIqkkNv4EsCXZ8Y3HSuzENWFBwoD31jLC+nCZ3hULcvSg== + dependencies: + chalk "^2.3.2" + diacritics "^1.3.0" + escape-html "^1.0.3" + fs-extra "^7.0.1" + globby "^9.2.0" + gray-matter "^4.0.1" + hash-sum "^1.0.2" + semver "^6.0.0" + upath "^1.1.0" + +"@vuepress/theme-default@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.3.1.tgz#ec701a2c9d2de542400c42f627d2009921f1b424" + integrity sha512-CihkB6/+5vfgeTI5HRDs4+QgTkIN4/K54OpQCGLW51OinXuz4rjMVQW2uSlSqSeKEr+MERHa+Jc5deIpA0opoA== + dependencies: + "@vuepress/plugin-active-header-links" "^1.3.1" + "@vuepress/plugin-nprogress" "^1.3.1" + "@vuepress/plugin-search" "^1.3.1" + docsearch.js "^2.5.2" + lodash "^4.17.15" + stylus "^0.54.5" + stylus-loader "^3.0.2" + vuepress-plugin-container "^2.0.2" + vuepress-plugin-smooth-scroll "^0.0.3" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +JSONStream@^1.0.3: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +accessory@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/accessory/-/accessory-1.1.0.tgz#7833e9839a32ded76d26021f36a41707a520f593" + integrity sha1-eDPpg5oy3tdtJgIfNqQXB6Ug9ZM= + dependencies: + ap "~0.2.0" + balanced-match "~0.2.0" + dot-parts "~1.0.0" + +accord@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/accord/-/accord-0.29.0.tgz#b741c176d00435c5929d466dfe8cf6bee933b1e4" + integrity sha512-3OOR92FTc2p5/EcOzPcXp+Cbo+3C15nV9RXHlOUBCBpHhcB+0frbSNR9ehED/o7sTcyGVtqGJpguToEdlXhD0w== + dependencies: + convert-source-map "^1.5.0" + glob "^7.0.5" + indx "^0.2.3" + lodash.clone "^4.3.2" + lodash.defaults "^4.0.1" + lodash.flatten "^4.2.0" + lodash.merge "^4.4.0" + lodash.partialright "^4.1.4" + lodash.pick "^4.2.1" + lodash.uniq "^4.3.0" + resolve "^1.5.0" + semver "^5.3.0" + uglify-js "^2.8.22" + when "^3.7.8" + +acorn-globals@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8= + dependencies: + acorn "^4.0.4" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" + integrity sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg== + +acorn@5.X, acorn@^5.0.0, acorn@^5.0.3, acorn@^5.2.1, acorn@^5.5.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^3.0.4, acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^4.0.4, acorn@~4.0.2: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= + +acorn@^6.0.7, acorn@^6.2.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" + integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== + +acorn@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + +addressparser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" + integrity sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y= + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" + integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +algoliasearch@^3.24.5: + version "3.35.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c" + integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ== + dependencies: + agentkeepalive "^2.2.0" + debug "^2.6.9" + envify "^4.0.0" + es6-promise "^4.1.0" + events "^1.1.0" + foreach "^2.0.5" + global "^4.3.2" + inherits "^2.0.1" + isarray "^2.0.1" + load-script "^1.0.0" + object-keys "^1.0.11" + querystring-es3 "^0.2.1" + reduce "^1.0.1" + semver "^5.1.0" + tunnel-agent "^0.6.0" + +aliasify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/aliasify/-/aliasify-2.1.0.tgz#7c30825b9450b9e6185ba27533eaf6e2067d4b42" + integrity sha1-fDCCW5RQueYYW6J1M+r24gZ9S0I= + dependencies: + browserify-transform-tools "~1.7.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + +ansi-colors@^3.0.0, ansi-colors@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= + dependencies: + ansi-wrap "0.1.0" + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.1.0, ansi-escapes@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" + integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== + dependencies: + type-fest "^0.8.1" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + dependencies: + ansi-wrap "0.1.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" + integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +any-promise@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +ap@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ap/-/ap-0.2.0.tgz#ae0942600b29912f0d2b14ec60c45e8f330b6110" + integrity sha1-rglCYAspkS8NKxTsYMRejzMLYRA= + +apidoc-core@~0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/apidoc-core/-/apidoc-core-0.8.3.tgz#d9d63545829df250d2cca049683a87e775364b96" + integrity sha1-2dY1RYKd8lDSzKBJaDqH53U2S5Y= + dependencies: + fs-extra "^3.0.1" + glob "^7.1.1" + iconv-lite "^0.4.17" + klaw-sync "^2.1.0" + lodash "~4.17.4" + semver "~5.3.0" + +apidoc@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/apidoc/-/apidoc-0.19.0.tgz#e7a498f63c44443e8e67a9ce47363758cc7b2c47" + integrity sha512-gnmyvcR3M6J80G3OQzmKQLq0SaZ3uA6wuXPWJO2qoHn83jb9dcoyQ0zqmuL4gmfA3P6g9SPshwcPLdAwclHzHA== + dependencies: + apidoc-core "~0.8.3" + commander "^2.20.0" + fs-extra "^8.1.0" + lodash "^4.17.15" + markdown-it "^10.0.0" + winston "^3.2.1" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + dependencies: + buffer-equal "^1.0.0" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +archive-type@^3.0.0, archive-type@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" + integrity sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y= + dependencies: + file-type "^3.1.0" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" + integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg== + dependencies: + archiver-utils "^2.1.0" + async "^2.6.3" + buffer-crc32 "^0.2.1" + glob "^7.1.4" + readable-stream "^3.4.0" + tar-stream "^2.1.0" + zip-stream "^2.1.2" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= + +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-find-index@^1.0.1, array-find-index@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-parallel@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/array-parallel/-/array-parallel-0.1.3.tgz#8f785308926ed5aa478c47e64d1b334b6c0c947d" + integrity sha1-j3hTCJJu1apHjEfmTRszS2wMlH0= + +array-series@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/array-series/-/array-series-0.1.5.tgz#df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f" + integrity sha1-3103v8XC7wdV4qpPkv6ufUtaly8= + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@^2.0.0, asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.0, asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1, assert@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-each-series@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138" + integrity sha1-9C/YFV048hpbjqB8KOBj7RcAsTg= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + dependencies: + async-done "^1.2.2" + +async@*, async@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772" + integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ== + +async@^2.1.4, async@^2.6.1, async@^2.6.2, async@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autocomplete.js@0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b" + integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q== + dependencies: + immediate "^3.2.3" + +autoprefixer-core@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/autoprefixer-core/-/autoprefixer-core-6.0.1.tgz#969f74b60e568c0cb1c638355f89ad6e6ae31ad2" + integrity sha1-lp90tg5WjAyxxjg1X4mtbmrjGtI= + dependencies: + autoprefixer "^6.0.0" + +autoprefixer@^6.0.0: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^9.5.1: + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== + dependencies: + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.26" + postcss-value-parser "^4.0.2" + +autoprefixer@^9.6.1, autoprefixer@^9.6.4: + version "9.7.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" + integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q== + dependencies: + browserslist "^4.8.0" + caniuse-lite "^1.0.30001012" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.23" + postcss-value-parser "^4.0.2" + +aws-sdk@^2.543.0: + version "2.596.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.596.0.tgz#1a4af0609e174a50ffb8ed8981981e6d77a614fb" + integrity sha512-Bp+gyqhLw8tK4sgM1v1PDSw26H1mSXs6yhQInmGzDKqXJor6UyUb9JskFv0zC/bA84XizlshN1BBIgINqk6pNg== + dependencies: + buffer "4.9.1" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c" + integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A== + +axios-retry@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.1.2.tgz#4f4dcbefb0b434e22b72bd5e28a027d77b8a3458" + integrity sha512-+X0mtJ3S0mmia1kTVi1eA3DAC+oWnT2A29g3CpkzcBPMT6vJm+hn/WiV9wPt/KXLHVmg5zev9mWqkPx7bHMovg== + dependencies: + is-retry-allowed "^1.1.0" + +axios@^0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +babel-loader@^8.0.4, babel-loader@^8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + pify "^4.0.1" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babelify@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" + integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +balanced-match@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.2.1.tgz#7bc658b4bed61eee424ad74f75f5c3e2c4df3cc7" + integrity sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc= + +base32.js@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" + integrity sha1-tYLexpPC8R6JPPBk7mrFthMaIgI= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +basic-auth@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" + integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= + +basic-auth@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcryptjs@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + +beeper@^1.0.0, beeper@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= + +beeper@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-2.0.0.tgz#ecda02439e3c0539d300c363303e4ffeb2daec70" + integrity sha512-+ShExQEewPvKdTUOtCAJmkUAgEyNF0QqgiAhPRE5xLvoFkIPt8xuHKaz1gMLzSMS73beHWs9gbRBngdH61nVWw== + dependencies: + delay "^4.1.0" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-build@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc" + integrity sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw= + dependencies: + archive-type "^3.0.1" + decompress "^3.0.0" + download "^4.1.2" + exec-series "^1.0.0" + rimraf "^2.2.6" + tempfile "^1.0.0" + url-regex "^3.0.0" + +bin-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" + integrity sha1-hvjm9CU4k99g3DFpV/WvAqywWTA= + dependencies: + executable "^1.0.0" + +bin-version-check@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" + integrity sha1-5OXfKQuQaffRETJAMe/BP90RpbA= + dependencies: + bin-version "^1.0.0" + minimist "^1.1.0" + semver "^4.0.3" + semver-truncate "^1.0.0" + +bin-version@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e" + integrity sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144= + dependencies: + find-versions "^1.0.0" + +bin-wrapper@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb" + integrity sha1-Z9MwYmLksaXy+I7iNGT2plVneus= + dependencies: + bin-check "^2.0.0" + bin-version-check "^2.1.0" + download "^4.0.0" + each-async "^1.1.1" + lazy-req "^1.0.0" + os-filter-obj "^1.0.0" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + +binaryextensions@2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.2.0.tgz#e7c6ba82d4f5f5758c26078fe8eea28881233311" + integrity sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw== + +bindings@^1.2.1, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^1.0.0, bl@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88" + integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A== + dependencies: + readable-stream "^3.0.1" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= + +bluebird@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== + +bluebird@^2.10.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= + +bluebird@^3.0.5, bluebird@^3.1.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +blueimp-canvas-to-blob@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.5.0.tgz#5679ac32f6a2835821f0c3ad661719ff85a9236b" + integrity sha1-VnmsMvaig1gh8MOtZhcZ/4WpI2s= + +blueimp-canvas-to-blob@^3.16.0: + version "3.17.0" + resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.17.0.tgz#d796e72aa1fd37f9471e0396e64d323956564a23" + integrity sha512-LcuVZZtKtE4yUrLb0IQA7ndMm19gooDTrzvjjkvmQ1MhkFlSzTw+8Ftp+/ckfGeP2UDQvDsPyy8mIT69itAqbg== + +blueimp-file-upload@^9.30.0: + version "9.34.0" + resolved "https://registry.yarnpkg.com/blueimp-file-upload/-/blueimp-file-upload-9.34.0.tgz#1a57744f262f7c86d575ddb1b3d98f0bdd06feea" + integrity sha512-dXacFmyv6p0n+l5+u1ssYhSpCJdYabl7BZTw5WvB6ygY2ksTB3SdD6huafryEO5DH+XuspHDL6+IJ3m14Va+FQ== + optionalDependencies: + blueimp-canvas-to-blob "3.5.0" + blueimp-load-image "2.12.2" + blueimp-tmpl "3.6.0" + +blueimp-load-image@2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/blueimp-load-image/-/blueimp-load-image-2.12.2.tgz#6a17598aab858d4fbf01543e0631141b51057c87" + integrity sha1-ahdZiquFjU+/AVQ+BjEUG1EFfIc= + +blueimp-load-image@^2.24.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/blueimp-load-image/-/blueimp-load-image-2.26.0.tgz#4cd3115f115d5ef9386b2ee15a504668987dfd05" + integrity sha512-pL7SYdK9ZxBFmFiEoh91PIYccU9IzytQ8goIUgc+5RW6vYVyvpGRUltefceeoNyLARbF8QXiYimHp6kgjZ/IBg== + +blueimp-tmpl@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/blueimp-tmpl/-/blueimp-tmpl-3.6.0.tgz#a4910975d042e2bc03ba77f0e62d04f1548a524c" + integrity sha1-pJEJddBC4rwDunfw5i0E8VSKUkw= + +blueimp-tmpl@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/blueimp-tmpl/-/blueimp-tmpl-3.13.0.tgz#910c337d5742a8a17e3237139389853ebc9ced56" + integrity sha512-TC5eLXhPGGgBJG1gGxKRORB5DMxSVSTS/GsqsQuJ+shv0Ez5wc9bjoXVhPqtdbzVZAzFvveasAMrjqEYY/18Og== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.19.0, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bowser@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.8.1.tgz#35b74165e17b80ba8af6aa4736c2861b001fc09e" + integrity sha512-FxxltGKqMHkVa3KtpA+kdnxH0caHPDewccyrK3vW1bsMw6Zco4vRPmMunowX0pXlDZqhxkKSpToADQI2Sk4OeQ== + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-shim@^3.8.14: + version "3.8.14" + resolved "https://registry.yarnpkg.com/browserify-shim/-/browserify-shim-3.8.14.tgz#bf1057026932d3253c75ef7dd714f3b877edec6b" + integrity sha1-vxBXAmky0yU8de991xTzuHft7Gs= + dependencies: + exposify "~0.5.0" + mothership "~0.2.0" + rename-function-calls "~0.1.0" + resolve "~0.6.1" + through "~2.3.4" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-transform-tools@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/browserify-transform-tools/-/browserify-transform-tools-1.7.0.tgz#83e277221f63259bed2e7eb2a283a970a501f4c4" + integrity sha1-g+J3Ih9jJZvtLn6yooOpcKUB9MQ= + dependencies: + falafel "^2.0.0" + through "^2.3.7" + +browserify-versionify@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-versionify/-/browserify-versionify-1.0.6.tgz#ab2dc61d6a119e627bec487598d1983b7fdb275e" + integrity sha1-qy3GHWoRnmJ77Eh1mNGYO3/bJ14= + dependencies: + find-root "^0.1.1" + through2 "0.6.3" + +browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserify@16.2.3: + version "16.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" + integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserify@^16.1.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.0.tgz#a1c2bc0431bec11fd29151941582e3f645ede881" + integrity sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.2: + version "4.8.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" + integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== + dependencies: + caniuse-lite "^1.0.30001015" + electron-to-chromium "^1.3.322" + node-releases "^1.1.42" + +browserslist@^4.8.3, browserslist@^4.8.5: + version "4.9.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.0.tgz#ff85c390889e0f754d7bd8ad13412575cdcf5dc7" + integrity sha512-seffIXhwgB84+OCeT/aMjpZnsAsYDiMSC+CEs3UkF8iU64BZGYcu+TZYs/IBpo4nRi0vJywUJWYdbTsOhFTweg== + dependencies: + caniuse-lite "^1.0.30001030" + electron-to-chromium "^1.3.361" + node-releases "^1.1.50" + +bson@^1.1.1, bson@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.3.tgz#aa82cb91f9a453aaa060d6209d0675114a8154d3" + integrity sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg== + +bson@~1.0.4: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" + integrity sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg== + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-json@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" + integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + +buffer-to-vinyl@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" + integrity sha1-APFfruOreh3aLN5tkSG//dB7ImI= + dependencies: + file-type "^3.1.0" + readable-stream "^2.0.2" + uuid "^2.0.1" + vinyl "^1.0.0" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.0.2, buffer@^5.1.0: + version "5.4.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" + integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bump-regex@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bump-regex/-/bump-regex-3.1.1.tgz#fc2ee36071cbc06959fa68707f2e6b40abe89edf" + integrity sha512-NinFibU11G1ad/2Ji3J04lRC9mLpUGr3C0vtt4Yp049cDeW21NRkmUaZZc+snwlL6gE+Ja5cQfe/hf86Ahj+WQ== + dependencies: + semver "^5.1.0" + xtend "^4.0.1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cac@^6.5.6: + version "6.5.6" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.5.6.tgz#0120e39c9e56a7ab6418b078e6ad0595f2982375" + integrity sha512-8jsGLeBiYEVYTDExaj/rDPG4tyra4yjjacIL10TQ+MobPcg9/IST+dkKLu6sOzq0GcIC6fQqX1nkH9HoskQLAw== + +cacache@^12.0.2, cacache@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-loader@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af" + integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw== + dependencies: + buffer-json "^2.0.0" + find-cache-dir "^2.1.0" + loader-utils "^1.2.3" + mkdirp "^0.5.1" + neo-async "^2.6.1" + schema-utils "^1.0.0" + +cache-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" + integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== + dependencies: + buffer-json "^2.0.0" + find-cache-dir "^3.0.0" + loader-utils "^1.2.3" + mkdirp "^0.5.1" + neo-async "^2.6.1" + schema-utils "^2.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" + integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camel-case@3.0.x, camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30001016" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001016.tgz#2712424b6667fbb5edea8a42fc5f4c9505271631" + integrity sha512-4G/7ef/NFSAsn9nFIiPvQr+ayoeLJP3wnQH23BPBJKofNdxFild5dokOjUj4tLFA5yd/VHllhzX55IPLwXhRtg== + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001015, caniuse-lite@^1.0.30001016: + version "1.0.30001016" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" + integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== + +caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: + version "1.0.30001030" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz#78076c4c6d67d3e41d6eb9399853fb27fe6e44ee" + integrity sha512-QGK0W4Ft/Ac+zTjEiRJfwDNATvS3fodDczBXrH42784kcfqcDKpEPfN08N0HQjrAp8He/Jw8QiSS9QRn7XAbUw== + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +caw@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" + integrity sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ= + dependencies: + get-proxy "^1.0.1" + is-obj "^1.0.0" + object-assign "^3.0.0" + tunnel-agent "^0.4.0" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-parser@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + dependencies: + is-regex "^1.0.3" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.1" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" + integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.3.0" + optionalDependencies: + fsevents "~2.1.2" + +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.1, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^1.5.0, ci-info@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.1, clean-css@4.2.x, clean-css@^4.1.11, clean-css@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +clipboard@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" + integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= + +clone@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +co-bluebird@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/co-bluebird/-/co-bluebird-1.1.0.tgz#c8b9f3a9320a7ed30987dcca1a5c3cff59655c7c" + integrity sha1-yLnzqTIKftMJh9zKGlw8/1llXHw= + dependencies: + bluebird "^2.10.0" + co-use "^1.1.0" + +co-use@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/co-use/-/co-use-1.1.0.tgz#c6bb3cdf10cb735ecaa9daeeda46d725c94a4e62" + integrity sha1-xrs83xDLc17Kqdru2kbXJclKTmI= + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + integrity sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +coffeescript@~1.12.7: + version "1.12.7" + resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" + integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +color@^3.0.0, color@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colornames@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" + integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= + +colors@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colorspace@1.1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + dependencies: + color "3.0.x" + text-hex "1.0.x" + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.15.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compress-commons@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" + integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^3.0.1" + normalize-path "^3.0.0" + readable-stream "^2.3.6" + +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@1.6.2, concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +connect-ensure-login@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz#174dcc51243b9eac23f8d98215aeb6694e2e8a12" + integrity sha1-F03MUSQ7nqwj+NmCFa62aU4uihI= + +connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect-livereload@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.6.1.tgz#1ac0c8bb9d9cfd5b28b629987a56a9239db9baaa" + integrity sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g== + +connect-mongo@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/connect-mongo/-/connect-mongo-2.0.3.tgz#db6cabe1e3add5acc9ef9c486681027675a58ee5" + integrity sha512-Vs+QZ/6X6gbCrP1Ls7Oh/wlyY6pgpbPSrUKF5yRT+zd+4GZPNbjNquxquZ+Clv2+03HBXE7T4lVM0PUcaBhihg== + dependencies: + mongodb "^2.0.36" + +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +consola@^2.10.0, consola@^2.10.1, consola@^2.11.1, consola@^2.4.0, consola@^2.5.6, consola@^2.6.0, consola@^2.9.0: + version "2.11.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.11.2.tgz#e2d2028d634b2c44db81c26cc328b8e42d24f2f5" + integrity sha512-kiOd0jqR5wo4swTf/aTu/Y+mynBjFD70tEpVS83jMtzqahKLPLJTDjVFDhg9ihuiWVV5TLQ43LlwleXuz2yYKg== + +consola@^2.11.3: + version "2.11.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.11.3.tgz#f7315836224c143ac5094b47fd4c816c2cd1560e" + integrity sha512-aoW0YIIAmeftGR8GSpw6CGQluNdkWMWh3yEFjH/hmynTYnMtibXszii3lxCXmk8YxJtI3FAK5aTiquA5VH68Gw== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +constantinople@^3.0.1, constantinople@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647" + integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw== + dependencies: + "@types/babel-types" "^7.0.0" + "@types/babylon" "^6.16.2" + babel-types "^6.26.0" + babylon "^6.18.0" + +constants-browserify@^1.0.0, constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-security-policy-builder@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb" + integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ== + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.X, convert-source-map@^1.1.1, convert-source-map@^1.5.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= + +cookie-parser@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.4.tgz#e6363de4ea98c3def9697b93421c09f30cf5d188" + integrity sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw== + dependencies: + cookie "0.3.1" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1, cookie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + +copy-webpack-plugin@^5.0.2: + version "5.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" + integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== + dependencies: + cacache "^12.0.3" + find-cache-dir "^2.1.0" + glob-parent "^3.1.0" + globby "^7.1.1" + is-glob "^4.0.1" + loader-utils "^1.2.3" + minimatch "^3.0.4" + normalize-path "^3.0.0" + p-limit "^2.2.1" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + webpack-log "^2.0.0" + +core-js-compat@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.1.tgz#39638c935c83c93a793abb628b252ec43e85783a" + integrity sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg== + dependencies: + browserslist "^4.8.2" + semver "7.0.0" + +core-js-compat@^3.6.2, core-js-compat@^3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== + dependencies: + browserslist "^4.8.3" + semver "7.0.0" + +core-js@^2.4.0, core-js@^2.6.5: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-js@^3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc32-stream@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" + integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w== + dependencies: + crc "^3.4.4" + readable-stream "^3.4.0" + +crc@^3.4.4: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0, create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cropperjs@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.5.6.tgz#82faf432bec709d828f2f7a96d1179198edaf0e2" + integrity sha512-eAgWf4j7sNJIG329qUHIFi17PSV0VtuWyAu9glZSgu/KlQSrfTQOC2zAz+jHGa5fAB+bJldEnQwvJEaJ8zRf5A== + +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" + integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== + dependencies: + camelcase "^5.2.0" + icss-utils "^4.1.0" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.14" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.6" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^2.0.0" + postcss-value-parser "^3.3.0" + schema-utils "^1.0.0" + +css-loader@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.0.tgz#9fb263436783117a41d014e45e8eaeba54dd6670" + integrity sha512-JornYo4RAXl1Mzt0lOSVPmArzAMV3rGY2VuwtaDc732WTWjdwTaeS19nCGWMcSCf305Q396lhhDAJEWWM0SgPQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.23" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.1.1" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" + +css-parse@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" + integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= + dependencies: + css "^2.0.0" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0, css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +css@2.X, css@^2.0.0, css@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" + integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg== + dependencies: + css-tree "1.0.0-alpha.37" + +csswring@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/csswring/-/csswring-7.0.0.tgz#a5873f727ecedbb33900a864ee5d8ea7413333e8" + integrity sha512-yl9lWqdhVn4gD0Vf00BMKKFuLq19hpz87VTDBRYFa+xWjRdfa/+bddCsWN7mbwfXWFoL5RwDOJmKakkC/VaH7w== + dependencies: + minimist "^1.2.0" + onecolor "^3.0.5" + postcss "^7.0.0" + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dasherize@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308" + integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg= + +datauri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/datauri/-/datauri-2.0.0.tgz#ff0ee23729935a6bcc81f301621bed3e692bf3c7" + integrity sha512-zS2HSf9pI5XPlNZgIqJg/wCJpecgU/HA6E/uv2EfaWnW1EiTGLfy/EexTIsC9c99yoCOTXlqeeWk4FkCSuO3/g== + dependencies: + image-size "^0.7.3" + mimer "^1.0.0" + +dateformat@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug-fabulous@1.X: + version "1.1.0" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" + integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== + dependencies: + debug "3.X" + memoizee "0.4.X" + object-assign "4.X" + +debug@*, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@2, debug@2.6.9, debug@2.x.x, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@=3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@3.X, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-tar@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" + integrity sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY= + dependencies: + is-tar "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-tarbz2@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" + integrity sha1-iyOTVoE1X58YnYclag+L3ZbZZm0= + dependencies: + is-bzip2 "^1.0.0" + object-assign "^2.0.0" + seek-bzip "^1.0.3" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-targz@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" + integrity sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA= + dependencies: + is-gzip "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-unzip@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" + integrity sha1-YUdbQVIGa74/7hL51inRX+ZHjus= + dependencies: + is-zip "^1.0.0" + read-all-stream "^3.0.0" + stat-mode "^0.2.0" + strip-dirs "^1.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + yauzl "^2.2.1" + +decompress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" + integrity sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0= + dependencies: + buffer-to-vinyl "^1.0.0" + concat-stream "^1.4.6" + decompress-tar "^3.0.0" + decompress-tarbz2 "^3.0.0" + decompress-targz "^3.0.0" + decompress-unzip "^3.0.0" + stream-combiner2 "^1.1.1" + vinyl-assign "^1.0.1" + vinyl-fs "^2.2.0" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-passive-events@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/default-passive-events/-/default-passive-events-1.0.10.tgz#28ad3269648a76a0158f413d66e37af24dad053a" + integrity sha1-KK0yaWSKdqAVj0E9ZuN68k2tBTo= + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +defu@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/defu/-/defu-0.0.1.tgz#74dc4d64e401d7f95c6755fe98bc5cd688833a8f" + integrity sha512-Pz9yznbSzVTNA67lcfqVnktROx2BrrBBcmQqGrfe0zdiN5pl5GQogLA4uaP3U1pR1LHIZpEYTAh2sn+v4rH1dA== + +defu@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-0.0.4.tgz#9294753fff9a88217635ed387e4a451f1738e6ff" + integrity sha512-rgzSYjB7bq5P6uPTPOlFYy/hw4SR/Ml+SM/ZlRx1BEcgUmcTA8yqnzByRiA4npIuJPb1uRJo6ROx++Xs5QooqQ== + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delay@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-4.3.0.tgz#efeebfb8f545579cb396b3a722443ec96d14c50e" + integrity sha512-Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE= + +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deps-sort@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + dependencies: + JSONStream "^1.0.3" + shasum-object "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@^1.0.4, destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@2.X: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detective@^4.5.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e" + integrity sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig== + dependencies: + acorn "^5.2.1" + defined "^1.0.0" + +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + +detective@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-3.1.0.tgz#77782444ab752b88ca1be2e9d0a0395f1da25eed" + integrity sha1-d3gkRKt1K4jKG+Lp0KA5Xx2iXu0= + dependencies: + escodegen "~1.1.0" + esprima-fb "3001.1.0-dev-harmony-fb" + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + +diacritics@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1" + integrity sha1-PvqHMj67hj5mls67AILUj/PW96E= + +diagnostics@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" + integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== + dependencies: + colorspace "1.1.x" + enabled "1.0.x" + kuler "1.0.x" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dimport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dimport/-/dimport-1.0.0.tgz#d5c09564f621e7b24b2e333cccdf9b2303011644" + integrity sha512-r5Cb8jvJ9YOTKQje2wrD6ncjpyDM4l94+OqgatYNzTb0viKS0/XomCjty1+F827u1pBiPt1ubSYdowZfE1L5Tw== + dependencies: + rewrite-imports "^2.0.3" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-prefetch-control@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz#73988161841f3dcc81f47686d539a2c702c88624" + integrity sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q== + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +docsearch.js@^2.5.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d" + integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A== + dependencies: + algoliasearch "^3.24.5" + autocomplete.js "0.36.0" + hogan.js "^3.0.2" + request "^2.87.0" + stack-utils "^1.0.1" + to-factory "^1.0.0" + zepto "^1.2.0" + +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0, dom-serializer@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0, dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + +domain-browser@^1.1.1, domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" + integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== + dependencies: + domelementtype "^2.0.1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.0.0.tgz#15b8278e37bfa8468d157478c58c367718133c08" + integrity sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg== + dependencies: + dom-serializer "^0.2.1" + domelementtype "^2.0.1" + domhandler "^3.0.0" + +dont-sniff-mimetype@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2" + integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug== + +dot-parts@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dot-parts/-/dot-parts-1.0.1.tgz#884bd7bcfc3082ffad2fe5db53e494d8f3e0743f" + integrity sha1-iEvXvPwwgv+tL+XbU+SU2PPgdD8= + +dot-prop@^4.1.0, dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +download@^4.0.0, download@^4.1.2: + version "4.4.3" + resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" + integrity sha1-qlX9rTktldS2jowr4D4MKqIbqaw= + dependencies: + caw "^1.0.1" + concat-stream "^1.4.7" + each-async "^1.0.0" + filenamify "^1.0.1" + got "^5.0.0" + gulp-decompress "^1.2.0" + gulp-rename "^1.2.0" + is-url "^1.2.0" + object-assign "^4.0.1" + read-all-stream "^3.0.0" + readable-stream "^2.0.2" + stream-combiner2 "^1.1.1" + vinyl "^1.0.0" + vinyl-fs "^2.2.0" + ware "^1.2.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-async@^1.0.0, each-async@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" + integrity sha1-3uUim98KtrogEqOV4bhpq/iBNHM= + dependencies: + onetime "^1.0.0" + set-immediate-shim "^1.0.0" + +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editions@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" + integrity sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg== + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.322: + version "1.3.322" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" + integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== + +electron-to-chromium@^1.3.361: + version "1.3.362" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.362.tgz#9ed33f9d0673888d6a2614347b4b63b490009408" + integrity sha512-xdU5VCoZyMPMOWtCaMgbr48OwWZHrMLbGnAOlEqibXiIGsb4kiCGWEHK5NOghcVLdBVIbr/BW+yuKxVuGTtzEg== + +elliptic@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +enabled@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" + integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= + dependencies: + env-variable "0.0.x" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" + integrity sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" + integrity sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w== + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~6.1.0" + +enhanced-resolve@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0, entities@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-variable@0.0.x: + version "0.0.5" + resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88" + integrity sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA== + +envify@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e" + integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw== + dependencies: + esprima "^4.0.0" + through "~2.3.4" + +envinfo@^7.2.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" + integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.4.tgz#a757397dc5d9de973ac9a5d7d4e8ade7cfae9101" + integrity sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ== + dependencies: + stackframe "^1.1.0" + +es-abstract@^1.17.0-next.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + integrity sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q= + +es6-promise@^4.0.3, es6-promise@^4.1.0: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.1.0.tgz#c663923f6e20aad48d0c0fa49f31c6d4f49360cf" + integrity sha1-xmOSP24gqtSNDA+knzHG1PSTYM8= + dependencies: + esprima "~1.0.4" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.30" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + +espree@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima-fb@3001.1.0-dev-harmony-fb: + version "3001.1.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" + integrity sha1-t303q8046gt3Qmu4vCkizmtCZBE= + +esprima@^2.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= + +etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@1.1.1, events@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +eventsource-polyfill@^0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz#10e0d187f111b167f28fdab918843ce7d818f13c" + integrity sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw= + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evol-colorpicker@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/evol-colorpicker/-/evol-colorpicker-3.4.1.tgz#2608c72172965e193fe2718120df478ba3b00329" + integrity sha512-Fn4rkOTyd5j4hYpy8JXydwwTSguwbjZ6WpiPscb0sfM64mzeEeMLiDq7b3FDje27iA4bKTxwkI4hKgXnJxAaEA== + dependencies: + jquery "~3.4.1" + jquery-ui "~1.12.1" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-series@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a" + integrity sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo= + dependencies: + async-each-series "^1.1.0" + object-assign "^4.1.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +executable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" + integrity sha1-h3mA6REvM5EGbaNyZd562ENKtNk= + dependencies: + meow "^3.1.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect-ct@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62" + integrity sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g== + +exposify@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/exposify/-/exposify-0.5.0.tgz#f92d0094c265b3f553e1fa456a03a1883d1059cc" + integrity sha1-+S0AlMJls/VT4fpFagOhiD0QWcw= + dependencies: + globo "~1.1.0" + map-obj "~1.0.1" + replace-requires "~1.0.3" + through2 "~0.4.0" + transformify "~0.1.1" + +express-async-handler@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/express-async-handler/-/express-async-handler-1.1.4.tgz#225a84908df63b35ae9df94b6f0f1af061266426" + integrity sha512-HdmbVF4V4w1q/iz++RV7bUxIeepTukWewiJGkoCKQMtvPF11MLTa7It9PRc/reysXXZSEyD4Pthchju+IUbMiQ== + +express-favicon@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/express-favicon/-/express-favicon-2.0.1.tgz#6d852a1bc576ac72db006d3550cc09b23a96eef7" + integrity sha512-KZZF9lIUKU9lkyZM/7AVql7qeXA6EVkHCU5rGU4NvgbWNcYFn6zvCw3cwS5IY/vvP+MzVNVvBABnWfaVZoy7bQ== + +express-oauth-server@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/express-oauth-server/-/express-oauth-server-2.0.0.tgz#57b08665c1201532f52c4c02f19709238b99a48d" + integrity sha1-V7CGZcEgFTL1LEwC8ZcJI4uZpI0= + dependencies: + bluebird "^3.0.5" + express "^4.13.3" + oauth2-server "3.0.0" + +express-session@^1.16.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz#9b50dbb5e8a03c3537368138f072736150b7f9b3" + integrity sha512-t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg== + dependencies: + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~2.0.0" + on-headers "~1.0.2" + parseurl "~1.3.3" + safe-buffer "5.2.0" + uid-safe "~2.1.5" + +express@^4.13.3, express@^4.16.3, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-css-chunks-webpack-plugin@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-4.7.1.tgz#8bfb94463a8d31c80d88b9c419507c472d810657" + integrity sha512-dpcOJA3wQk4rbgbOGRXyK3Gjl+/Ng8miD162/0uol31Ld4PLnQqIMbKV6ju/gi+uwfZIQcBW3KW1pmfU0epmDg== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-external-import "^0.3.0-beta.0" + webpack-sources "^1.1.0" + +extract-zip@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + dependencies: + concat-stream "1.6.2" + debug "2.6.9" + mkdirp "0.5.1" + yauzl "2.4.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +falafel@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" + integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= + dependencies: + acorn "^5.0.0" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +fancy-log@^1.1.0, fancy-log@^1.2.0, fancy-log@^1.3.2, fancy-log@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-safe-stringify@^2.0.4, fast-safe-stringify@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= + dependencies: + pend "~1.2.0" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +feature-policy@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069" + integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ== + +fecha@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== + +fibers@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fibers/-/fibers-4.0.2.tgz#d04f9ccd0aba179588202202faeb4fed65d497f5" + integrity sha512-FhICi1K4WZh9D6NC18fh2ODF3EWy1z0gzIdV9P7+s2pRjfRBnCkMDJ6x3bV1DkVymKH8HGrQa/FNOBjYvnJ/tQ== + dependencies: + detect-libc "^1.0.3" + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" + integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + +file-loader@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +filename-reserved-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" + integrity sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q= + +filenamify@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" + integrity sha1-qfL/0RxQO+0wABUCknI3jx8TZaU= + dependencies: + filename-reserved-regex "^1.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" + integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.0" + pkg-dir "^4.1.0" + +find-parent-dir@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= + +find-root@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" + integrity sha1-mNImfP8ZFsyvJ0OzoO6oHXnX3NE= + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62" + integrity sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I= + dependencies: + array-uniq "^1.0.0" + get-stdin "^4.0.1" + meow "^3.5.0" + semver-regex "^1.0.0" + +findup-sync@3.0.0, findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + dependencies: + debug "^3.0.0" + +font-awesome@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" + integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-stream@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/fork-stream/-/fork-stream-0.0.4.tgz#db849fce77f6708a5f8f386ae533a0907b54ae70" + integrity sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA= + +form-data@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formidable@>=1.0.11, formidable@^1.0.17: + version "1.2.1" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" + integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg== + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +frameguard@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22" + integrity sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g== + +fresh@0.5.2, fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-copy-file-sync@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz#11bf32c096c10d126e5f6b36d06eece776062918" + integrity sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ== + +fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" + integrity sha512-40Qz+LFXmd9tzYVnnBmZvFfvAADfUA14TXPK1s7IfElJTIZ97rA8w4Kin7Wt5JBrC3ShnnFJO/5vPjPEeJIq9A== + dependencies: + minipass "^3.0.0" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.11" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@~1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-proxy@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" + integrity sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus= + dependencies: + rc "^1.1.2" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gifsicle-stream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/gifsicle-stream/-/gifsicle-stream-0.3.1.tgz#db990390543c990c541cd5577179939b89130842" + integrity sha1-25kDkFQ8mQxUHNVXcXmTm4kTCEI= + dependencies: + gifsicle "^3.0.0" + memoizeasync "^0.8.0" + which "^1.0.9" + +gifsicle@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-3.0.4.tgz#f45cb5ed10165b665dc929e0e9328b6c821dfa3b" + integrity sha1-9Fy17RAWW2ZdySng6TKLbIId+js= + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-all@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" + integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= + dependencies: + glob "^7.0.5" + yargs "~1.2.6" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0, glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + dependencies: + is-glob "^4.0.1" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + integrity sha1-pVZlqajM3EGRWofHAeMtTgFvrSI= + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" + +glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-dirs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + dependencies: + ini "^1.3.5" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +globo@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/globo/-/globo-1.1.0.tgz#0d26098955dea422eb2001b104898b0a101caaf3" + integrity sha1-DSYJiVXepCLrIAGxBImLChAcqvM= + dependencies: + accessory "~1.1.0" + is-defined "~1.0.0" + ternary "~1.0.0" + +globule@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.0.tgz#41d0e9fb44afd4b80d93a23263714f90b3dec904" + integrity sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +gm@^1.23.1: + version "1.23.1" + resolved "https://registry.yarnpkg.com/gm/-/gm-1.23.1.tgz#2edeeb958084d0f8ea7988e5d995b1c7dfc14777" + integrity sha1-Lt7rlYCE0PjqeYjl2ZWxx9/BR3c= + dependencies: + array-parallel "~0.1.3" + array-series "~0.1.5" + cross-spawn "^4.0.0" + debug "^3.1.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + integrity sha1-X4FjWmHkplifGAVp6k44FoClHzU= + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +gray-matter@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" + integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== + dependencies: + js-yaml "^3.11.0" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +growl@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.7.0.tgz#de2d66136d002e112ba70f3f10c31cf7c350b2da" + integrity sha1-3i1mE20ALhErpw8/EMMc98NQsto= + +gulp-beautify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-beautify/-/gulp-beautify-3.0.0.tgz#97ddaef9deeff0e491553f4c3621d0d6abb83134" + integrity sha512-Srxzb7+AQjNm+NkEVpLBfnFtN93jofVc4d4qI+N4MTPRF/vZ14jC4QA6WUZsZZZxc/oYk4bjcqQOUhmopFWlXg== + dependencies: + js-beautify "^1.8.8" + through2 "^2.0.0" + +gulp-bump@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/gulp-bump/-/gulp-bump-3.1.3.tgz#a9e4b4691e46faeb6759140c21ece40b0a3f9e76" + integrity sha512-mhu6IvwMl2lHU2EUSkcgYG+Gd0Hwzn2B5ve4OXwaIg4SgmtVLTJ1graKD4t82ExhkU+TGoK/DHAdMJJ5isFe9g== + dependencies: + bump-regex "^3.1.1" + plugin-error "^1.0.1" + plugin-log "^0.1.0" + semver "^5.3.0" + through2 "^2.0.1" + +gulp-clean-css@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz#915ec258dc6d3e6a50043f610066d5c2eac4f54e" + integrity sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA== + dependencies: + clean-css "4.2.1" + plugin-error "1.0.1" + through2 "3.0.1" + vinyl-sourcemaps-apply "0.2.1" + +gulp-cli@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" + integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" + +gulp-concat@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" + integrity sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M= + dependencies: + concat-with-sourcemaps "^1.0.0" + through2 "^2.0.0" + vinyl "^2.0.0" + +gulp-decompress@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" + integrity sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc= + dependencies: + archive-type "^3.0.0" + decompress "^3.0.0" + gulp-util "^3.0.1" + readable-stream "^2.0.2" + +gulp-filter@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" + integrity sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM= + dependencies: + multimatch "^2.0.0" + plugin-error "^0.1.2" + streamfilter "^1.0.5" + +gulp-if@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-2.0.2.tgz#a497b7e7573005041caa2bc8b7dda3c80444d629" + integrity sha1-pJe351cwBQQcqivIt92jyARE1ik= + dependencies: + gulp-match "^1.0.3" + ternary-stream "^2.0.1" + through2 "^2.0.1" + +gulp-less@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/gulp-less/-/gulp-less-4.0.1.tgz#348c33a5dde7a207c5771b1d8261d1ac1021ceed" + integrity sha512-hmM2k0FfQp7Ptm3ZaqO2CkMX3hqpiIOn4OHtuSsCeFym63F7oWlEua5v6u1cIjVUKYsVIs9zPg9vbqTEb/udpA== + dependencies: + accord "^0.29.0" + less "2.6.x || ^3.7.1" + object-assign "^4.0.1" + plugin-error "^0.1.2" + replace-ext "^1.0.0" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-load-plugins@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-1.6.0.tgz#2d060c42faf481141ef638431572923d8701bd0d" + integrity sha512-HlCODki0WHJvQIgAsJYOTkyo0c7TsDCetvfhrdGz9JYPL6A4mFRMGmKfoi6JmXjA/vvzg+fkT91c9FBh7rnkyg== + dependencies: + array-unique "^0.2.1" + fancy-log "^1.2.0" + findup-sync "^3.0.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + micromatch "^3.1.10" + resolve "^1.1.7" + +gulp-match@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gulp-match/-/gulp-match-1.1.0.tgz#552b7080fc006ee752c90563f9fec9d61aafdf4f" + integrity sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ== + dependencies: + minimatch "^3.0.3" + +gulp-order@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-order/-/gulp-order-1.2.0.tgz#3193e89a759602970907e93ec6e3fb44bae8434c" + integrity sha512-RduLhxbEye1NT6fnvev3792VUsZA8F+5zRFczAgpOSELz587Fv1Nn7l4ZiaiQzFPV7aECh1WRc2dPWjjcxCa0g== + dependencies: + minimatch "~3.0.4" + stable "~0.1.8" + through "~2.3.8" + +gulp-plumber@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/gulp-plumber/-/gulp-plumber-1.2.1.tgz#d38700755a300b9d372318e4ffb5ff7ced0b2c84" + integrity sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ== + dependencies: + chalk "^1.1.3" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + through2 "^2.0.3" + +gulp-postcss@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-8.0.0.tgz#8d3772cd4d27bca55ec8cb4c8e576e3bde4dc550" + integrity sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg== + dependencies: + fancy-log "^1.3.2" + plugin-error "^1.0.1" + postcss "^7.0.2" + postcss-load-config "^2.0.0" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-prettier@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/gulp-prettier/-/gulp-prettier-2.3.0.tgz#143a5d75ee6a79e5c647b108c6a28ce7d26e3edd" + integrity sha512-3byhZ6+tT3uqZUmIuhNs+upiUiwTtZXQ5vD/rrXq+ZypYyYlCIGGmSYq7wDc0uTJyGhHtYNTJ97ix2hI747zyg== + dependencies: + plugin-error "^1.0.1" + prettier "^1.5.3" + safe-buffer "^5.1.2" + through2 "^3.0.0" + +gulp-pug@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/gulp-pug/-/gulp-pug-4.0.1.tgz#5c5bb38303a5a565add8b200e292b4a076cf2efa" + integrity sha512-RsayLPwJtKKMub9bbO4VYlMPVnImUPdK8+BjvkiulkorrjWnahTbI3a3Li/7YkD0xs7ap7ePciNiPwweoVEPMQ== + dependencies: + "@types/pug" "^2.0.4" + fancy-log "^1.3.2" + plugin-error "^1.0.1" + pug "^2.0.3" + replace-ext "^1.0.0" + through2 "^2.0.3" + +gulp-purge-sourcemaps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulp-purge-sourcemaps/-/gulp-purge-sourcemaps-1.0.0.tgz#7f2f43c680a04f058de595704c60428df0e61c7a" + integrity sha1-fy9DxoCgTwWN5ZVwTGBCjfDmHHo= + dependencies: + through2 "^2.0.0" + +gulp-rename@^1.2.0, gulp-rename@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.4.0.tgz#de1c718e7c4095ae861f7296ef4f3248648240bd" + integrity sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg== + +gulp-replace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.0.0.tgz#b32bd61654d97b8d78430a67b3e8ce067b7c9143" + integrity sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw== + dependencies: + istextorbinary "2.2.1" + readable-stream "^2.0.1" + replacestream "^4.0.0" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + integrity sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw= + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-sourcemaps@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz#a3f002d87346d2c0f3aec36af7eb873f23de8ae6" + integrity sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg== + dependencies: + "@gulp-sourcemaps/identity-map" "1.X" + "@gulp-sourcemaps/map-sources" "1.X" + acorn "5.X" + convert-source-map "1.X" + css "2.X" + debug-fabulous "1.X" + detect-newline "2.X" + graceful-fs "4.X" + source-map "~0.6.0" + strip-bom-string "1.X" + through2 "2.X" + +gulp-strip-debug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-strip-debug/-/gulp-strip-debug-3.0.0.tgz#4b6ec8cb68e6a7f16a43c2bf7d64704a7fb07d10" + integrity sha512-rkxC0Z8TnQ6bwh/vsdeVWQErYlomA9CmvArAXN1O7UmU1RwZp97J4YiTU1WoWHZoLxq7erZMBnr/MTusuSGhdQ== + dependencies: + plugin-error "^1.0.1" + strip-debug "^3.0.0" + through2 "^2.0.0" + +gulp-uglify@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-3.0.2.tgz#5f5b2e8337f879ca9dec971feb1b82a5a87850b0" + integrity sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg== + dependencies: + array-each "^1.0.1" + extend-shallow "^3.0.2" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + isobject "^3.0.1" + make-error-cause "^1.1.1" + safe-buffer "^5.1.2" + through2 "^2.0.0" + uglify-js "^3.0.5" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-util@^3.0.1: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + dependencies: + glogg "^1.0.0" + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +hable@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/hable/-/hable-2.3.2.tgz#7867ffec0b67e63136937613d9a0bc646ac9d7fe" + integrity sha512-qJ9WoXl/15LNlG1KeAuBjCNGStUb+MCQ5biPxOmwRyESH8CSWwZB4xEnzCduuQ3I/mlgui28t8/oMAGT1Rpb2g== + +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0, har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +hard-source-webpack-plugin@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz#a99071e25b232f1438a5bc3c99f10a3869e4428e" + integrity sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== + dependencies: + chalk "^2.4.1" + find-cache-dir "^2.0.0" + graceful-fs "^4.1.11" + lodash "^4.15.0" + mkdirp "^0.5.1" + node-object-hash "^1.2.0" + parse-json "^4.0.0" + pkg-dir "^3.0.0" + rimraf "^2.6.2" + semver "^5.6.0" + tapable "^1.0.0-beta.5" + webpack-sources "^1.0.1" + write-json-file "^2.3.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + dependencies: + sparkles "^1.0.0" + +has-require@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/has-require/-/has-require-1.2.2.tgz#921675ab130dbd9768fc8da8f1a8e242dfa41774" + integrity sha1-khZ1qxMNvZdo/I2o8ajiQt+kF3Q= + dependencies: + escape-string-regexp "^1.0.3" + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.1.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +helmet-crossdomain@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e" + integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA== + +helmet-csp@2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.9.4.tgz#801382bac98f2f88706dc5c89d95c7e31af3a4a9" + integrity sha512-qUgGx8+yk7Xl8XFEGI4MFu1oNmulxhQVTlV8HP8tV3tpfslCs30OZz/9uQqsWPvDISiu/NwrrCowsZBhFADYqg== + dependencies: + bowser "^2.7.0" + camelize "1.0.0" + content-security-policy-builder "2.1.0" + dasherize "2.0.0" + +helmet@^3.21.1: + version "3.21.2" + resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.21.2.tgz#7e2a19d5f6d898a77b5d2858e8e4bb2cda59f19f" + integrity sha512-okUo+MeWgg00cKB8Csblu8EXgcIoDyb5ZS/3u0W4spCimeVuCUvVZ6Vj3O2VJ1Sxpyb8jCDvzu0L1KKT11pkIg== + dependencies: + depd "2.0.0" + dns-prefetch-control "0.2.0" + dont-sniff-mimetype "1.1.0" + expect-ct "0.2.0" + feature-policy "0.3.0" + frameguard "3.1.0" + helmet-crossdomain "0.4.0" + helmet-csp "2.9.4" + hide-powered-by "1.1.0" + hpkp "2.0.0" + hsts "2.2.0" + ienoopen "1.1.0" + nocache "2.1.0" + referrer-policy "1.2.0" + x-xss-protection "1.3.0" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hide-powered-by@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a" + integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hogan.js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" + integrity sha1-TNnhq9QpQUbnZ55B14mHMrAse/0= + dependencies: + mkdirp "0.3.0" + nopt "1.0.10" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hpkp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672" + integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI= + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +hsts@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964" + integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ== + dependencies: + depd "2.0.0" + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-entities@^1.2.0, html-entities@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-minifier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= + +htmlparser2@^3.3.0, htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.0.0.tgz#6034658db65b7713a572a9ebf79f650832dceec8" + integrity sha512-cChwXn5Vam57fyXajDtPXL1wTYc8JtLbr2TN76FYu05itVVVealxLowe2B3IEznJG4p9HAYn/0tJaRlGuEglFQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + domutils "^2.0.0" + entities "^2.0.0" + +http-cache-semantics@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#13eeb612424bb113d52172c28a13109c46fa85d7" + integrity sha512-Z2EICWNJou7Tr9Bd2M2UqDJq3A9F2ePG9w3lIpjoyuSyXFP9QbniJVu3XQYytuw5ebmG7dXSXO9PgAjJG8DDKA== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@^1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@0.19.1, http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +i18n@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.8.4.tgz#948e1ee7ddefef18b2785969388e097327031bd0" + integrity sha512-PvMcG+yqYWXrwgdmCpL+APCGa8lRY0tdlo2cXp9UeR3u4h1bJGqFsgybfmG/MqtL1iDmdaPPPLJebXGrZ1XoMQ== + dependencies: + debug "*" + make-plural "^6.0.1" + math-interval-parser "^2.0.1" + messageformat "^2.3.0" + mustache "*" + sprintf-js "^1.1.2" + +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^4.0.0, icss-utils@^4.1.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ienoopen@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.1.0.tgz#411e5d530c982287dbdc3bb31e7a9c9e32630974" + integrity sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +image-size@^0.7.3: + version "0.7.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.7.5.tgz#269f357cf5797cb44683dfa99790e54c705ead04" + integrity sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +imagemagick@>=0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/imagemagick/-/imagemagick-0.1.3.tgz#7483cea093b4d9f2e2f396857adc8821b537c56a" + integrity sha1-dIPOoJO02fLi85aFetyIIbU3xWo= + +immediate@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@2.0.0, import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +indx@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/indx/-/indx-0.2.3.tgz#15dcf56ee9cf65c0234c513c27fbd580e70fbc50" + integrity sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= + dependencies: + source-map "~0.5.3" + +inquirer@^6.3.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +insert-module-globals@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +interpret@1.2.0, interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@1.1.5, ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipv6-normalize@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz#1b3258290d365fa83239e89907dde4592e7620a8" + integrity sha1-GzJYKQ02X6gyOeiZB93kWS52IKg= + +irregular-plurals@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" + integrity sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y= + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-absolute@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + integrity sha1-hHSREZ/MtftDYhfMc39/qtUPYD8= + dependencies: + is-relative "^0.1.0" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.0, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-bzip2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + integrity sha1-XuWOqlounIDiFAe+3yOuWsCRs/w= + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-defined/-/is-defined-1.0.0.tgz#1f07ca67d571f594c4b14415a45f7bef88f92bf5" + integrity sha1-HwfKZ9Vx9ZTEsUQVpF9774j5K/U= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" + integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8= + dependencies: + acorn "~4.0.2" + object-assign "^4.0.1" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3" + integrity sha1-wUwhBX7TbjKNuANHlmxpP4hjifM= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-installed-globally@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz#679afef819347a72584617fd19497f010b8ed35f" + integrity sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-natural-number@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" + integrity sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec= + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.0.0, is-promise@^2.1, is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + +is-regex@^1.0.3, is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + integrity sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI= + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-tar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" + integrity sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0= + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-url@^1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4= + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +is-zip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" + integrity sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isarray@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istextorbinary@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" + integrity sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw== + dependencies: + binaryextensions "2" + editions "^1.3.3" + textextensions "2" + +jasmine-core@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" + integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== + +jasmine-growl-reporter@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/jasmine-growl-reporter/-/jasmine-growl-reporter-0.2.1.tgz#d5f0a37b92f6a83fd5c6482b809495c90a8b55fe" + integrity sha1-1fCje5L2qD/VxkgrgJSVyQqLVf4= + dependencies: + growl "~1.7.0" + +jasmine-node@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/jasmine-node/-/jasmine-node-1.16.2.tgz#c9cec44f4bccc3bb9c3eb2c8f877590ce6530f38" + integrity sha512-A4AA2WaikuE7s/NYQCqfYsyCczEgObLgNH7IxRQ2SBshLBZg7vUEiiGX4GPbveW5f06nYmXYlzY4UjnZjXjV9g== + dependencies: + coffeescript "~1.12.7" + gaze "~1.1.2" + jasmine-growl-reporter "~0.2.0" + jasmine-reporters "~1.0.0" + mkdirp "~0.3.5" + requirejs "~2.3.6" + underscore "~1.9.1" + walkdir "~0.0.12" + +jasmine-reporters@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-1.0.2.tgz#ab613ed5977dc7487e85b3c12f6a8ea8db2ade31" + integrity sha1-q2E+1Zd9x0h+hbPBL2qOqNsq3jE= + dependencies: + mkdirp "~0.3.5" + +javascript-stringify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" + integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= + +javascript-stringify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5" + integrity sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow== + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jmespath@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= + +jquery-file-upload-middleware@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/jquery-file-upload-middleware/-/jquery-file-upload-middleware-0.1.8.tgz#36fef903a4cda6346790155f035b01d28c0e8220" + integrity sha1-Nv75A6TNpjRnkBVfA1sB0owOgiA= + dependencies: + async "*" + formidable ">=1.0.11" + imagemagick ">=0.1.2" + lodash ">= 0.9.2" + mkdirp ">= 0.3.4" + +jquery-migrate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jquery-migrate/-/jquery-migrate-3.1.0.tgz#8158de74cca39fb7fc2635db570151ae7ce3ddea" + integrity sha512-u/MtE1ST2pCr3rCyouJG2xMiw/k3OzLNeRKprjKTeHUezCGr0DyEgeXFdqFLmQfxfR5EsVu+mGo/sCcYdiYcIQ== + +jquery-ui-package@^1.11.4: + version "1.11.4" + resolved "https://registry.yarnpkg.com/jquery-ui-package/-/jquery-ui-package-1.11.4.tgz#eee491afc64292d2d30b13870a7506eab2be1940" + integrity sha512-MrBf+HEG4WdWq1NXNTl8glFe9ptxiroCVgY1IRSoDwlYRxg5JouQSChSvTsqvb5vYa8uFCJEEzPlnZWWxaNr2A== + +jquery-ui-touch-punch@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/jquery-ui-touch-punch/-/jquery-ui-touch-punch-0.2.3.tgz#eed82242733ba243f46b3e87c1841b308191da68" + integrity sha1-7tgiQnM7okP0az6HwYQbMIGR2mg= + +jquery-ui@~1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51" + integrity sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE= + +jquery.iframe-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jquery.iframe-transport/-/jquery.iframe-transport-1.0.0.tgz#98abae85beace1cc362645e7a87360ff9418175f" + integrity sha1-mKuuhb6s4cw2JkXnqHNg/5QYF18= + +jquery@>=1.12.0, jquery@^3.4.1, jquery@~3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" + integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== + +js-base64@^2.1.9: + version "2.5.1" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" + integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== + +js-beautify@^1.8.8: + version "1.10.2" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178" + integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~0.5.1" + nopt "~4.0.1" + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +js-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.11.0, js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsep@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/jsep/-/jsep-0.3.4.tgz#55ebd4400c5c5861cb1ff949a7a4cd97fcaacaa0" + integrity sha512-ovGD9wE+wvudIIYxZGrRcZCxNyZ3Cl1N7Bzyp7/j4d/tA0BaUwcVM9bu0oZaSrefMiNwv6TwZ9X15gvZosteCQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +jshint-stylish@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jshint-stylish/-/jshint-stylish-2.2.1.tgz#242082a2c035ae03fd81044e0570cc4208cf6e61" + integrity sha1-JCCCosA1rgP9gQROBXDMQgjPbmE= + dependencies: + beeper "^1.1.0" + chalk "^1.0.0" + log-symbols "^1.0.0" + plur "^2.1.0" + string-length "^1.0.0" + text-table "^0.2.0" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0, json5@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +juice@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/juice/-/juice-5.2.0.tgz#a40ea144bde2845fe2aade46a81f493f8ea677a0" + integrity sha512-0l6GZmT3efexyaaay3SchKT5kG311N59TEFP5lfvEy0nz9SNqjx311plJ3b4jze7arsmDsiHQLh/xnAuk0HFTQ== + dependencies: + cheerio "^0.22.0" + commander "^2.15.1" + cross-spawn "^6.0.5" + deep-extend "^0.6.0" + mensch "^0.3.3" + slick "^1.12.2" + web-resource-inliner "^4.3.1" + +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + +kareem@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" + integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +klaw-sync@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-2.1.0.tgz#3d3bcd8600e7bfdef53231c739ff053aed560e44" + integrity sha1-PTvNhgDnv971MjHHOf8FOu1WDkQ= + optionalDependencies: + graceful-fs "^4.1.11" + +knockout-jqueryui@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/knockout-jqueryui/-/knockout-jqueryui-2.2.4.tgz#d480508906477812c6fed44766f3c2525da8258c" + integrity sha512-mgkV2yQU7qKyNqdk+o2O6kL9BlsRUD+sO5Lgfs9f/aqcISpJ3GKz66XWlOdhZp9teAGPa/y1e4TD5xiX+iWwsg== + +knockout-sortable@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/knockout-sortable/-/knockout-sortable-1.2.0.tgz#e63c21a009cd0686bf1d40effa3ff12c12372566" + integrity sha512-cJq4jm4SWdaCIkuYIrNZpVaNYFUafJT83RlFEP/dsPOqIi3xWkCnm1Y5zLEQ2QqMDRT9GI9HxN9Jz+lhZNFHPA== + +"knockout@3.0.0 - 3.5.0", knockout@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.5.0.tgz#6d3e19bf53b1dc4d8de81c97a5ba9672443dc292" + integrity sha512-vBUF/IsBDzaejHkNpiquKdc5uPrImXuQ4Mb9lEfNNJ5cyHGI8ThDupR+h3eMFZhfmPE/brfwcIAn/fm0yOvJUg== + +ko-reactor@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/ko-reactor/-/ko-reactor-1.4.1.tgz#5660e76f9db338f6b70e317a33b867028ab3de9b" + integrity sha512-OtGTX4xwQfEHK/dlw4Xl5GXbUS2A72RK/szrbN6vLPVdH+rfc0qK+JPjXaRSEMjuAmyntuvzmf2Zd6ZJ3y3igw== + dependencies: + knockout "3.0.0 - 3.5.0" + +kuler@1.0.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" + integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== + dependencies: + colornames "^1.1.1" + +labeled-stream-splicer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== + dependencies: + inherits "^2.0.1" + stream-splicer "^2.0.0" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.0.0" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +launch-editor-middleware@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== + dependencies: + launch-editor "^2.2.1" + +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lazy-req@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + integrity sha1-va6+rTD42CQDnODOFJ1Nqge6H6w= + +lazypipe@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lazypipe/-/lazypipe-1.0.2.tgz#b66f64ed7fd8b04869f1f1bcb795dbbaa80e418c" + integrity sha512-CrU+NYdFHW8ElaeXCWz5IbmetiYVYq1fOCmpdAeZ8L+khbv1e7EnshyjlKqkO+pJbVPrsJQnHbVxEiLujG6qhQ== + dependencies: + stream-combiner "*" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + dependencies: + flush-write-stream "^1.0.2" + +"less@2.6.x || ^3.7.1": + version "3.10.3" + resolved "https://registry.yarnpkg.com/less/-/less-3.10.3.tgz#417a0975d5eeecc52cff4bcfa3c09d35781e6792" + integrity sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow== + dependencies: + clone "^2.1.2" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +license-checker@^25.0.1: + version "25.0.1" + resolved "https://registry.yarnpkg.com/license-checker/-/license-checker-25.0.1.tgz#4d14504478a5240a857bb3c21cd0491a00d761fa" + integrity sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g== + dependencies: + chalk "^2.4.1" + debug "^3.1.0" + mkdirp "^0.5.1" + nopt "^4.0.1" + read-installed "~4.0.3" + semver "^5.5.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + spdx-satisfies "^4.0.0" + treeify "^1.1.0" + +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-script@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" + integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= + +loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.0.4, loader-utils@^1.1.0, loader-utils@^1.2.0, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loadjs@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/loadjs/-/loadjs-3.6.1.tgz#1e756ccd4f4c5ed4988085b330e1b4ad9b6a8340" + integrity sha512-AZEBw2GWdJk2IzBgQ+Wohoao5j+t0rajqK8dJu8jQqgYxDTxhmCt0ayMo/vCa0ZAMvZxnJcam6uLICfnVd8KAw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.clone@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= + dependencies: + lodash._root "^3.0.0" + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= + +lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.partialright@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.partialright/-/lodash.partialright-4.2.1.tgz#0130d80e83363264d40074f329b8a3e7a8a1cc4b" + integrity sha1-ATDYDoM2MmTUAHTzKbij56ihzEs= + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.unescape@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash.uniq@^4.3.0, lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= + +"lodash@>= 0.9.2", lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10, lodash@~4.17.4: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +logalot@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +logform@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" + integrity sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ== + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^2.3.3" + ms "^2.1.1" + triple-beam "^1.3.0" + +loglevel@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" + integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== + +longest@^1.0.0, longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.5.0.tgz#d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb" + integrity sha1-2COIrpyWC+y+oMc7uet5tsbOmus= + +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + +maildev@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/maildev/-/maildev-1.1.0.tgz#8b6977f244373be00112c942ae15dd32f5c225c9" + integrity sha512-D7mrEM/i4c5AX72aRBN9mO5snsGhEs7MvNFWmrSsRL94sIH0/zVQ1GE+ysN9J7lFMLkXNy2xPG3SGP2cjPrCRw== + dependencies: + async "^3.1.0" + commander "^2.20.0" + cors "^2.8.5" + express "^4.17.1" + mailparser-mit "^1.0.0" + opn "^6.0.0" + rimraf "^2.6.3" + smtp-connection "4.0.2" + smtp-server "3.5.0" + socket.io "2.2.0" + wildstring "1.0.9" + +mailparser-mit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mailparser-mit/-/mailparser-mit-1.0.0.tgz#19df8436c2a02e1d34a03ec518a2eb065e0a94a4" + integrity sha512-sckRITNb3VCT1sQ275g47MAN786pQ5lU20bLY5f794dF/ARGzuVATQ64gO13FOw8jayjFT10e5ttsripKGGXcw== + dependencies: + addressparser "^1.0.1" + iconv-lite "~0.4.24" + mime "^1.6.0" + uue "^3.1.0" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" + integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== + dependencies: + semver "^6.0.0" + +make-error-cause@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + integrity sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0= + dependencies: + make-error "^1.2.0" + +make-error@^1.2.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +make-plural@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" + integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== + optionalDependencies: + minimist "^1.2.0" + +make-plural@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.0.1.tgz#ed3839fac3f469ebbe505751d48fe3319769edfc" + integrity sha512-h0uBNi4tpDkiWUyYKrJNj8Kif6q3Ba5zp/8jnfPy3pQE+4XcTj6h3eZM5SYVUyDNX9Zk69Isr/dx0I+78aJUaQ== + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1, map-obj@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-it-anchor@^5.0.2: + version "5.2.5" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz#dbf13cfcdbffd16a510984f1263e1d479a47d27a" + integrity sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ== + +markdown-it-chain@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc" + integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ== + dependencies: + webpack-chain "^4.9.0" + +markdown-it-container@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695" + integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU= + +markdown-it-emoji@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" + integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw= + +markdown-it-table-of-contents@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz#3dc7ce8b8fc17e5981c77cc398d1782319f37fbc" + integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw== + +markdown-it@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdown-it@^8.4.1: + version "8.4.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" + integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + +material-design-icons-iconfont@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/material-design-icons-iconfont/-/material-design-icons-iconfont-5.0.1.tgz#371875ed7fe9c8c520bc7123c3231feeab731c31" + integrity sha512-Xg6rIdGrfySTqiTZ6d+nQbcFepS6R4uKbJP0oAqyeZXJY/bX6mZDnOmmUJusqLXfhIwirs0c++a6JpqVa8RFvA== + +math-interval-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" + integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memoizeasync@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/memoizeasync/-/memoizeasync-0.8.0.tgz#dae48739655e61de56631080c0aa9131ca16e7d4" + integrity sha1-2uSHOWVeYd5WYxCAwKqRMcoW59Q= + dependencies: + lru-cache "2.5.0" + passerror "0.0.2" + +memoizee@0.4.X: + version "0.4.14" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + +memory-fs@^0.4.0, memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + +mensch@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" + integrity sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g== + +meow@^3.1.0, meow@^3.3.0, meow@^3.5.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^1.0.0, merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +messageformat-formatters@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" + integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== + +messageformat-parser@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.2.tgz#fd34ec39912a14868a1595eaeb742485ab8ab372" + integrity sha512-7dWuifeyldz7vhEuL96Kwq1fhZXBW+TUfbnHN4UCrCxoXQTYjHnR78eI66Gk9LaLLsAvzPNVJBaa66DRfFNaiA== + +messageformat@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" + integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== + dependencies: + make-plural "^4.3.0" + messageformat-formatters "^2.0.1" + messageformat-parser "^4.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.42.0, "mime-db@>= 1.40.0 < 2": + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + +mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.24, mime-types@~2.1.15, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.25" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" + integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + dependencies: + mime-db "1.42.0" + +mime@1.6.0, mime@^1.4.1, mime@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimer/-/mimer-1.0.0.tgz#32251bef4dc7a63184db3a1082ed9be3abe0f3db" + integrity sha512-4ZJvCzfcwsBgPbkKXUzGoVZMWjv8IDIygkGzVc7uUYhgnK0t2LmGxxjdgH1i+pn0/KQfB5F/VKUJlfyTSOFQjg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46" + integrity sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +mini-css-extract-plugin@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9" + integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw== + dependencies: + loader-utils "^1.1.0" + normalize-url "^2.0.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2, minimatch@~3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" + integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== + dependencies: + minipass "^3.0.0" + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + dependencies: + yallist "^4.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= + +mkdirp@0.5.1, "mkdirp@>= 0.3.4", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= + +mockery@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mockery/-/mockery-2.1.0.tgz#5b0aef1ff564f0f8139445e165536c7909713470" + integrity sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA== + +module-deps@^6.0.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" + integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.2" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.2.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +moment@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +mongodb-core@2.1.20: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1" + integrity sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ== + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.4.1.tgz#0d15e57e0ea0fc85b7a4fb9291b374c2e71652dc" + integrity sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA== + dependencies: + bson "^1.1.1" + require_optional "^1.0.1" + safe-buffer "^5.1.2" + optionalDependencies: + saslprep "^1.0.0" + +mongodb@^2.0.36: + version "2.2.36" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5" + integrity sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA== + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.20" + readable-stream "2.2.7" + +mongoose-hidden@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/mongoose-hidden/-/mongoose-hidden-1.8.1.tgz#5042efa66267d6f2b9647b50d8713e9f0a6500e2" + integrity sha512-JyMXbmM0b9gSCLum9mA+4doZ3QaJGKiuhVe1gkSPLooOm83+Ez+5JfTJpk2ob0V8zfLw9ddykgS2pekbl3l6nQ== + dependencies: + debug "^4.1.1" + mpath "^0.6.0" + +mongoose-legacy-pluralize@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" + integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== + +mongoose@^5.7.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.8.3.tgz#0b5fff9702e2d36caa20bd6d8a6dfcb30942bcc7" + integrity sha512-WnO4WJ8eZ5Hgwp11Gl2dOxkWYJe8xV7oCqDV3ZbTA7j2q1prc0lPWAd9ZK5R6OhQlp55CleEZXqXUPrZnjSEDQ== + dependencies: + bson "~1.1.1" + kareem "2.3.1" + mongodb "3.4.1" + mongoose-legacy-pluralize "1.0.2" + mpath "0.6.0" + mquery "3.2.2" + ms "2.1.2" + regexp-clone "1.0.0" + safe-buffer "5.1.2" + sift "7.0.1" + sliced "1.0.1" + +morgan@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" + integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== + dependencies: + basic-auth "~2.0.0" + debug "2.6.9" + depd "~1.1.2" + on-finished "~2.3.0" + on-headers "~1.0.1" + +mothership@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/mothership/-/mothership-0.2.0.tgz#93d48a2fbc3e50e2a5fc8ed586f5bc44c65f9a99" + integrity sha1-k9SKL7w+UOKl/I7VhvW8RMZfmpk= + dependencies: + find-parent-dir "~0.3.0" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mpath@0.6.0, mpath@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.6.0.tgz#aa922029fca4f0f641f360e74c5c1b6a4c47078e" + integrity sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw== + +mquery@3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7" + integrity sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q== + dependencies: + bluebird "3.5.1" + debug "3.1.0" + regexp-clone "^1.0.0" + safe-buffer "5.1.2" + sliced "1.0.1" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= + dependencies: + duplexer2 "0.0.2" + +mustache@*: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.0.tgz#1c68e0bf77817a92e8a9216e35c53bbb342345f6" + integrity sha512-n5de2nQ1g2iz3PO9cmq/ZZx3W7glqjf0kavThtqfuNlZRllgU2a2Q0jWoQy3BloT5A6no7sjCTHBVn1rEKjx1Q== + +mustache@^2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" + integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ== + +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +napi-build-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" + integrity sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA== + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +next-tick@1, next-tick@^1.0.0, next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +nocache@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" + integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== + +node-abi@^2.7.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.13.0.tgz#e2f2ec444d0aca3ea1b3874b6de41d1665828f63" + integrity sha512-9HrZGFVTR5SOu3PZAnAY2hLO36aW1wmA+FDsVkr85BTST32TLCA1H/AEcatVRAsWLyXS3bqUDYCAjq5/QGuSTA== + dependencies: + semver "^5.4.1" + +node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-object-hash@^1.2.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" + integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== + +node-releases@^1.1.42: + version "1.1.44" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" + integrity sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw== + dependencies: + semver "^6.3.0" + +node-releases@^1.1.50: + version "1.1.50" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.50.tgz#803c40d2c45db172d0410e4efec83aa8c6ad0592" + integrity sha512-lgAmPv9eYZ0bGwUYAKlr8MG6K4CvWliWqnkcT2P8mMAgVrH3lqfBPorFlxiG1pHQnqmavJZ9vbMXUTNyMLbrgQ== + dependencies: + semver "^6.3.0" + +node-res@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/node-res/-/node-res-5.0.1.tgz#ffaa462e206509d66d0ba28a4daf1f032daa6460" + integrity sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg== + dependencies: + destroy "^1.0.4" + etag "^1.8.1" + mime-types "^2.1.19" + on-finished "^2.3.0" + vary "^1.1.2" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + integrity sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8= + +nodemailer-sendgrid@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/nodemailer-sendgrid/-/nodemailer-sendgrid-1.0.3.tgz#8f8786a9fef4faa94c4b0a107547f923e9d6ea85" + integrity sha512-To/veO2M4evjtv1XrY7BUgE+LDypgs/FBx4wOHb2UNTpvZhiARtvMaBI0685Yxkho0lIPJc4jS0cUE7v+XGNgg== + dependencies: + "@sendgrid/mail" "^6.2.1" + +nodemailer-wellknown@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.2.3.tgz#640ed204a016627643f98739a94f8ef9d39ca0a9" + integrity sha1-ZA7SBKAWYnZD+Yc5qU+O+dOcoKk= + +nodemailer@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-5.0.0.tgz#bcb409eca613114e85de42646d0ce7f1fa70b716" + integrity sha512-XI4PI5L7GYcJyHkPcHlvPyRrYohNYBNRNbt1tU8PXNU3E1ADJC84a13V0vbL9AM431OP+ETacaGXAF8fGn1JvA== + +nodemailer@^3.1.1: + version "3.1.8" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-3.1.8.tgz#febfaccb4bd273678473a309c6cb4b4a2f3c48e3" + integrity sha1-/r+sy0vSc2eEc6MJxstLSi88SOM= + +nodemailer@^6.3.0: + version "6.4.2" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.4.2.tgz#7147550e32cdc37453380ab78d2074533966090a" + integrity sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ== + +nodemon@^1.19.3: + version "1.19.4" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" + integrity sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ== + dependencies: + chokidar "^2.1.8" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.5.0" + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + +nopt@1.0.10, nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + +npm-normalize-package-bin@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.1, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nuxt@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.11.0.tgz#654664fe1a95af2014fd55c38ba2c732bfa5edc5" + integrity sha512-Y7lastjYWIOppja0FaWozPfkvlmJ8uZSqWx0VbK7l5djbHls5jgUGag0iu6GsNNwCFTKpoAtptNHiWOsyMxStA== + dependencies: + "@nuxt/builder" "2.11.0" + "@nuxt/cli" "2.11.0" + "@nuxt/core" "2.11.0" + "@nuxt/generator" "2.11.0" + "@nuxt/loading-screen" "^1.2.0" + "@nuxt/opencollective" "^0.3.0" + "@nuxt/webpack" "2.11.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth2-server@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/oauth2-server/-/oauth2-server-3.0.0.tgz#c46276b74c3d28634d59ee981f76b58a6459cc28" + integrity sha1-xGJ2t0w9KGNNWe6YH3a1imRZzCg= + dependencies: + basic-auth "1.1.0" + bluebird "3.5.0" + lodash "4.17.4" + promisify-any "2.0.1" + statuses "1.3.1" + type-is "1.6.15" + +object-assign@4.X, object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo= + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-is@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.0, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4, object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@^1.0.2, on-headers@~1.0.1, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +one-time@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" + integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= + +onecolor@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.1.0.tgz#b72522270a49569ac20d244b3cd40fe157fda4d2" + integrity sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ== + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + +opener@1.5.1, opener@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +opn@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-6.0.0.tgz#3c5b0db676d5f97da1233d1ed42d182bc5a27d2d" + integrity sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@^5.0.1, optimize-css-assets-webpack-plugin@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" + integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + integrity sha1-cTfmmzKYuzQiR6G77jiByA4v14s= + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + dependencies: + readable-stream "^2.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0, os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-filter-obj@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" + integrity sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +outpipe@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" + integrity sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I= + dependencies: + shell-quote "^1.4.2" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parallelshell@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/parallelshell/-/parallelshell-3.0.2.tgz#fffc55aaa145bdd44b5381cf7fd5e521fc21aa7b" + integrity sha512-aW73W8tmYiFZtQi41pweV3WWT6o/EvSxAVQHbumOhN53H47OuWQwrRc11xQ2i44GFvR5AjtzhD92r8Kv9X+7Iw== + +param-case@2.1.x, param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0, parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +passerror@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/passerror/-/passerror-0.0.2.tgz#c43090627b78d39ece96dbc7541f73f73efd9f4a" + integrity sha1-xDCQYnt4057OltvHVB9z9z79n0o= + +passport-http-bearer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz#147469ea3669e2a84c6167ef99dbb77e1f0098a8" + integrity sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg= + dependencies: + passport-strategy "1.x.x" + +passport-http@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/passport-http/-/passport-http-0.3.0.tgz#8ee53d4380be9c60df2151925029826f77115603" + integrity sha1-juU9Q4C+nGDfIVGSUCmCb3cRVgM= + dependencies: + passport-strategy "1.x.x" + +passport-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4= + dependencies: + passport-strategy "1.x.x" + +passport-oauth2-client-password@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz#4f378b678b92d16dbbd233a6c706520093e561ba" + integrity sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo= + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" + integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +patch-text@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/patch-text/-/patch-text-1.0.2.tgz#4bf36e65e51733d6e98f0cf62e09034daa0348ac" + integrity sha1-S/NuZeUXM9bpjwz2LgkDTaoDSKw= + +path-browserify@0.0.1, path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" + integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== + +pidtree@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" + integrity sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +plugin-error@1.0.1, plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +plugin-log@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/plugin-log/-/plugin-log-0.1.0.tgz#86049cf6ab10833398a931f3689cbaee7b5e1333" + integrity sha1-hgSc9qsQgzOYqTHzaJy67nteEzM= + dependencies: + chalk "^1.1.1" + dateformat "^1.0.11" + +plur@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + integrity sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo= + dependencies: + irregular-plurals "^1.0.0" + +portfinder@^1.0.13, portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" + integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0" + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-import-resolver@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz#95c61ac5489047bd93ff42a9cd405cfe9041e2c0" + integrity sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== + dependencies: + enhanced-resolve "^4.1.1" + +postcss-import@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + dependencies: + postcss "^7.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-initial@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" + integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^3.3.1" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" + +postcss-modules-scope@^2.1.0, postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^7.0.6" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@^6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== + dependencies: + postcss "^7.0.26" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" + integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== + dependencies: + mime "^2.3.1" + minimatch "^3.0.4" + mkdirp "^0.5.0" + postcss "^7.0.2" + xxhashjs "^0.2.1" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.25, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.25" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e" + integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7.0.26: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prebuild-install@^5.3.0: + version "5.3.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.3.tgz#ef4052baac60d465f5ba6bf003c9c1de79b9da8e" + integrity sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +prettier@^1.18.2, prettier@^1.5.3: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +pretty-bytes@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" + integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prismjs@^1.13.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz#713afbd45c3baca4b321569f2df39e17e729d4dc" + integrity sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw== + optionalDependencies: + clipboard "^2.0.0" + +private@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +probe-image-size@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-4.1.1.tgz#c836c53154b6dd04dbcf66af2bbd50087b15e1dc" + integrity sha512-42LqKZqTLxH/UvAZ2/cKhAsR4G/Y6B7i7fI2qtQu9hRBK4YjS6gqO+QRtwTjvojUx4+/+JuOMzLoFyRecT9qRw== + dependencies: + any-promise "^1.3.0" + deepmerge "^4.0.0" + inherits "^2.0.3" + next-tick "^1.0.0" + request "^2.83.0" + stream-parser "~0.3.1" + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process@^0.11.10, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^7.0.1, promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promisify-any@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promisify-any/-/promisify-any-2.0.1.tgz#403e00a8813f175242ab50fe33a69f8eece47305" + integrity sha1-QD4AqIE/F1JCq1D+M6afjuzkcwU= + dependencies: + bluebird "^2.10.0" + co-bluebird "^1.1.0" + is-generator "^1.0.2" + +promisify-child-process@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/promisify-child-process/-/promisify-child-process-3.1.3.tgz#52a3b66638ae101fa2e68f9a2cbd101846042e33" + integrity sha512-qVox3vW2hqbktVw+IN7YZ/kgGA+u426ekmiZxiofNe9O4GSewjROwRQ4MQ6IbvhpeYSLqiLS0kMn+FWCz6ENlg== + dependencies: + "@babel/runtime" "^7.1.5" + +proper-lockfile@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.1.tgz#284cf9db9e30a90e647afad69deb7cb06881262c" + integrity sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg== + dependencies: + graceful-fs "^4.1.11" + retry "^0.12.0" + signal-exit "^3.0.2" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +proxy-from-env@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24: + version "1.6.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110" + integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA== + +psl@^1.1.28: + version "1.7.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" + integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + +pstree.remy@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" + integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pug-attrs@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" + integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ== + dependencies: + constantinople "^3.0.1" + js-stringify "^1.0.1" + pug-runtime "^2.0.5" + +pug-code-gen@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.2.tgz#ad0967162aea077dcf787838d94ed14acb0217c2" + integrity sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw== + dependencies: + constantinople "^3.1.2" + doctypes "^1.1.0" + js-stringify "^1.0.1" + pug-attrs "^2.0.4" + pug-error "^1.3.3" + pug-runtime "^2.0.5" + void-elements "^2.0.1" + with "^5.0.0" + +pug-error@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" + integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ== + +pug-filters@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7" + integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg== + dependencies: + clean-css "^4.1.11" + constantinople "^3.0.1" + jstransformer "1.0.0" + pug-error "^1.3.3" + pug-walk "^1.1.8" + resolve "^1.1.6" + uglify-js "^2.6.1" + +pug-lexer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd" + integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA== + dependencies: + character-parser "^2.1.1" + is-expression "^3.0.0" + pug-error "^1.3.3" + +pug-linker@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb" + integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg== + dependencies: + pug-error "^1.3.3" + pug-walk "^1.1.8" + +pug-load@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" + integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg== + dependencies: + object-assign "^4.1.0" + pug-walk "^1.1.8" + +pug-loader@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/pug-loader/-/pug-loader-2.4.0.tgz#18eebdda045d9c31c2856f1cc3ceb8d3df7ca49a" + integrity sha512-cD4bU2wmkZ1EEVyu0IfKOsh1F26KPva5oglO1Doc3knx8VpBIXmFHw16k9sITYIjQMCnRv1vb4vfQgy7VdR6eg== + dependencies: + loader-utils "^1.1.0" + pug-walk "^1.0.0" + resolve "^1.1.7" + +pug-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9" + integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA== + dependencies: + pug-error "^1.3.3" + token-stream "0.0.1" + +pug-runtime@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" + integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw== + +pug-strip-comments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" + integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw== + dependencies: + pug-error "^1.3.3" + +pug-walk@^1.0.0, pug-walk@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" + integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA== + +pug@^2.0.3, pug@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d" + integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw== + dependencies: + pug-code-gen "^2.0.2" + pug-filters "^3.1.1" + pug-lexer "^4.1.0" + pug-linker "^3.0.6" + pug-load "^2.0.12" + pug-parser "^5.0.1" + pug-runtime "^2.0.5" + pug-strip-comments "^1.0.4" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + dependencies: + escape-goat "^2.0.0" + +puppeteer@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.20.0.tgz#e3d267786f74e1d87cf2d15acc59177f471bbe38" + integrity sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ== + dependencies: + debug "^4.1.0" + extract-zip "^1.6.6" + https-proxy-agent "^2.2.1" + mime "^2.0.3" + progress "^2.0.1" + proxy-from-env "^1.0.0" + rimraf "^2.6.1" + ws "^6.1.0" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.9.0: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0, querystring-es3@^0.2.1, querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +rand-token@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/rand-token/-/rand-token-0.4.0.tgz#1a565b6ad12d92dd4b30c4c4e5945e8aa24a5b3b" + integrity sha512-FLNNsir2R+XY8LKsZ+8u/w0qZ4sGit7cpNdznsI77cAVob6UlVPueDKRyjJ3W1Q6FJLgAVH98JvlqqpSaL7NEQ== + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + integrity sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + integrity sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc= + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= + dependencies: + readable-stream "^2.0.2" + +read-package-json@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" + integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + npm-normalize-package-bin "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@2 || 3", readable-stream@^3.0.1, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" + integrity sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE= + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^3.0.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" + integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== + dependencies: + picomatch "^2.0.7" + +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" + integrity sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw= + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.2.tgz#0cd680ad3ffe0b060e57a5c68bdfce37168d361b" + integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ== + dependencies: + object-keys "^1.1.0" + +referrer-policy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e" + integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA== + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-clone@1.0.0, regexp-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" + integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexpu-core@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-auth-token@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + dependencies: + rc "^1.2.8" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + +regjsparser@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" + integrity sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x, relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +rename-function-calls@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/rename-function-calls/-/rename-function-calls-0.1.1.tgz#7f83369c007a3007f6abe3033ccf81686a108e01" + integrity sha1-f4M2nAB6MAf2q+MDPM+BaGoQjgE= + dependencies: + detective "~3.1.0" + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +replace-requires@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/replace-requires/-/replace-requires-1.0.4.tgz#014b7330b6b9e2557b71043b66fb02660c3bf667" + integrity sha1-AUtzMLa54lV7cQQ7ZvsCZgw79mc= + dependencies: + detective "^4.5.0" + has-require "~1.2.1" + patch-text "~1.0.2" + xtend "~4.0.0" + +replacestream@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" + integrity sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA== + dependencies: + escape-string-regexp "^1.0.3" + object-assign "^4.0.1" + readable-stream "^2.0.2" + +request@^2.83.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@^2.87.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require_optional@^1.0.1, require_optional@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +requirejs@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" + integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" + integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== + dependencies: + path-parse "^1.0.6" + +resolve@~0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" + integrity sha1-3ZV5gufnNt699TtYpN2RdUV13UY= + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rewrite-imports@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/rewrite-imports/-/rewrite-imports-2.0.3.tgz#210fc05ebda6a6c6a2e396608b0146003d510dda" + integrity sha512-R7ICJEeP3y+d/q4C8YEJj9nRP0JyiSqG07uc0oQh8JvAe706dDFVL95GBZYCjADqmhArZWWjfM/5EcmVu4/B+g== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.6, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rocambole-node-remove@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rocambole-node-remove/-/rocambole-node-remove-1.0.0.tgz#bd49b13dbe6122758374ffd247d8a739e821486f" + integrity sha1-vUmxPb5hInWDdP/SR9inOeghSG8= + dependencies: + rocambole-token "^1.1.0" + +rocambole-node-update@^1.0.0, rocambole-node-update@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/rocambole-node-update/-/rocambole-node-update-1.0.2.tgz#5f1bdc629b5da3986a509d639133eb8c4cffe700" + integrity sha512-kaOi0zb+Nm9hAclA0AZIoxblzAJ04J+HnWeG7+PJZYaf12atAAZavgxRjKcnGdidYNA8oQnZl8aoCt3nhFRbQg== + dependencies: + rocambole-token "^1.2.1" + +rocambole-strip-alert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rocambole-strip-alert/-/rocambole-strip-alert-1.0.0.tgz#3b255fe6f18d6301f805a14e570b1f1f2dba857f" + integrity sha1-OyVf5vGNYwH4BaFOVwsfHy26hX8= + dependencies: + rocambole-node-update "^1.0.1" + +rocambole-strip-console@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rocambole-strip-console/-/rocambole-strip-console-1.0.0.tgz#2b97e3dfa6e19d4528ebe81a94231dc9e8aaca0b" + integrity sha1-K5fj36bhnUUo6+galCMdyeiqygs= + dependencies: + rocambole-node-update "^1.0.0" + +rocambole-strip-debugger@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rocambole-strip-debugger/-/rocambole-strip-debugger-1.0.1.tgz#bd3e500de967a94228098c118d8a387fc4591bd8" + integrity sha512-yBnd7R2/HUmVvhjdTnYC6R573hMizzmLaWUObxRKTGBlFT7aIFx+aMqreI6t10X508S740uz7iyCn6YjzLvrFg== + dependencies: + rocambole-node-remove "^1.0.0" + +rocambole-token@^1.1.0, rocambole-token@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rocambole-token/-/rocambole-token-1.2.1.tgz#c785df7428dc3cb27ad7897047bd5238cc070d35" + integrity sha1-x4XfdCjcPLJ614lwR71SOMwHDTU= + +rocambole@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rocambole/-/rocambole-0.7.0.tgz#f6c79505517dc42b6fb840842b8b953b0f968585" + integrity sha1-9seVBVF9xCtvuECEK4uVOw+WhYU= + dependencies: + esprima "^2.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.4.0: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.0, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saslprep@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.0.tgz#e7b07a3e357f965e6b03dd45b016b0a9746af797" + integrity sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.1.0" + semver "^6.3.0" + +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sass-resources-loader@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.0.1.tgz#c8427f3760bf7992f24f27d3889a1c797e971d3a" + integrity sha512-UsjQWm01xglINC1kPidYwKOBBzOElVupm9RwtOkRlY0hPA4GKi2KFsn4BZypRD1kudaXgUnGnfbiVOE7c+ybAg== + dependencies: + async "^2.1.4" + chalk "^1.1.3" + glob "^7.1.1" + loader-utils "^1.0.4" + +sass@^1.24.5: + version "1.25.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.25.0.tgz#f8bd7dfbb39d6b0305e27704a8ebe637820693f3" + integrity sha512-uQMjye0Y70SEDGO56n0j91tauqS9E1BmpKHtiYNQScXDHeaE9uHwNEqQNFf4Bes/3DHMNinB6u79JsG10XWNyw== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= + +sax@>=0.6.0, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" + integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== + dependencies: + ajv "^6.10.2" + ajv-keywords "^3.4.1" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +seek-bzip@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= + dependencies: + commander "~2.8.1" + +segfault-handler@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/segfault-handler/-/segfault-handler-1.3.0.tgz#054bc847832fa14f218ba6a79e42877501c8870e" + integrity sha512-p7kVHo+4uoYkr0jmIiTBthwV5L2qmWtben/KDunDZ834mbos+tY+iO0//HpAJpOFSQZZ+wxKWuRo4DxV02B7Lg== + dependencies: + bindings "^1.2.1" + nan "^2.14.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + +semver-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" + integrity sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk= + +semver-truncate@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^4.0.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.1.tgz#29104598a197d6cbe4733eeecbe968f7b43a9667" + integrity sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A== + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serve-favicon@^2.4.3: + version "2.5.0" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" + integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= + dependencies: + etag "~1.8.1" + fresh "0.5.2" + ms "2.1.1" + parseurl "~1.3.2" + safe-buffer "5.1.1" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-placeholder@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.1.tgz#3659fca99b0f15fb3bdf0a72917a6d1848786e9c" + integrity sha512-qyVsP+xA/Sh4cWB/QJzz0tTD52AWIXqxAs/ceEu4HwDnAWXWIYuhwesr1/KPD1GWdE9y7xN8eUI9nW8hfpUniA== + dependencies: + defu "^0.0.1" + +serve-static@1.14.1, serve-static@^1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +server-destroy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-immediate-shim@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +sharp@0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.22.1.tgz#a67c0e75567f03dd5a7861b901fec04072c5b0f4" + integrity sha512-lXzSk/FL5b/MpWrT1pQZneKe25stVjEbl6uhhJcTULm7PhmJgKKRbTDM/vtjyUuC/RLqL2PRyC4rpKwbv3soEw== + dependencies: + color "^3.1.1" + detect-libc "^1.0.3" + fs-copy-file-sync "^1.1.1" + nan "^2.13.2" + npmlog "^4.1.2" + prebuild-install "^5.3.0" + semver "^6.0.0" + simple-get "^3.0.3" + tar "^4.4.8" + tunnel-agent "^0.6.0" + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.4.2, shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +sift@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" + integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +sliced@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= + +slick@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" + integrity sha1-vQSN23TefRymkV+qSldXCzVQwtc= + +slide@~1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +smoothscroll-polyfill@^0.4.3: + version "0.4.4" + resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz#3a259131dc6930e6ca80003e1cb03b603b69abf8" + integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg== + +smtp-connection@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-4.0.2.tgz#d9dd68d38569f3ad9265473670d09d8f3ea518db" + integrity sha1-2d1o04Vp862SZUc2cNCdjz6lGNs= + dependencies: + nodemailer "^3.1.1" + +smtp-server@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/smtp-server/-/smtp-server-3.5.0.tgz#eb2e7bd52f26b4136b9dfc2c9fa0ba70e18cdc81" + integrity sha512-7FUg09H1VmqMRlUq/QdkPxn/NK8VCFw7GMU5rdWWDbS00wbLhjRBe3Lme+AamjDSmVoP6e/WqFqsa7jVI+69pg== + dependencies: + base32.js "0.1.0" + ipv6-normalize "1.0.1" + nodemailer "5.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.3.1" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" + integrity sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w== + dependencies: + debug "~4.1.0" + engine.io "~3.3.1" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.2.0" + socket.io-parser "~3.3.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +socks@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.4.1.tgz#cea68a280a3bf7cb6333dbb40cfb243d10725e9d" + integrity sha512-8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.10, source-map-support@~0.5.12: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@~0.1.30: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= + dependencies: + memory-pager "^1.0.2" + +spdx-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7" + integrity sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A== + dependencies: + array-find-index "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-ranges "^2.0.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdx-ranges@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.1.1.tgz#87573927ba51e92b3f4550ab60bfc83dd07bac20" + integrity sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA== + +spdx-satisfies@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz#9a09a68d80f5f1a31cfaebb384b0c6009e4969fe" + integrity sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA== + dependencies: + spdx-compare "^1.0.0" + spdx-expression-parse "^3.0.0" + spdx-ranges "^2.0.0" + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +speakingurl@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" + integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +ssh2-sftp-client@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ssh2-sftp-client/-/ssh2-sftp-client-5.1.2.tgz#8138f050c5933bbeb2f916f2a1513f124ad61116" + integrity sha512-pKmoDdxa4jwjMr+eZTm2IP8iYxuyM/O74rbz54t0UcETnRNmkLnv3NmKiFK5/hstacyO3WS4Tu8fRBGVGY0UAQ== + dependencies: + concat-stream "^2.0.0" + retry "^0.12.0" + ssh2 "^0.8.9" + +ssh2-streams@~0.4.10: + version "0.4.10" + resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" + integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + dependencies: + asn1 "~0.2.0" + bcrypt-pbkdf "^1.0.2" + streamsearch "~0.1.2" + +ssh2@^0.8.9: + version "0.8.9" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" + integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== + dependencies: + ssh2-streams "~0.4.10" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + +stable@^0.1.8, stable@~0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-trace@0.0.10, stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +stackframe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.0.tgz#e3fc2eb912259479c9822f7d1f1ff365bd5cbc83" + integrity sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg== + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + integrity sha1-5sgLYjEj19gM8TLOU480YokHJQI= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +std-env@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b" + integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ== + dependencies: + ci-info "^1.6.0" + +stream-browserify@^2.0.0, stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner@*: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg= + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + +stream-http@^2.0.0, stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-http@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.0.tgz#22fb33fe9b4056b4eccf58bd8f400c4b993ffe57" + integrity sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^3.0.6" + xtend "^4.0.0" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= + dependencies: + debug "2" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +streamfilter@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" + integrity sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ== + dependencies: + readable-stream "^2.0.2" + +streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + integrity sha1-VpcPscOFWOnnC3KL894mmsRa36w= + dependencies: + strip-ansi "^3.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.padend@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" + integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + integrity sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4= + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom-string@1.X, strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-debug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-debug/-/strip-debug-3.0.0.tgz#06333c42a8e80b06d74d6e8a1f96b46d724cf664" + integrity sha512-mkGBeXraYkEu2RAZNmGKNpNO2UZJvLzfccR2qyScub/QRzrsSoT59rR3Si8jx7urqlGLPmFd3OaDaLrZzPWzdw== + dependencies: + espree "^3.5.3" + rocambole "^0.7.0" + rocambole-strip-alert "^1.0.0" + rocambole-strip-console "^1.0.0" + rocambole-strip-debugger "^1.0.0" + +strip-dirs@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" + integrity sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA= + dependencies: + chalk "^1.0.0" + get-stdin "^4.0.1" + is-absolute "^0.1.5" + is-natural-number "^2.0.0" + minimist "^1.1.0" + sum-up "^1.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-resources-loader@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.3.3.tgz#e4b3ab93e7c3d1606e86f9549522a0b5c4ad6812" + integrity sha512-vDD2HyG6On8H9gWUN9O9q1eXR/JnXpCkNvpusvgFsRQ9JZGF9drzvwKEigR9vqlmUbXO2t/vIIabpYMmis0eAQ== + dependencies: + glob "^7.1.6" + is-promise "^2.1.0" + loader-utils "^1.2.3" + schema-utils "^2.6.1" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylus-loader@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" + integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== + dependencies: + loader-utils "^1.0.2" + lodash.clonedeep "^4.5.0" + when "~3.6.x" + +stylus@^0.54.5: + version "0.54.7" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2" + integrity sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug== + dependencies: + css-parse "~2.0.0" + debug "~3.1.0" + glob "^7.1.3" + mkdirp "~0.5.x" + safer-buffer "^2.1.2" + sax "~1.2.4" + semver "^6.0.0" + source-map "^0.7.3" + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + +sum-up@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + integrity sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4= + dependencies: + chalk "^1.0.0" + +supports-color@6.1.0, supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-fs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" + integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== + dependencies: + chownr "^1.1.1" + mkdirp "^0.5.1" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^1.1.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@^2.0.0, tar-stream@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3" + integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw== + dependencies: + bl "^3.0.0" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4.4.8: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tempfile@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + integrity sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I= + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +term-size@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.1.1.tgz#f81ec25854af91a480d2f9d0c77ffcb26594ed1a" + integrity sha512-UqvQSch04R+69g4RDhrslmGvGL3ucDRX/U+snYW0Mab4uCAyKSndUksaoqlJ81QKSpRnIsuOYQCbC2ZWx2896A== + +ternary-stream@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-2.1.1.tgz#4ad64b98668d796a085af2c493885a435a8a8bfc" + integrity sha512-j6ei9hxSoyGlqTmoMjOm+QNvUKDOIY6bNl4Uh1lhBvl6yjPW2iLqxDUYyfDPZknQ4KdRziFl+ec99iT4l7g0cw== + dependencies: + duplexify "^3.5.0" + fork-stream "^0.0.4" + merge-stream "^1.0.0" + through2 "^2.0.1" + +ternary@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ternary/-/ternary-1.0.0.tgz#45702725608c9499d46a9610e9b0e49ff26f789e" + integrity sha1-RXAnJWCMlJnUapYQ6bDkn/JveJ4= + +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.1.tgz#6a63c27debc15b25ffd2588562ee2eeabdcab923" + integrity sha512-dNxivOXmDgZqrGxOttBH6B4xaxT4zNC+Xd+2K8jwGDMK5q2CZI+KZMA1AAnSRT+BTRvuzKsDx+fpxzPAmAMVcA== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.2.0" + jest-worker "^24.9.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.4.3" + webpack-sources "^1.4.3" + +terser@^3.7.5: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + +terser@^4.1.2, terser@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.3.tgz#401abc52b88869cf904412503b1eb7da093ae2f0" + integrity sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +textextensions@2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" + integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== + +thread-loader@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" + integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +throng@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/throng/-/throng-4.0.0.tgz#983c6ba1993b58eae859998aa687ffe88df84c17" + integrity sha1-mDxroZk7WOroWZmKpof/6I34TBc= + dependencies: + lodash.defaults "^4.0.1" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw= + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.3.tgz#795292fde9f254c2a368b38f9cc5d1bd4663afb6" + integrity sha1-eVKS/enyVMKjaLOPnMXRvUZjr7Y= + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@3.0.1, through2@^3.0.0, through2@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" + integrity sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s= + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.7, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +time-fix-plugin@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/time-fix-plugin/-/time-fix-plugin-2.0.6.tgz#3210121d269b475a7e7661766e682bd768ba1ced" + integrity sha512-2cjjg3672ppNm/uKhHAoCFp1ItEAiH+xJOjO9WGIF8hXuxPAJ2adfYgFiyooVbsOb948c+WrRh+edxFUMxYHoQ== + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + integrity sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc= + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tinymce@4.5.8: + version "4.5.8" + resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-4.5.8.tgz#3af42efb31c5b9c27e4b11ef4920e196f1a5fc4e" + integrity sha1-OvQu+zHFucJ+SxHvSSDhlvGl/E4= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + integrity sha1-HN+kcqnvUMI57maZm2YsoOs5k38= + dependencies: + extend-shallow "^2.0.1" + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-factory@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1" + integrity sha1-hzivi9lxIK0dQEeXKtpVY7+UebE= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + dependencies: + through2 "^2.0.3" + +toastr@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" + integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE= + dependencies: + jquery ">=1.12.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +token-stream@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" + integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo= + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +transformify@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/transformify/-/transformify-0.1.2.tgz#9a4f42a154433dd727b80575428a3c9e5489ebf1" + integrity sha1-mk9CoVRDPdcnuAV1Qoo8nlSJ6/E= + dependencies: + readable-stream "~1.1.9" + +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +tunnel-agent@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + integrity sha1-yrEPtJCeRByChC6v4a1kbIGARBA= + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +ua-parser-js@^0.7.20: + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^2.6.1, uglify-js@^2.8.22: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.0.5, uglify-js@^3.5.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" + integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg== + dependencies: + commander "~2.20.3" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +uglifyify@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" + integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== + dependencies: + convert-source-map "~1.1.0" + minimatch "^3.0.2" + terser "^3.7.5" + through "~2.3.4" + xtend "^4.0.1" + +uid-safe@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +uid2@0.0.x: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= + +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +undefsafe@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" + integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= + dependencies: + debug "^2.2.0" + +underscore@~1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" + integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +unfetch@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" + integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + integrity sha1-uYTwh3/AqJwsdzzB73tbIytbBv4= + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.1.0, upath@^1.1.1, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +update-notifier@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" + integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url-loader@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ= + dependencies: + ip-regex "^1.0.1" + +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8= + +util.promisify@1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1, utils-merge@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uue@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/uue/-/uue-3.1.2.tgz#e99368414e87200012eb37de4dbaebaa1c742ad2" + integrity sha512-axKLXVqwtdI/czrjG0X8hyV1KLgeWx8F4KvSbvVCnS+RUvsQMGRjx0kfuZDXXqj0LYvVJmx3B9kWlKtEdRrJLg== + dependencies: + escape-string-regexp "~1.0.5" + extend "~3.0.0" + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= + +uuid@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +v8-compile-cache@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + +v8flags@^3.0.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" + integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== + dependencies: + homedir-polyfill "^1.0.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= + +valid-data-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-2.0.0.tgz#2220fa9f8d4e761ebd3f3bb02770f1212b810537" + integrity sha512-dyCZnv3aCey7yfTgIqdZanKl7xWAEEKCbgmR7SKqyK6QT/Z07ROactrgD1eA37C69ODRj7rNOjzKWVPh0EUjBA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validator@^10.11.0: + version "10.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" + integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw== + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= + +vary@^1, vary@^1.1.2, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-assign@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" + integrity sha1-TRmIkbVRWRHXcajNnFSApGoHSkU= + dependencies: + object-assign "^4.0.1" + readable-stream "^2.0.0" + +vinyl-buffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz#96c1a3479b8c5392542c612029013b5b27f88bbf" + integrity sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78= + dependencies: + bl "^1.2.1" + through2 "^2.0.3" + +vinyl-fs@^2.2.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + integrity sha1-vm/zJwy1Xf19MGNkDegfJddTIjk= + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-source-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz#f38a5afb9dd1e93b65d550469ac6182ac4f54b8e" + integrity sha1-84pa+53R6Ttl1VBGmsYYKsT1S44= + dependencies: + through2 "^2.0.3" + vinyl "^2.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= + dependencies: + source-map "^0.5.1" + +vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vm-browserify@^1.0.0, vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +void-elements@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +vue-client-only@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.0.0.tgz#ddad8d675ee02c761a14229f0e440e219de1da1c" + integrity sha512-arhk1wtWAfLsJyxGMoEYhoBowM87/i6HLSG2LH/03Yog6i2d9JEN1peMP0Ceis+/n9DxdenGYZZTxbPPJyHciA== + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +vue-i18n@^8.15.3: + version "8.15.3" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.15.3.tgz#9f947802d9b734fcb92e2ce724da654f2f9fc0f4" + integrity sha512-PVNgo6yhOmacZVFjSapZ314oewwLyXHjJwAqjnaPN1GJAJd/dvsrShGzSiJuCX4Hc36G4epJvNXUwO8y7wEKew== + +vue-loader@^15.7.1, vue-loader@^15.9.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.0.tgz#5d4b0378a4606188fc83e587ed23c94bc3a10998" + integrity sha512-FeDHvTSpwyLeF7LIV1PYkvqUQgTJ8UmOxhSlCyRSxaXCKk+M6NF4tDQsLsPPNeDPyR7TfRQ8MLg6v+8PsDV9xQ== + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-loader@^15.8.3: + version "15.8.3" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.8.3.tgz#857cb9e30eb5fc25e66db48dce7e4f768602a23c" + integrity sha512-yFksTFbhp+lxlm92DrKdpVIWMpranXnTEuGSc0oW+Gk43M9LWaAmBTnfj5+FCdve715mTHvo78IdaXf5TbiTJg== + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-meta@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/vue-meta/-/vue-meta-2.3.1.tgz#32a1c2634f49433f30e7e7a028aa5e5743f84f6a" + integrity sha512-hnZvDNvLh+PefJLfYkZhG6cSBNKikgQyiEK8lI/P2qscM1DC/qHHOfdACPQ/VDnlaWU9VlcobCTNyVtssTR4XQ== + dependencies: + deepmerge "^4.0.0" + +vue-no-ssr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" + integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== + +vue-router@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b" + integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ== + +vue-server-renderer@^2.6.10, vue-server-renderer@^2.6.11: + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.11.tgz#be8c9abc6aacc309828a755c021a05fc474b4bc3" + integrity sha512-V3faFJHr2KYfdSIalL+JjinZSHYUhlrvJ9pzCIjjwSh77+pkrsXpK4PucdPcng57+N77pd1LrKqwbqjQdktU1A== + dependencies: + chalk "^1.1.3" + hash-sum "^1.0.2" + he "^1.1.0" + lodash.template "^4.5.0" + lodash.uniq "^4.5.0" + resolve "^1.2.0" + serialize-javascript "^2.1.2" + source-map "0.5.6" + +vue-style-loader@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.11: + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue@^2.6.10, vue@^2.6.11: + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" + integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ== + +vuelidate@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/vuelidate/-/vuelidate-0.7.4.tgz#5a0e54be09ac0192f1aa3387d74b92e0945bf8aa" + integrity sha512-QHZWYOL325Zo+2K7VBNEJTZ496Kd8Z31p85aQJFldKudUUGBmgw4zu4ghl4CyqPwjRCmqZ9lDdx4FSdMnu4fGg== + +vuepress-html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e" + integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A== + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +vuepress-plugin-container@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.1.2.tgz#688c1e5a9709a1b8658605bcaee580b3abb19d16" + integrity sha512-Df5KoIDMYiFg45GTfFw2hIiLGSsjhms4f3ppl2UIBf5nWMxi2lfifcoo8MooMSfxboxRZjoDccqQfu0fypaKrQ== + dependencies: + markdown-it-container "^2.0.0" + +vuepress-plugin-smooth-scroll@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz#6eff2d4c186cca917cc9f7df2b0af7de7c8c6438" + integrity sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg== + dependencies: + smoothscroll-polyfill "^0.4.3" + +vuepress@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.3.1.tgz#59355081a2c66ba3c9432ffd6e1d4025f9cf8e24" + integrity sha512-i0f0JB0zdmdVH8P8cO4w7PljPQpf8ObiVk/1pOidvMQCMEhFmIpYz+730Wlf0rtB/GG4QUsqQ27Ckp5Rfob+hQ== + dependencies: + "@vuepress/core" "^1.3.1" + "@vuepress/theme-default" "^1.3.1" + cac "^6.5.6" + envinfo "^7.2.0" + opencollective-postinstall "^2.0.2" + update-notifier "^4.0.0" + +vuetify-loader@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/vuetify-loader/-/vuetify-loader-1.4.3.tgz#df1323c558be09890877e5fbe817b3a71a6c538d" + integrity sha512-fS0wRil682Ebsj2as+eruBoMPKaQYDhu/fDAndnTItzSY4RK4LOEIsssVL4vD6QY8dvUgoGL84SUQ6vGr777CA== + dependencies: + loader-utils "^1.2.0" + +vuetify@^2.2.4: + version "2.2.6" + resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-2.2.6.tgz#f1ea54bbc0410b6038384de7abd410ab492187e9" + integrity sha512-HrcdKLs4YYG/3HwcdJa+HMUoNtKt/0ePmdkPYj/ju3EmyeJZyUaxbX0kyW5cyeUTyysrFkBJHCU+24iPYP3+pQ== + +vuex@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d" + integrity sha512-ha3jNLJqNhhrAemDXcmMJMKf1Zu4sybMPr9KxJIuOpVcsDQlTBYLLladav2U+g1AvdYDG5Gs0xBTb0M5pXXYFQ== + +walkdir@~0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.12.tgz#2f24f1ade64aab1e458591d4442c8868356e9281" + integrity sha512-HFhaD4mMWPzFSqhpyDG48KDdrjfn409YQuVW7ckZYhW4sE87mYtWifdB/+73RA7+p4s4K18n5Jfx1kHthE1gBw== + +ware@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" + integrity sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q= + dependencies: + wrap-fn "^0.1.0" + +watchify@^3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" + integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== + dependencies: + anymatch "^2.0.0" + browserify "^16.1.0" + chokidar "^2.1.1" + defined "^1.0.0" + outpipe "^1.1.0" + through2 "^2.0.0" + xtend "^4.0.0" + +watchpack@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-resource-inliner@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-4.3.4.tgz#07e1b4bcbcbee1021251b018e902bac5713f1be0" + integrity sha512-agVAgRhOOi4GVlvKK34oM23tDgH8390HfLnZY2HZl8OFBwKNvUJkH7t89AT2iluQP8w9VHAAKX6Z8EN7/9tqKA== + dependencies: + async "^3.1.0" + chalk "^2.4.2" + datauri "^2.0.0" + htmlparser2 "^4.0.0" + lodash.unescape "^4.0.1" + request "^2.88.0" + safer-buffer "^2.1.2" + valid-data-url "^2.0.0" + xtend "^4.0.2" + +webpack-bundle-analyzer@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz#39b3a8f829ca044682bc6f9e011c95deb554aefd" + integrity sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g== + dependencies: + acorn "^6.0.7" + acorn-walk "^6.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^4.9.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" + integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^1.6.0" + +webpack-chain@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.4.0.tgz#22f0b27b6a9bc9ee3cba4f9e6513cf66394034e2" + integrity sha512-f97PYqxU+9/u0IUqp/ekAHRhBD1IQwhBv3wlJo2nvyELpr2vNnUqO3XQEk+qneg0uWGP54iciotszpjfnEExFA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-cli@^3.3.9: + version "3.3.10" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" + integrity sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg== + dependencies: + chalk "2.4.2" + cross-spawn "6.0.5" + enhanced-resolve "4.1.0" + findup-sync "3.0.0" + global-modules "2.0.0" + import-local "2.0.0" + interpret "1.2.0" + loader-utils "1.2.3" + supports-color "6.1.0" + v8-compile-cache "2.0.3" + yargs "13.2.4" + +webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.5.1: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.6" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" + +webpack-external-import@^0.3.0-beta.0: + version "0.3.0-beta.0" + resolved "https://registry.yarnpkg.com/webpack-external-import/-/webpack-external-import-0.3.0-beta.0.tgz#bceccdafb9572931ee93ffa84e39eea9f6d15dca" + integrity sha512-58uSxZEi1Y2HGktQficlwSVHcvml1p6fpXrFEMEgi8nR/eLWlHcoYyILGRzZFSq8jfFqhAbHlm4fcnAIVA5Epg== + dependencies: + dimport "^1.0.0" + fs-extra "^8.1.0" + loadjs "^3.6.1" + +webpack-hot-middleware@^2.25.0: + version "2.25.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" + integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.1.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-node-externals@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" + integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== + +webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.41.3: + version "4.41.4" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.4.tgz#4bec4125224bdf50efa8be6226c19047599cd034" + integrity sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +webpack@^4.8.1: + version "4.41.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1" + integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +webpackbar@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f" + integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw== + dependencies: + ansi-escapes "^4.1.0" + chalk "^2.4.1" + consola "^2.6.0" + figures "^3.0.0" + pretty-time "^1.1.0" + std-env "^2.2.1" + text-table "^0.2.0" + wrap-ansi "^5.1.0" + +webpackbar@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-4.0.0.tgz#ee7a87f16077505b5720551af413c8ecd5b1f780" + integrity sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.2" + consola "^2.10.0" + figures "^3.0.0" + pretty-time "^1.1.0" + std-env "^2.2.1" + text-table "^0.2.0" + wrap-ansi "^6.0.0" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +when@^3.7.8: + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= + +when@~3.6.x: + version "3.6.4" + resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" + integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.0.9, which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wildstring@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/wildstring/-/wildstring-1.0.9.tgz#82a696d5653c7d4ec9ba716859b6b53aba2761c5" + integrity sha1-gqaW1WU8fU7JunFoWba1OronYcU= + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +winston-transport@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66" + integrity sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A== + dependencies: + readable-stream "^2.3.6" + triple-beam "^1.2.0" + +winston@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" + integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== + dependencies: + async "^2.6.1" + diagnostics "^1.1.1" + is-stream "^1.1.0" + logform "^2.1.1" + one-time "0.0.4" + readable-stream "^3.1.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.3.0" + +with@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" + integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4= + dependencies: + acorn "^3.1.0" + acorn-globals "^3.0.0" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.0.0, wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-fn@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" + integrity sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU= + dependencies: + co "3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-json-file@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +ws@^6.0.0, ws@^6.1.0, ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +x-xss-protection@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.3.0.tgz#3e3a8dd638da80421b0e9fff11a2dbe168f6d52c" + integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg== + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + +xxhashjs@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" + integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== + dependencies: + cuint "^0.2.2" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.0, yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= + dependencies: + camelcase "^3.0.0" + +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + +yargs@^13.2.2: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yargs@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yargs@~1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" + integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= + dependencies: + minimist "^0.1.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= + dependencies: + fd-slicer "~1.0.1" + +yauzl@^2.2.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +zepto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/zepto/-/zepto-1.2.0.tgz#e127bd9e66fd846be5eab48c1394882f7c0e4f98" + integrity sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g= + +zip-stream@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.2.tgz#841efd23214b602ff49c497cba1a85d8b5fbc39c" + integrity sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^2.1.1" + readable-stream "^3.4.0"