From 14157bda160640669771a679f263902c196e5938 Mon Sep 17 00:00:00 2001 From: Nicolas Torion Date: Mon, 11 Jan 2021 16:16:19 +0100 Subject: [PATCH] Initial commit --- .babelrc | 3 + .badsenderrc-example | 132 + .buildpacks | 2 + .circleci/config.yml | 37 + .dockerignore | 2 + .gitignore | 28 + .gitignore-release | 25 + .jsbeautifyrc | 6 + .jshintrc | 8 + .nvmrc | 1 + .prettierignore | 5 + .prettierrc | 5 + .profile | 2 + .travis.yml | 13 + .vscode/settings.json | 57 + .vscode/vue-file.code-snippets | 38 + Aptfile | 9 + Procfile | 1 + docker/Dockerfile | 27 + docker/docker-compose.yml | 48 + docker/start-dev-db.sh | 19 + gulpfile.js | 482 + jsconfig.json | 10 + nuxt.config.js | 106 + package.json | 240 + packages/documentation/.vuepress/config.js | 12 + .../documentation/badsender-architecture.svg | 1 + packages/documentation/development.md | 143 + .../documentation/heroku-configuration.md | 161 + packages/documentation/index.md | 110 + packages/documentation/mosaico.md | 70 + packages/editor/CONTRIBUTING.md | 33 + packages/editor/LICENSE | 680 + packages/editor/NOTICE.txt | 100 + packages/editor/README.md | 72 + packages/editor/appveyor.yml | 27 + packages/editor/backend/README.txt | 23 + packages/editor/backend/main.js | 173 + packages/editor/build/templates.js | 19 + packages/editor/package.json.NOTES | 4 + packages/editor/server-config.js | 12 + packages/editor/spec/converter-spec.js | 115 + .../spec/data/template-versafix-1.blocks.json | 541 + .../spec/data/template-versafix-1.def.json | 14760 +++++++++++++ .../editor/spec/data/template-versafix-1.html | 1582 ++ .../spec/data/template-versafix-1.model.json | 159 + .../spec/data/template-versafix-1.save1.json | 279 + packages/editor/spec/declarations-spec.js | 289 + packages/editor/spec/mensch-spec.js | 114 + packages/editor/spec/model-spec.js | 88 + packages/editor/spec/stylesheet-spec.js | 186 + packages/editor/spec/wrapper-spec.js | 192 + packages/editor/src/css/app_standalone.less | 7 + .../src/css/app_standalone_material.less | 386 + .../src/css/badesender-image-gallery.less | 274 + .../editor/src/css/badsender-colorpicker.less | 91 + packages/editor/src/css/badsender-editor.less | 498 + .../src/css/badsender-image-cropper.less | 128 + .../src/css/badsender-main-toolbox.less | 146 + .../src/css/badsender-mobile-preview.less | 60 + packages/editor/src/css/badsender-topbar.less | 123 + packages/editor/src/css/contact-popup.less | 47 + packages/editor/src/css/safarihack.css | 25 + packages/editor/src/css/style_elements.less | 501 + .../editor/src/css/style_elements_jquery.less | 344 + .../editor/src/css/style_elements_mixins.less | 354 + .../editor/src/css/style_elements_moxie.less | 181 + packages/editor/src/css/style_mosaico.less | 552 + .../editor/src/css/style_mosaico_content.less | 421 + .../editor/src/css/style_mosaico_tools.less | 1043 + .../editor/src/css/style_mosaico_top-bar.less | 88 + packages/editor/src/css/style_reset.less | 45 + packages/editor/src/css/style_variables.less | 156 + packages/editor/src/html/README.md | 2 + packages/editor/src/html/editor.html | 50 + packages/editor/src/html/index.html | 198 + packages/editor/src/js/app.js | 245 + .../editor/src/js/badsender-events-hub.js | 39 + packages/editor/src/js/badsender-helpers.js | 16 + .../src/js/bindings/badsender-colorpicker.js | 151 + .../badsender-fileupload-extension.js | 207 + .../editor/src/js/bindings/bind-iframe.js | 64 + packages/editor/src/js/bindings/blocks.js | 118 + .../editor/src/js/bindings/choose-template.js | 7 + .../editor/src/js/bindings/colorpicker.js | 58 + packages/editor/src/js/bindings/csstext.js | 16 + packages/editor/src/js/bindings/eventable.js | 33 + .../editor/src/js/bindings/extdroppable.js | 88 + .../src/js/bindings/extender-pagination.js | 60 + .../editor/src/js/bindings/extsortables.js | 103 + packages/editor/src/js/bindings/fileupload.js | 285 + packages/editor/src/js/bindings/if-subs.js | 116 + .../src/js/bindings/jqueryui-spinner.js | 31 + .../editor/src/js/bindings/jqueryui-tabs.js | 17 + packages/editor/src/js/bindings/preloader.js | 34 + .../editor/src/js/bindings/script-template.js | 30 + packages/editor/src/js/bindings/scrollfix.js | 61 + .../editor/src/js/bindings/scrollintoview.js | 83 + .../editor/src/js/bindings/string-template.js | 76 + packages/editor/src/js/bindings/tooltips.js | 36 + packages/editor/src/js/bindings/unused.js | 103 + .../editor/src/js/bindings/validated-value.js | 40 + packages/editor/src/js/bindings/virtuals.js | 102 + packages/editor/src/js/bindings/wysiwygs.js | 418 + .../editor/src/js/converter/checkmodel.js | 114 + .../editor/src/js/converter/declarations.js | 279 + packages/editor/src/js/converter/domutils.js | 93 + packages/editor/src/js/converter/editor.js | 411 + packages/editor/src/js/converter/main.js | 42 + packages/editor/src/js/converter/model.js | 541 + packages/editor/src/js/converter/parser.js | 488 + .../editor/src/js/converter/stylesheet.js | 190 + packages/editor/src/js/converter/utils.js | 156 + packages/editor/src/js/converter/wrapper.js | 346 + .../editor/src/js/ext/badsender-edit-title.js | 55 + .../editor/src/js/ext/badsender-extensions.js | 205 + .../editor/src/js/ext/badsender-gallery.js | 86 + .../js/ext/badsender-remove-gallery-image.js | 35 + .../src/js/ext/badsender-screen-preview.js | 69 + .../src/js/ext/badsender-select-item.js | 31 + .../src/js/ext/badsender-server-storage.js | 157 + .../src/js/ext/badsender-text-editor.js | 268 + .../src/js/ext/badsender-widget-bgimage.js | 82 + packages/editor/src/js/ext/color.js | 53 + packages/editor/src/js/ext/inliner.js | 35 + packages/editor/src/js/ext/localstorage.js | 112 + packages/editor/src/js/ext/util.js | 10 + packages/editor/src/js/ko-bindings.js | 25 + packages/editor/src/js/template-loader.js | 489 + packages/editor/src/js/timed-call.js | 31 + .../editor/src/js/undomanager/undomain.js | 49 + .../editor/src/js/undomanager/undomanager.js | 232 + .../src/js/undomanager/undoserializer.js | 120 + packages/editor/src/js/viewmodel.js | 511 + .../dialog-select-image.tmpl.html | 115 + .../src/tmpl-badsender/download-buttons.html | 102 + .../src/tmpl-badsender/edit-name.tmpl.html | 17 + .../tmpl-badsender/gallery-images.tmpl.html | 12 + .../tmpl-badsender/gallery-upload.tmpl.html | 27 + .../src/tmpl-badsender/toolbox.tmpl.html | 111 + packages/editor/src/tmpl/array.tmpl.html | 1 + packages/editor/src/tmpl/block-show.tmpl.html | 1 + .../editor/src/tmpl/block-wysiwyg.tmpl.html | 18 + .../editor/src/tmpl/blocks-show.tmpl.html | 1 + .../editor/src/tmpl/blocks-wysiwyg.tmpl.html | 2 + .../editor/src/tmpl/customstyle.tmpl.html | 3 + packages/editor/src/tmpl/empty.tmpl.html | 0 packages/editor/src/tmpl/error.tmpl.html | 1 + .../editor/src/tmpl/gallery-images.tmpl.html | 18 + .../editor/src/tmpl/img-wysiwyg.tmpl.html | 46 + packages/editor/src/tmpl/main.tmpl.html | 103 + packages/editor/src/tmpl/toolbox.tmpl.html | 105 + packages/editor/templates/gif-no-border.gif | Bin 0 -> 184478 bytes packages/editor/templates/gif-with-border.gif | Bin 0 -> 234060 bytes .../sub-themes/edres/CustomBlock.png | Bin 0 -> 32917 bytes .../sub-themes/edres/WitnessBlock.png | Bin 0 -> 2328 bytes .../templates/sub-themes/edres/_full.png | Bin 0 -> 69720 bytes .../sub-themes/edres/bgimageBlock.png | Bin 0 -> 6633 bytes .../sub-themes/edres/coverImagesBlock.png | Bin 0 -> 8920 bytes .../sub-themes/edres/twoColumnsBlock.png | Bin 0 -> 6842 bytes .../sub-themes/template-sub-themes.html | 633 + packages/editor/templates/tedc15/README.md | 1 + .../editor/templates/tedc15/edres/_full.png | Bin 0 -> 349286 bytes .../templates/tedc15/edres/footerBlock.png | Bin 0 -> 5183 bytes .../templates/tedc15/edres/headerBlock.png | Bin 0 -> 6792 bytes .../templates/tedc15/edres/heroBlock.png | Bin 0 -> 123726 bytes .../templates/tedc15/edres/socialBlock.png | Bin 0 -> 4448 bytes .../templates/tedc15/edres/threetwoBlock.png | Bin 0 -> 92517 bytes .../templates/tedc15/edres/twoColumnBlock.png | Bin 0 -> 112536 bytes .../templates/tedc15/template-tedc15.html | 567 + .../edres/HeaderAndText.png | Bin 0 -> 2279 bytes .../tutorial-badsender/edres/_full.png | Bin 0 -> 19262 bytes .../tutorial-badsender/edres/buttonBlock.png | Bin 0 -> 1189 bytes .../tutorial-badsender/edres/fixedlist.png | Bin 0 -> 2791 bytes .../tutorial-badsender/template-tutorial.html | 182 + .../tutorial/edres/HeaderAndText.png | Bin 0 -> 2279 bytes .../editor/templates/tutorial/edres/_full.png | Bin 0 -> 12969 bytes .../templates/tutorial/edres/fixedlist.png | Bin 0 -> 2791 bytes .../templates/tutorial/mosaico-tutorial.md | 328 + .../templates/tutorial/mosaico-tutorial.pdf | Bin 0 -> 363010 bytes .../templates/tutorial/screenshot_384.jpg | Bin 0 -> 144912 bytes .../templates/tutorial/screenshot_385.jpg | Bin 0 -> 93721 bytes .../templates/tutorial/screenshot_386.jpg | Bin 0 -> 96674 bytes .../templates/tutorial/screenshot_387.jpg | Bin 0 -> 91127 bytes .../templates/tutorial/screenshot_407.jpg | Bin 0 -> 51688 bytes .../templates/tutorial/screenshot_408.jpg | Bin 0 -> 82337 bytes .../templates/tutorial/template-tutorial.html | 68 + .../templates/versafix-1/edres/_full.png | Bin 0 -> 107411 bytes .../versafix-1/edres/bigSocialBlock.png | Bin 0 -> 7038 bytes .../versafix-1/edres/buttonBlock.png | Bin 0 -> 1045 bytes .../versafix-1/edres/doubleArticleBlock.png | Bin 0 -> 8498 bytes .../versafix-1/edres/doubleImageBlock.png | Bin 0 -> 9001 bytes .../templates/versafix-1/edres/hrBlock.png | Bin 0 -> 198 bytes .../templates/versafix-1/edres/imageBlock.png | Bin 0 -> 9985 bytes .../templates/versafix-1/edres/logoBlock.png | Bin 0 -> 5232 bytes .../templates/versafix-1/edres/shareBlock.png | Bin 0 -> 2111 bytes .../versafix-1/edres/sideArticleBlock.png | Bin 0 -> 9710 bytes .../versafix-1/edres/singleArticleBlock.png | Bin 0 -> 16143 bytes .../versafix-1/edres/socialBlock.png | Bin 0 -> 2752 bytes .../versafix-1/edres/spacerBlock.png | Bin 0 -> 153 bytes .../templates/versafix-1/edres/textBlock.png | Bin 0 -> 9219 bytes .../templates/versafix-1/edres/titleBlock.png | Bin 0 -> 1503 bytes .../versafix-1/edres/tripleArticleBlock.png | Bin 0 -> 7698 bytes .../versafix-1/edres/tripleImageBlock.png | Bin 0 -> 4375 bytes .../templates/versafix-1/img/icons/README.md | 4 + .../versafix-1/img/icons/fb-black-96.png | Bin 0 -> 1446 bytes .../versafix-1/img/icons/fb-bw-96.png | Bin 0 -> 2005 bytes .../versafix-1/img/icons/fb-colors-96.png | Bin 0 -> 2145 bytes .../versafix-1/img/icons/fb-coloured-96.png | Bin 0 -> 1543 bytes .../versafix-1/img/icons/fb-rdbl-96.png | Bin 0 -> 2948 bytes .../versafix-1/img/icons/fb-rdcol-96.png | Bin 0 -> 2704 bytes .../versafix-1/img/icons/fb-white-96.png | Bin 0 -> 1548 bytes .../versafix-1/img/icons/fl-black-96.png | Bin 0 -> 1670 bytes .../versafix-1/img/icons/fl-bw-96.png | Bin 0 -> 2104 bytes .../versafix-1/img/icons/fl-colors-96.png | Bin 0 -> 2293 bytes .../versafix-1/img/icons/fl-coloured-96.png | Bin 0 -> 1916 bytes .../versafix-1/img/icons/fl-rdbl-96.png | Bin 0 -> 3012 bytes .../versafix-1/img/icons/fl-rdcol-96.png | Bin 0 -> 2897 bytes .../versafix-1/img/icons/fl-white-96.png | Bin 0 -> 1887 bytes .../versafix-1/img/icons/gg-black-96.png | Bin 0 -> 2149 bytes .../versafix-1/img/icons/gg-bw-96.png | Bin 0 -> 2469 bytes .../versafix-1/img/icons/gg-colors-96.png | Bin 0 -> 2678 bytes .../versafix-1/img/icons/gg-coloured-96.png | Bin 0 -> 2079 bytes .../versafix-1/img/icons/gg-rdbl-96.png | Bin 0 -> 3347 bytes .../versafix-1/img/icons/gg-rdcol-96.png | Bin 0 -> 3219 bytes .../versafix-1/img/icons/gg-white-96.png | Bin 0 -> 2183 bytes .../versafix-1/img/icons/in-black-96.png | Bin 0 -> 1660 bytes .../versafix-1/img/icons/in-bw-96.png | Bin 0 -> 2210 bytes .../versafix-1/img/icons/in-colors-96.png | Bin 0 -> 2424 bytes .../versafix-1/img/icons/in-coloured-96.png | Bin 0 -> 1850 bytes .../versafix-1/img/icons/in-rdbl-96.png | Bin 0 -> 3056 bytes .../versafix-1/img/icons/in-rdcol-96.png | Bin 0 -> 2917 bytes .../versafix-1/img/icons/in-white-96.png | Bin 0 -> 1875 bytes .../versafix-1/img/icons/inst-black-96.png | Bin 0 -> 3145 bytes .../versafix-1/img/icons/inst-bw-96.png | Bin 0 -> 3145 bytes .../versafix-1/img/icons/inst-colors-96.png | Bin 0 -> 3419 bytes .../versafix-1/img/icons/inst-coloured-96.png | Bin 0 -> 3263 bytes .../versafix-1/img/icons/inst-rdbl-96.png | Bin 0 -> 4094 bytes .../versafix-1/img/icons/inst-rdcol-96.png | Bin 0 -> 3846 bytes .../versafix-1/img/icons/inst-white-96.png | Bin 0 -> 3261 bytes .../versafix-1/img/icons/pi-black-96.png | Bin 0 -> 2895 bytes .../versafix-1/img/icons/pi-bw-96.png | Bin 0 -> 2933 bytes .../versafix-1/img/icons/pi-colors-96.png | Bin 0 -> 3170 bytes .../versafix-1/img/icons/pi-coloured-96.png | Bin 0 -> 2863 bytes .../versafix-1/img/icons/pi-rdbl-96.png | Bin 0 -> 3648 bytes .../versafix-1/img/icons/pi-rdcol-96.png | Bin 0 -> 3582 bytes .../versafix-1/img/icons/pi-white-96.png | Bin 0 -> 3018 bytes .../versafix-1/img/icons/tw-black-96.png | Bin 0 -> 2442 bytes .../versafix-1/img/icons/tw-bw-96.png | Bin 0 -> 2646 bytes .../versafix-1/img/icons/tw-colors-96.png | Bin 0 -> 2826 bytes .../versafix-1/img/icons/tw-coloured-96.png | Bin 0 -> 2441 bytes .../versafix-1/img/icons/tw-rdbl-96.png | Bin 0 -> 3384 bytes .../versafix-1/img/icons/tw-rdcol-96.png | Bin 0 -> 3345 bytes .../versafix-1/img/icons/tw-white-96.png | Bin 0 -> 2497 bytes .../versafix-1/img/icons/vi-black-96.png | Bin 0 -> 2499 bytes .../versafix-1/img/icons/vi-bw-96.png | Bin 0 -> 2700 bytes .../versafix-1/img/icons/vi-colors-96.png | Bin 0 -> 2858 bytes .../versafix-1/img/icons/vi-coloured-96.png | Bin 0 -> 2455 bytes .../versafix-1/img/icons/vi-rdbl-96.png | Bin 0 -> 3397 bytes .../versafix-1/img/icons/vi-rdcol-96.png | Bin 0 -> 3420 bytes .../versafix-1/img/icons/vi-white-96.png | Bin 0 -> 2518 bytes .../versafix-1/img/icons/web-black-96.png | Bin 0 -> 3543 bytes .../versafix-1/img/icons/web-bw-96.png | Bin 0 -> 3451 bytes .../versafix-1/img/icons/web-colors-96.png | Bin 0 -> 3608 bytes .../versafix-1/img/icons/web-coloured-96.png | Bin 0 -> 3475 bytes .../versafix-1/img/icons/web-rdbl-96.png | Bin 0 -> 4382 bytes .../versafix-1/img/icons/web-rdcol-96.png | Bin 0 -> 4046 bytes .../versafix-1/img/icons/web-white-96.png | Bin 0 -> 3718 bytes .../versafix-1/img/icons/you-black-96.png | Bin 0 -> 1906 bytes .../versafix-1/img/icons/you-bw-96.png | Bin 0 -> 2318 bytes .../versafix-1/img/icons/you-colors-96.png | Bin 0 -> 2565 bytes .../versafix-1/img/icons/you-coloured-96.png | Bin 0 -> 2252 bytes .../versafix-1/img/icons/you-rdbl-96.png | Bin 0 -> 3228 bytes .../versafix-1/img/icons/you-rdcol-96.png | Bin 0 -> 3087 bytes .../versafix-1/img/icons/you-white-96.png | Bin 0 -> 2332 bytes .../img/social_def/facebook_bw_ok.png | Bin 0 -> 858 bytes .../versafix-1/img/social_def/facebook_ok.png | Bin 0 -> 876 bytes .../img/social_def/flickr_bw_ok.png | Bin 0 -> 967 bytes .../versafix-1/img/social_def/flickr_ok.png | Bin 0 -> 996 bytes .../img/social_def/google+_bw_ok.png | Bin 0 -> 2674 bytes .../versafix-1/img/social_def/google+_ok.png | Bin 0 -> 2941 bytes .../img/social_def/instagram_bw_ok.png | Bin 0 -> 1072 bytes .../img/social_def/instagram_ok.png | Bin 0 -> 1134 bytes .../img/social_def/linkedin_bw_ok.png | Bin 0 -> 939 bytes .../versafix-1/img/social_def/linkedin_ok.png | Bin 0 -> 972 bytes .../img/social_def/twitter_bw_ok.png | Bin 0 -> 1060 bytes .../versafix-1/img/social_def/twitter_ok.png | Bin 0 -> 1072 bytes .../versafix-1/img/social_def/vimeo_bw_ok.png | Bin 0 -> 1105 bytes .../versafix-1/img/social_def/vimeo_ok.png | Bin 0 -> 1170 bytes .../versafix-1/img/social_def/web_bw_ok.png | Bin 0 -> 1355 bytes .../versafix-1/img/social_def/web_ok.png | Bin 0 -> 1461 bytes .../img/social_def/youtube_bw_ok.png | Bin 0 -> 1011 bytes .../versafix-1/img/social_def/youtube_ok.png | Bin 0 -> 1095 bytes .../templates/versafix-1/img/sponsor.gif | Bin 0 -> 12435 bytes .../versafix-1/template-versafix-1.html | 1576 ++ packages/server/.prettierrc | 5 + packages/server/apidoc.json | 7 + packages/server/controllers/groups.js | 187 + packages/server/controllers/images.js | 514 + .../controllers/mailings/download-zip.js | 321 + packages/server/controllers/mailings/index.js | 396 + .../controllers/mailings/mosaico-editor.js | 42 + .../mailings/process-mosaico-html-render.js | 61 + .../controllers/mailings/send-test-mail.js | 52 + .../controllers/templates/generate-preview.js | 357 + .../templates/get-template-image-prefix.js | 6 + .../server/controllers/templates/index.js | 254 + packages/server/controllers/users.js | 288 + packages/server/helpers/brand-colors.js | 52 + packages/server/helpers/clean-tag-name.js | 11 + packages/server/helpers/create-promise.js | 15 + packages/server/helpers/event-bus.js | 9 + packages/server/helpers/event-names.js | 23 + .../format-filename-for-jquery-fileupload.js | 14 + packages/server/helpers/server-sent-events.js | 65 + packages/server/helpers/server-simple-i18n.js | 25 + packages/server/helpers/slug-filename.js | 25 + .../maintenance-pages/_maintenance-layout.pug | 51 + .../maintenance-pages/_maintenance-logo.pug | 2 + .../maintenance-pages/error.pug | 12 + .../maintenance-pages/maintenance.pug | 12 + .../server/html-templates/mosaico-editor.pug | 91 + packages/server/index.js | 283 + packages/server/md5public.json | 63 + packages/server/models/names.js | 15 + packages/server/models/reset-password.html | 200 + packages/server/models/schema-cache-image.js | 23 + packages/server/models/schema-gallery.js | 62 + packages/server/models/schema-group.js | 113 + packages/server/models/schema-mailing.js | 283 + .../server/models/schema-oauth-clients.js | 19 + packages/server/models/schema-oauth-codes.js | 23 + packages/server/models/schema-oauth-tokens.js | 43 + packages/server/models/schema-template.js | 153 + packages/server/models/schema-user.js | 247 + packages/server/models/utils.js | 45 + packages/server/node.config.js | 137 + packages/server/nodemon.json | 12 + packages/server/routes-api.js | 169 + packages/server/routes-oauth2.js | 276 + packages/server/services/authentication.js | 166 + .../server/services/file-manager/index.js | 133 + .../services/file-manager/storage-local.js | 68 + .../services/file-manager/storage-s3.js | 120 + packages/server/services/ftp-client.js | 98 + packages/server/services/initialization.js | 45 + packages/server/services/logger.js | 57 + packages/server/services/mail.js | 58 + packages/server/services/models.js | 114 + packages/server/workers.js | 30 + packages/ui/.nuxt/App.js | 199 + packages/ui/.nuxt/axios.js | 180 + packages/ui/.nuxt/client.js | 763 + packages/ui/.nuxt/components/nuxt-child.js | 118 + packages/ui/.nuxt/components/nuxt-error.vue | 97 + .../ui/.nuxt/components/nuxt-link.client.js | 98 + .../ui/.nuxt/components/nuxt-link.server.js | 16 + packages/ui/.nuxt/components/nuxt-loading.vue | 177 + packages/ui/.nuxt/components/nuxt.js | 101 + packages/ui/.nuxt/empty.js | 1 + packages/ui/.nuxt/index.js | 225 + packages/ui/.nuxt/loading.html | 109 + packages/ui/.nuxt/middleware.js | 6 + packages/ui/.nuxt/router.js | 120 + packages/ui/.nuxt/router.scrollBehavior.js | 74 + packages/ui/.nuxt/server.js | 277 + packages/ui/.nuxt/store.js | 148 + packages/ui/.nuxt/utils.js | 590 + packages/ui/.nuxt/views/app.template.html | 9 + packages/ui/.nuxt/views/error.html | 23 + packages/ui/.nuxt/vuetify/options.js | 1 + packages/ui/.nuxt/vuetify/plugin.js | 19 + packages/ui/assets/global-styles/index.scss | 5 + packages/ui/components/group/form.vue | 297 + packages/ui/components/group/mailings-tab.vue | 37 + packages/ui/components/group/menu.vue | 38 + .../ui/components/group/templates-tab.vue | 37 + packages/ui/components/group/users-tab.vue | 47 + packages/ui/components/layout-left-menu.vue | 22 + .../ui/components/mailings/admin-table.vue | 44 + packages/ui/components/mailings/filters.vue | 167 + .../components/mailings/modal-duplicate.vue | 50 + .../ui/components/mailings/modal-rename.vue | 55 + .../ui/components/mailings/modal-transfer.vue | 141 + .../components/mailings/selection-actions.vue | 99 + packages/ui/components/mailings/table.vue | 138 + packages/ui/components/mailings/tags-menu.vue | 203 + packages/ui/components/modal-confirm.vue | 48 + packages/ui/components/snackbar.vue | 33 + packages/ui/components/template/card.vue | 66 + .../ui/components/template/cover-image.vue | 46 + packages/ui/components/template/edit-form.vue | 143 + .../ui/components/template/html-preview.vue | 43 + .../ui/components/template/images-list.vue | 65 + packages/ui/components/template/menu.vue | 126 + .../ui/components/templates/create-form.vue | 75 + packages/ui/components/templates/table.vue | 90 + packages/ui/components/user/actions.vue | 138 + packages/ui/components/user/menu.vue | 116 + packages/ui/components/users/form.vue | 105 + .../users/table-actions-activation.vue | 43 + .../components/users/table-actions-mail.vue | 60 + packages/ui/components/users/table.vue | 141 + packages/ui/helpers/api-routes.js | 115 + packages/ui/helpers/locales/en.js | 182 + packages/ui/helpers/locales/fr.js | 182 + packages/ui/helpers/locales/index.js | 9 + packages/ui/helpers/mailings.js | 58 + packages/ui/helpers/mixin-create-mailing.js | 33 + packages/ui/helpers/mixin-page-title.js | 15 + packages/ui/helpers/pages-acls.js | 15 + packages/ui/helpers/server-sent-events.js | 14 + packages/ui/helpers/user-status.js | 22 + packages/ui/layouts/centered.vue | 23 + packages/ui/layouts/default.vue | 132 + packages/ui/layouts/error.vue | 50 + .../ui/middleware/authentication-check.js | 24 + .../ui/plugins/badsender-global-components.js | 5 + packages/ui/plugins/detect-browser-locale.js | 17 + packages/ui/plugins/vue-filters.js | 52 + packages/ui/plugins/vue-i18n.js | 39 + packages/ui/routes/404.vue | 8 + .../routes/account/_email/password/_token.vue | 115 + packages/ui/routes/account/admin.vue | 5 + packages/ui/routes/account/login/admin.vue | 37 + packages/ui/routes/account/login/index.vue | 47 + packages/ui/routes/account/reset-password.vue | 101 + packages/ui/routes/groups/_groupId/index.vue | 102 + .../routes/groups/_groupId/new-template.vue | 72 + .../ui/routes/groups/_groupId/new-user.vue | 79 + packages/ui/routes/groups/index.vue | 83 + packages/ui/routes/groups/new.vue | 70 + packages/ui/routes/index.vue | 5 + packages/ui/routes/mailings/index.vue | 302 + packages/ui/routes/mailings/new.vue | 66 + packages/ui/routes/templates/_templateId.vue | 205 + packages/ui/routes/templates/index.vue | 50 + packages/ui/routes/users/_userId.vue | 114 + packages/ui/routes/users/index.vue | 55 + packages/ui/static/favicon.png | Bin 0 -> 732 bytes packages/ui/store/index.js | 10 + packages/ui/store/page.js | 50 + packages/ui/store/user.js | 58 + public/fa/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes public/fa/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes public/fa/fonts/fontawesome-webfont.svg | 2671 +++ public/fa/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes public/fa/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes public/fa/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes public/favicon.png | Bin 0 -> 1260 bytes public/lang/LICENSE | 395 + public/lang/README.md | 32 + public/lang/badsender-en.js | 43 + public/lang/badsender-fr.js | 42 + public/lang/mosaico-de.json | 90 + public/lang/mosaico-en.json | 92 + public/lang/mosaico-es.json | 90 + public/lang/mosaico-fr.json | 92 + public/lang/mosaico-it.json | 90 + public/lang/mosaico-nl.json | 90 + public/lang/mosaico-pt_BR.json | 90 + public/lang/mosaico-ru.json | 90 + public/lang/mosaico-sr_RS.json | 90 + public/lang/mosaico-sv.json | 90 + public/lang/mosaico-tr.json | 90 + public/logo-badsender-white.svg | 1 + public/media/editor-icon.png | Bin 0 -> 1541 bytes public/media/logo_badsender_154x118.png | Bin 0 -> 51113 bytes public/media/logo_blanc.png | Bin 0 -> 3841 bytes public/media/logo_lepatron.png | Bin 0 -> 8292 bytes public/skins/gray-flat/Variables.less | 196 + public/skins/gray-flat/content.inline.min.css | 1 + public/skins/gray-flat/content.min.css | 1 + public/skins/gray-flat/fonts/readme.md | 1 + .../skins/gray-flat/fonts/tinymce-small.eot | Bin 0 -> 9492 bytes .../skins/gray-flat/fonts/tinymce-small.json | 1277 ++ .../skins/gray-flat/fonts/tinymce-small.svg | 63 + .../skins/gray-flat/fonts/tinymce-small.ttf | Bin 0 -> 9304 bytes .../skins/gray-flat/fonts/tinymce-small.woff | Bin 0 -> 9380 bytes public/skins/gray-flat/fonts/tinymce.eot | Bin 0 -> 14308 bytes public/skins/gray-flat/fonts/tinymce.json | 1972 ++ public/skins/gray-flat/fonts/tinymce.svg | 98 + public/skins/gray-flat/fonts/tinymce.ttf | Bin 0 -> 14144 bytes public/skins/gray-flat/fonts/tinymce.woff | Bin 0 -> 14220 bytes public/skins/gray-flat/img/anchor.gif | Bin 0 -> 53 bytes public/skins/gray-flat/img/loader.gif | Bin 0 -> 2608 bytes public/skins/gray-flat/img/object.gif | Bin 0 -> 152 bytes public/skins/gray-flat/img/trans.gif | Bin 0 -> 43 bytes public/skins/gray-flat/skin.ie7.min.css | 1 + public/skins/gray-flat/skin.json | 79 + public/skins/gray-flat/skin.min.css | 1 + public/tinymce-langs/fr_FR.js | 219 + yarn.lock | 17283 ++++++++++++++++ 493 files changed, 78977 insertions(+) create mode 100644 .babelrc create mode 100644 .badsenderrc-example create mode 100644 .buildpacks create mode 100644 .circleci/config.yml create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 .gitignore-release create mode 100644 .jsbeautifyrc create mode 100644 .jshintrc create mode 100644 .nvmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .profile create mode 100644 .travis.yml create mode 100644 .vscode/settings.json create mode 100644 .vscode/vue-file.code-snippets create mode 100644 Aptfile create mode 100644 Procfile create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml create mode 100755 docker/start-dev-db.sh create mode 100644 gulpfile.js create mode 100644 jsconfig.json create mode 100644 nuxt.config.js create mode 100644 package.json create mode 100644 packages/documentation/.vuepress/config.js create mode 100644 packages/documentation/badsender-architecture.svg create mode 100644 packages/documentation/development.md create mode 100644 packages/documentation/heroku-configuration.md create mode 100644 packages/documentation/index.md create mode 100644 packages/documentation/mosaico.md create mode 100644 packages/editor/CONTRIBUTING.md create mode 100644 packages/editor/LICENSE create mode 100644 packages/editor/NOTICE.txt create mode 100644 packages/editor/README.md create mode 100644 packages/editor/appveyor.yml create mode 100644 packages/editor/backend/README.txt create mode 100644 packages/editor/backend/main.js create mode 100644 packages/editor/build/templates.js create mode 100644 packages/editor/package.json.NOTES create mode 100644 packages/editor/server-config.js create mode 100644 packages/editor/spec/converter-spec.js create mode 100644 packages/editor/spec/data/template-versafix-1.blocks.json create mode 100644 packages/editor/spec/data/template-versafix-1.def.json create mode 100644 packages/editor/spec/data/template-versafix-1.html create mode 100644 packages/editor/spec/data/template-versafix-1.model.json create mode 100644 packages/editor/spec/data/template-versafix-1.save1.json create mode 100644 packages/editor/spec/declarations-spec.js create mode 100644 packages/editor/spec/mensch-spec.js create mode 100644 packages/editor/spec/model-spec.js create mode 100644 packages/editor/spec/stylesheet-spec.js create mode 100644 packages/editor/spec/wrapper-spec.js create mode 100644 packages/editor/src/css/app_standalone.less create mode 100644 packages/editor/src/css/app_standalone_material.less create mode 100644 packages/editor/src/css/badesender-image-gallery.less create mode 100644 packages/editor/src/css/badsender-colorpicker.less create mode 100644 packages/editor/src/css/badsender-editor.less create mode 100644 packages/editor/src/css/badsender-image-cropper.less create mode 100644 packages/editor/src/css/badsender-main-toolbox.less create mode 100644 packages/editor/src/css/badsender-mobile-preview.less create mode 100644 packages/editor/src/css/badsender-topbar.less create mode 100644 packages/editor/src/css/contact-popup.less create mode 100644 packages/editor/src/css/safarihack.css create mode 100644 packages/editor/src/css/style_elements.less create mode 100644 packages/editor/src/css/style_elements_jquery.less create mode 100644 packages/editor/src/css/style_elements_mixins.less create mode 100644 packages/editor/src/css/style_elements_moxie.less create mode 100644 packages/editor/src/css/style_mosaico.less create mode 100644 packages/editor/src/css/style_mosaico_content.less create mode 100644 packages/editor/src/css/style_mosaico_tools.less create mode 100644 packages/editor/src/css/style_mosaico_top-bar.less create mode 100644 packages/editor/src/css/style_reset.less create mode 100644 packages/editor/src/css/style_variables.less create mode 100644 packages/editor/src/html/README.md create mode 100644 packages/editor/src/html/editor.html create mode 100644 packages/editor/src/html/index.html create mode 100644 packages/editor/src/js/app.js create mode 100644 packages/editor/src/js/badsender-events-hub.js create mode 100644 packages/editor/src/js/badsender-helpers.js create mode 100644 packages/editor/src/js/bindings/badsender-colorpicker.js create mode 100644 packages/editor/src/js/bindings/badsender-fileupload-extension.js create mode 100644 packages/editor/src/js/bindings/bind-iframe.js create mode 100644 packages/editor/src/js/bindings/blocks.js create mode 100644 packages/editor/src/js/bindings/choose-template.js create mode 100644 packages/editor/src/js/bindings/colorpicker.js create mode 100644 packages/editor/src/js/bindings/csstext.js create mode 100644 packages/editor/src/js/bindings/eventable.js create mode 100644 packages/editor/src/js/bindings/extdroppable.js create mode 100644 packages/editor/src/js/bindings/extender-pagination.js create mode 100644 packages/editor/src/js/bindings/extsortables.js create mode 100644 packages/editor/src/js/bindings/fileupload.js create mode 100644 packages/editor/src/js/bindings/if-subs.js create mode 100644 packages/editor/src/js/bindings/jqueryui-spinner.js create mode 100644 packages/editor/src/js/bindings/jqueryui-tabs.js create mode 100644 packages/editor/src/js/bindings/preloader.js create mode 100644 packages/editor/src/js/bindings/script-template.js create mode 100644 packages/editor/src/js/bindings/scrollfix.js create mode 100644 packages/editor/src/js/bindings/scrollintoview.js create mode 100644 packages/editor/src/js/bindings/string-template.js create mode 100644 packages/editor/src/js/bindings/tooltips.js create mode 100644 packages/editor/src/js/bindings/unused.js create mode 100644 packages/editor/src/js/bindings/validated-value.js create mode 100644 packages/editor/src/js/bindings/virtuals.js create mode 100644 packages/editor/src/js/bindings/wysiwygs.js create mode 100644 packages/editor/src/js/converter/checkmodel.js create mode 100644 packages/editor/src/js/converter/declarations.js create mode 100644 packages/editor/src/js/converter/domutils.js create mode 100644 packages/editor/src/js/converter/editor.js create mode 100644 packages/editor/src/js/converter/main.js create mode 100644 packages/editor/src/js/converter/model.js create mode 100644 packages/editor/src/js/converter/parser.js create mode 100644 packages/editor/src/js/converter/stylesheet.js create mode 100644 packages/editor/src/js/converter/utils.js create mode 100644 packages/editor/src/js/converter/wrapper.js create mode 100644 packages/editor/src/js/ext/badsender-edit-title.js create mode 100644 packages/editor/src/js/ext/badsender-extensions.js create mode 100644 packages/editor/src/js/ext/badsender-gallery.js create mode 100644 packages/editor/src/js/ext/badsender-remove-gallery-image.js create mode 100644 packages/editor/src/js/ext/badsender-screen-preview.js create mode 100644 packages/editor/src/js/ext/badsender-select-item.js create mode 100644 packages/editor/src/js/ext/badsender-server-storage.js create mode 100644 packages/editor/src/js/ext/badsender-text-editor.js create mode 100644 packages/editor/src/js/ext/badsender-widget-bgimage.js create mode 100644 packages/editor/src/js/ext/color.js create mode 100644 packages/editor/src/js/ext/inliner.js create mode 100644 packages/editor/src/js/ext/localstorage.js create mode 100644 packages/editor/src/js/ext/util.js create mode 100644 packages/editor/src/js/ko-bindings.js create mode 100644 packages/editor/src/js/template-loader.js create mode 100644 packages/editor/src/js/timed-call.js create mode 100644 packages/editor/src/js/undomanager/undomain.js create mode 100644 packages/editor/src/js/undomanager/undomanager.js create mode 100644 packages/editor/src/js/undomanager/undoserializer.js create mode 100644 packages/editor/src/js/viewmodel.js create mode 100644 packages/editor/src/tmpl-badsender/dialog-select-image.tmpl.html create mode 100644 packages/editor/src/tmpl-badsender/download-buttons.html create mode 100644 packages/editor/src/tmpl-badsender/edit-name.tmpl.html create mode 100644 packages/editor/src/tmpl-badsender/gallery-images.tmpl.html create mode 100644 packages/editor/src/tmpl-badsender/gallery-upload.tmpl.html create mode 100644 packages/editor/src/tmpl-badsender/toolbox.tmpl.html create mode 100644 packages/editor/src/tmpl/array.tmpl.html create mode 100644 packages/editor/src/tmpl/block-show.tmpl.html create mode 100644 packages/editor/src/tmpl/block-wysiwyg.tmpl.html create mode 100644 packages/editor/src/tmpl/blocks-show.tmpl.html create mode 100644 packages/editor/src/tmpl/blocks-wysiwyg.tmpl.html create mode 100644 packages/editor/src/tmpl/customstyle.tmpl.html create mode 100644 packages/editor/src/tmpl/empty.tmpl.html create mode 100644 packages/editor/src/tmpl/error.tmpl.html create mode 100644 packages/editor/src/tmpl/gallery-images.tmpl.html create mode 100644 packages/editor/src/tmpl/img-wysiwyg.tmpl.html create mode 100644 packages/editor/src/tmpl/main.tmpl.html create mode 100644 packages/editor/src/tmpl/toolbox.tmpl.html create mode 100644 packages/editor/templates/gif-no-border.gif create mode 100644 packages/editor/templates/gif-with-border.gif create mode 100644 packages/editor/templates/sub-themes/edres/CustomBlock.png create mode 100644 packages/editor/templates/sub-themes/edres/WitnessBlock.png create mode 100644 packages/editor/templates/sub-themes/edres/_full.png create mode 100644 packages/editor/templates/sub-themes/edres/bgimageBlock.png create mode 100644 packages/editor/templates/sub-themes/edres/coverImagesBlock.png create mode 100644 packages/editor/templates/sub-themes/edres/twoColumnsBlock.png create mode 100644 packages/editor/templates/sub-themes/template-sub-themes.html create mode 100644 packages/editor/templates/tedc15/README.md create mode 100644 packages/editor/templates/tedc15/edres/_full.png create mode 100644 packages/editor/templates/tedc15/edres/footerBlock.png create mode 100644 packages/editor/templates/tedc15/edres/headerBlock.png create mode 100644 packages/editor/templates/tedc15/edres/heroBlock.png create mode 100644 packages/editor/templates/tedc15/edres/socialBlock.png create mode 100644 packages/editor/templates/tedc15/edres/threetwoBlock.png create mode 100644 packages/editor/templates/tedc15/edres/twoColumnBlock.png create mode 100644 packages/editor/templates/tedc15/template-tedc15.html create mode 100644 packages/editor/templates/tutorial-badsender/edres/HeaderAndText.png create mode 100644 packages/editor/templates/tutorial-badsender/edres/_full.png create mode 100644 packages/editor/templates/tutorial-badsender/edres/buttonBlock.png create mode 100644 packages/editor/templates/tutorial-badsender/edres/fixedlist.png create mode 100644 packages/editor/templates/tutorial-badsender/template-tutorial.html create mode 100644 packages/editor/templates/tutorial/edres/HeaderAndText.png create mode 100644 packages/editor/templates/tutorial/edres/_full.png create mode 100644 packages/editor/templates/tutorial/edres/fixedlist.png create mode 100644 packages/editor/templates/tutorial/mosaico-tutorial.md create mode 100644 packages/editor/templates/tutorial/mosaico-tutorial.pdf create mode 100644 packages/editor/templates/tutorial/screenshot_384.jpg create mode 100644 packages/editor/templates/tutorial/screenshot_385.jpg create mode 100644 packages/editor/templates/tutorial/screenshot_386.jpg create mode 100644 packages/editor/templates/tutorial/screenshot_387.jpg create mode 100644 packages/editor/templates/tutorial/screenshot_407.jpg create mode 100644 packages/editor/templates/tutorial/screenshot_408.jpg create mode 100644 packages/editor/templates/tutorial/template-tutorial.html create mode 100644 packages/editor/templates/versafix-1/edres/_full.png create mode 100644 packages/editor/templates/versafix-1/edres/bigSocialBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/buttonBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/doubleArticleBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/doubleImageBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/hrBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/imageBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/logoBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/shareBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/sideArticleBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/singleArticleBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/socialBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/spacerBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/textBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/titleBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/tripleArticleBlock.png create mode 100644 packages/editor/templates/versafix-1/edres/tripleImageBlock.png create mode 100644 packages/editor/templates/versafix-1/img/icons/README.md create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fb-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/fl-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/gg-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/in-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/inst-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/pi-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/tw-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/vi-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/web-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-black-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-bw-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-colors-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-coloured-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-rdbl-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-rdcol-96.png create mode 100644 packages/editor/templates/versafix-1/img/icons/you-white-96.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/facebook_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/facebook_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/flickr_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/flickr_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/google+_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/google+_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/instagram_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/instagram_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/linkedin_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/linkedin_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/twitter_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/twitter_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/vimeo_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/vimeo_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/web_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/web_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/youtube_bw_ok.png create mode 100644 packages/editor/templates/versafix-1/img/social_def/youtube_ok.png create mode 100644 packages/editor/templates/versafix-1/img/sponsor.gif create mode 100644 packages/editor/templates/versafix-1/template-versafix-1.html create mode 100644 packages/server/.prettierrc create mode 100644 packages/server/apidoc.json create mode 100644 packages/server/controllers/groups.js create mode 100644 packages/server/controllers/images.js create mode 100644 packages/server/controllers/mailings/download-zip.js create mode 100644 packages/server/controllers/mailings/index.js create mode 100644 packages/server/controllers/mailings/mosaico-editor.js create mode 100644 packages/server/controllers/mailings/process-mosaico-html-render.js create mode 100644 packages/server/controllers/mailings/send-test-mail.js create mode 100644 packages/server/controllers/templates/generate-preview.js create mode 100644 packages/server/controllers/templates/get-template-image-prefix.js create mode 100644 packages/server/controllers/templates/index.js create mode 100644 packages/server/controllers/users.js create mode 100644 packages/server/helpers/brand-colors.js create mode 100644 packages/server/helpers/clean-tag-name.js create mode 100644 packages/server/helpers/create-promise.js create mode 100644 packages/server/helpers/event-bus.js create mode 100644 packages/server/helpers/event-names.js create mode 100644 packages/server/helpers/format-filename-for-jquery-fileupload.js create mode 100644 packages/server/helpers/server-sent-events.js create mode 100644 packages/server/helpers/server-simple-i18n.js create mode 100644 packages/server/helpers/slug-filename.js create mode 100644 packages/server/html-templates/maintenance-pages/_maintenance-layout.pug create mode 100644 packages/server/html-templates/maintenance-pages/_maintenance-logo.pug create mode 100644 packages/server/html-templates/maintenance-pages/error.pug create mode 100644 packages/server/html-templates/maintenance-pages/maintenance.pug create mode 100644 packages/server/html-templates/mosaico-editor.pug create mode 100644 packages/server/index.js create mode 100644 packages/server/md5public.json create mode 100644 packages/server/models/names.js create mode 100644 packages/server/models/reset-password.html create mode 100644 packages/server/models/schema-cache-image.js create mode 100644 packages/server/models/schema-gallery.js create mode 100644 packages/server/models/schema-group.js create mode 100644 packages/server/models/schema-mailing.js create mode 100644 packages/server/models/schema-oauth-clients.js create mode 100644 packages/server/models/schema-oauth-codes.js create mode 100644 packages/server/models/schema-oauth-tokens.js create mode 100644 packages/server/models/schema-template.js create mode 100644 packages/server/models/schema-user.js create mode 100644 packages/server/models/utils.js create mode 100644 packages/server/node.config.js create mode 100644 packages/server/nodemon.json create mode 100644 packages/server/routes-api.js create mode 100755 packages/server/routes-oauth2.js create mode 100644 packages/server/services/authentication.js create mode 100644 packages/server/services/file-manager/index.js create mode 100644 packages/server/services/file-manager/storage-local.js create mode 100644 packages/server/services/file-manager/storage-s3.js create mode 100644 packages/server/services/ftp-client.js create mode 100644 packages/server/services/initialization.js create mode 100644 packages/server/services/logger.js create mode 100644 packages/server/services/mail.js create mode 100644 packages/server/services/models.js create mode 100644 packages/server/workers.js create mode 100644 packages/ui/.nuxt/App.js create mode 100644 packages/ui/.nuxt/axios.js create mode 100644 packages/ui/.nuxt/client.js create mode 100644 packages/ui/.nuxt/components/nuxt-child.js create mode 100644 packages/ui/.nuxt/components/nuxt-error.vue create mode 100644 packages/ui/.nuxt/components/nuxt-link.client.js create mode 100644 packages/ui/.nuxt/components/nuxt-link.server.js create mode 100644 packages/ui/.nuxt/components/nuxt-loading.vue create mode 100644 packages/ui/.nuxt/components/nuxt.js create mode 100644 packages/ui/.nuxt/empty.js create mode 100644 packages/ui/.nuxt/index.js create mode 100644 packages/ui/.nuxt/loading.html create mode 100644 packages/ui/.nuxt/middleware.js create mode 100644 packages/ui/.nuxt/router.js create mode 100644 packages/ui/.nuxt/router.scrollBehavior.js create mode 100644 packages/ui/.nuxt/server.js create mode 100644 packages/ui/.nuxt/store.js create mode 100644 packages/ui/.nuxt/utils.js create mode 100644 packages/ui/.nuxt/views/app.template.html create mode 100644 packages/ui/.nuxt/views/error.html create mode 100644 packages/ui/.nuxt/vuetify/options.js create mode 100644 packages/ui/.nuxt/vuetify/plugin.js create mode 100644 packages/ui/assets/global-styles/index.scss create mode 100644 packages/ui/components/group/form.vue create mode 100644 packages/ui/components/group/mailings-tab.vue create mode 100644 packages/ui/components/group/menu.vue create mode 100644 packages/ui/components/group/templates-tab.vue create mode 100644 packages/ui/components/group/users-tab.vue create mode 100644 packages/ui/components/layout-left-menu.vue create mode 100644 packages/ui/components/mailings/admin-table.vue create mode 100644 packages/ui/components/mailings/filters.vue create mode 100644 packages/ui/components/mailings/modal-duplicate.vue create mode 100644 packages/ui/components/mailings/modal-rename.vue create mode 100644 packages/ui/components/mailings/modal-transfer.vue create mode 100644 packages/ui/components/mailings/selection-actions.vue create mode 100644 packages/ui/components/mailings/table.vue create mode 100644 packages/ui/components/mailings/tags-menu.vue create mode 100644 packages/ui/components/modal-confirm.vue create mode 100644 packages/ui/components/snackbar.vue create mode 100644 packages/ui/components/template/card.vue create mode 100644 packages/ui/components/template/cover-image.vue create mode 100644 packages/ui/components/template/edit-form.vue create mode 100644 packages/ui/components/template/html-preview.vue create mode 100644 packages/ui/components/template/images-list.vue create mode 100644 packages/ui/components/template/menu.vue create mode 100644 packages/ui/components/templates/create-form.vue create mode 100644 packages/ui/components/templates/table.vue create mode 100644 packages/ui/components/user/actions.vue create mode 100644 packages/ui/components/user/menu.vue create mode 100644 packages/ui/components/users/form.vue create mode 100644 packages/ui/components/users/table-actions-activation.vue create mode 100644 packages/ui/components/users/table-actions-mail.vue create mode 100644 packages/ui/components/users/table.vue create mode 100644 packages/ui/helpers/api-routes.js create mode 100644 packages/ui/helpers/locales/en.js create mode 100644 packages/ui/helpers/locales/fr.js create mode 100644 packages/ui/helpers/locales/index.js create mode 100644 packages/ui/helpers/mailings.js create mode 100644 packages/ui/helpers/mixin-create-mailing.js create mode 100644 packages/ui/helpers/mixin-page-title.js create mode 100644 packages/ui/helpers/pages-acls.js create mode 100644 packages/ui/helpers/server-sent-events.js create mode 100644 packages/ui/helpers/user-status.js create mode 100644 packages/ui/layouts/centered.vue create mode 100644 packages/ui/layouts/default.vue create mode 100644 packages/ui/layouts/error.vue create mode 100644 packages/ui/middleware/authentication-check.js create mode 100644 packages/ui/plugins/badsender-global-components.js create mode 100644 packages/ui/plugins/detect-browser-locale.js create mode 100644 packages/ui/plugins/vue-filters.js create mode 100644 packages/ui/plugins/vue-i18n.js create mode 100644 packages/ui/routes/404.vue create mode 100644 packages/ui/routes/account/_email/password/_token.vue create mode 100644 packages/ui/routes/account/admin.vue create mode 100644 packages/ui/routes/account/login/admin.vue create mode 100644 packages/ui/routes/account/login/index.vue create mode 100644 packages/ui/routes/account/reset-password.vue create mode 100644 packages/ui/routes/groups/_groupId/index.vue create mode 100644 packages/ui/routes/groups/_groupId/new-template.vue create mode 100644 packages/ui/routes/groups/_groupId/new-user.vue create mode 100644 packages/ui/routes/groups/index.vue create mode 100644 packages/ui/routes/groups/new.vue create mode 100644 packages/ui/routes/index.vue create mode 100644 packages/ui/routes/mailings/index.vue create mode 100644 packages/ui/routes/mailings/new.vue create mode 100644 packages/ui/routes/templates/_templateId.vue create mode 100644 packages/ui/routes/templates/index.vue create mode 100644 packages/ui/routes/users/_userId.vue create mode 100644 packages/ui/routes/users/index.vue create mode 100644 packages/ui/static/favicon.png create mode 100644 packages/ui/store/index.js create mode 100644 packages/ui/store/page.js create mode 100644 packages/ui/store/user.js create mode 100644 public/fa/fonts/FontAwesome.otf create mode 100644 public/fa/fonts/fontawesome-webfont.eot create mode 100644 public/fa/fonts/fontawesome-webfont.svg create mode 100644 public/fa/fonts/fontawesome-webfont.ttf create mode 100644 public/fa/fonts/fontawesome-webfont.woff create mode 100644 public/fa/fonts/fontawesome-webfont.woff2 create mode 100644 public/favicon.png create mode 100644 public/lang/LICENSE create mode 100644 public/lang/README.md create mode 100644 public/lang/badsender-en.js create mode 100644 public/lang/badsender-fr.js create mode 100644 public/lang/mosaico-de.json create mode 100644 public/lang/mosaico-en.json create mode 100644 public/lang/mosaico-es.json create mode 100644 public/lang/mosaico-fr.json create mode 100644 public/lang/mosaico-it.json create mode 100644 public/lang/mosaico-nl.json create mode 100644 public/lang/mosaico-pt_BR.json create mode 100644 public/lang/mosaico-ru.json create mode 100644 public/lang/mosaico-sr_RS.json create mode 100644 public/lang/mosaico-sv.json create mode 100644 public/lang/mosaico-tr.json create mode 100644 public/logo-badsender-white.svg create mode 100644 public/media/editor-icon.png create mode 100644 public/media/logo_badsender_154x118.png create mode 100755 public/media/logo_blanc.png create mode 100644 public/media/logo_lepatron.png create mode 100644 public/skins/gray-flat/Variables.less create mode 100644 public/skins/gray-flat/content.inline.min.css create mode 100644 public/skins/gray-flat/content.min.css create mode 100644 public/skins/gray-flat/fonts/readme.md create mode 100644 public/skins/gray-flat/fonts/tinymce-small.eot create mode 100644 public/skins/gray-flat/fonts/tinymce-small.json create mode 100644 public/skins/gray-flat/fonts/tinymce-small.svg create mode 100644 public/skins/gray-flat/fonts/tinymce-small.ttf create mode 100644 public/skins/gray-flat/fonts/tinymce-small.woff create mode 100644 public/skins/gray-flat/fonts/tinymce.eot create mode 100644 public/skins/gray-flat/fonts/tinymce.json create mode 100644 public/skins/gray-flat/fonts/tinymce.svg create mode 100644 public/skins/gray-flat/fonts/tinymce.ttf create mode 100644 public/skins/gray-flat/fonts/tinymce.woff create mode 100644 public/skins/gray-flat/img/anchor.gif create mode 100644 public/skins/gray-flat/img/loader.gif create mode 100644 public/skins/gray-flat/img/object.gif create mode 100644 public/skins/gray-flat/img/trans.gif create mode 100644 public/skins/gray-flat/skin.ie7.min.css create mode 100644 public/skins/gray-flat/skin.json create mode 100644 public/skins/gray-flat/skin.min.css create mode 100755 public/tinymce-langs/fr_FR.js create mode 100644 yarn.lock 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 speciï¬c endpointspassed in Mosaico´sinitialisation conï¬gurationPersist/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 0000000000000000000000000000000000000000..9a9b406110983a98695a3b0c97a763d4cef64f90 GIT binary patch literal 732 zcmV<20wev2P)$z7(gnqC3$@jj%k}wQ`bt}Cr-5>bITr(d33=5&Jg=|?yiKx;Y2{aCbQrn zS8v>b$MXa8kB20)U&8jPouotA@+vjsQde5D>$7;B>m+ax?Jz{ow&{ zkO{{pCef8I)J3K3O8?=kdaf0#iA^BOkhz`E-KXx znEWvFe*jjl%|}979(x?h9GF~DgHKi)eE=SWK$MiLx$3s}pcaYi3I*3=;y0tI?HasZ zAANwFy!{w_GRo}*R&FNWWIa7UMP?11o7I_?Q{XEHBBJ_7>@_# z6}5u+`i4t%0rI6vZmEN5dd7+kzxqAzuAV-+0Lv1$!r1$Od)Oc1z7g6kc4KKmHXj>D zHtf)|7xdFGEprz-t{XA&ZVJ}VHoO_Ppt;@fSAmksRb<1?(glbSW$`JNnjztqJSDw| zEj)s_gw#AXE$LT6ae;#MoTWHEc{@4`Mz&M_J3yUIkL7E&@jk3Ni&tZ>Ay;S+yIL%m zIChno)PY0jyJv=*VdylY_m*jlJ|E*v+Ax=fc9IE?2ZnLQa2t*1J7MU)%bnY7U-&eg z7eGq7gljOQx6?LPls1axa|49Ie&X7N1b9oF6bwKbrr)w+;^?S|e(NW#hq9L_d-tsX O0000 ({ + 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 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/public/fa/fonts/fontawesome-webfont.eot b/public/fa/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

    5q!RY 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 + + + +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 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 zcmd4434D~*)jxjkv&@#+*JQHIB(r2Agk&ZO5W=u;0Z~v85Ce*$fTDsRbs2>!AXP+E zv})s8XszXKwXa&S)7IKescosX*7l99R$G?_w7v?NC%^Bx&rC7|(E7f=|L^lpa-Zk9 z`?>d?d+s^so_oVMW6Z|VOlEVZPMtq{)pOIHX3~v25n48F@|3AkA5-983xDXec_W** zHg8HX#uvihecqa7Yb`$*a~)&Wy^KjmE?joS+JOO-B;B|Y@umw`Uvs>da>d0W;5qQ!4Qz zJxL+bkEIe8*8}j>Q>BETG1+ht-^o+}utRA<*p2#Ix&jHe=hB??wf3sZuV5(_`d1DH zgI+ncCI1s*Tuw6@6DFOB@-mE3%l-{_4z<*f9!g8!dcoz@f1eyoO9;V5yN|*Pk0}XYPFk z!g(%@Qka**;2iW8;b{R|Dg0FbU_E9^hd3H%a#EV5;HVvgVS_k;c*=`1YN*`2lhZm3 zqOTF2Pfz8N%lA<(eJUSDWevumUJ;MocT>zZ5W08%2JkP2szU{CP(((>LmzOmB>ZOpelu zIw>A5mu@gGU}>QA1RKFi-$*aQL_KL1GNuOxs0@)VEz%g?77_AY_{e55-&2X`IC z!*9krPH>;hA+4QUe(ZB_4Z@L!DgUN;`X-m}3;G6(Mf9flyest6ciunvokm)?oZmzF z@?{e2C{v;^ys6AQy_IN=B99>#C*fPn3ra`%a_!FN6aIXi^rn1ymrrZ@gw3bA$$zqb zqOxiHDSsYDDkGmZpD$nT@HfSi%fmt6l*S0Iupll)-&7{*yFioy4w3x%GVEpx@jWf@QO?itTs?#7)d3a-Ug&FLt_)FMnmOp5gGJy@z7B*(^RVW^e1dkQ zkMHw*dK%Ayu_({yrG6RifN!GjP=|nt${60CMrjDAK)0HZCYpnJB&8QF&0_TaoF9-S zu?&_mPAU0&@X=Qpc>I^~UdvKIk0usk``F{`3HAbeHC$CyQPtgN@2lwR?3>fKwC|F> zYx{2LyT9-8zVGxM?E7=y2YuRM`{9bijfXoA&pEvG@Fj<@J$%dI`wu^U__@Oe5C8e_ z2ZyyI_9GQXI*-gbvh>I$N3K0`%aQw!JbvW4BL|QC`N#+Vf_#9QLu~J`8d;ySFWi^v zo7>mjx3(|cx3jOOZ+~B=@8!PUzP`iku=8-}aMR(`;kk#q53fC(KD_gA&*A-tGlyS3 z+m)8@1~El#u3as^j;LR~)}{9CG~D_9MNw(aQga zKO~TeK}MY%7{tgG{veXj;r|am2GwFztR{2O|5v~?px`g+cB0=PQ}aFOx^-}vA95F5 zA7=4<%*Y5_FJ|j%P>qdnh_@iTs0Qv3Shg)-OV0=S+zU1vekc4cfZ>81?nWLD;PJf5 zm^TgA&zNr~$ZdkLfD=nH@)f_xSjk$*;M3uDgT;zqnj*X$`6@snD%LSpiMm2N;QAN~ z_kcBPVyrp@Qi?Q@UdCdRu{^&CvWYrt=QCD^e09&FD^N$nM_`>%e`5*`?~&bbh->n~ zJ(9*nTC4`EGNEOm%t%U8(?hP3%1b;hjQAV0Nc?8hxeG3 zaPKiTHp5uQTE@n~b#}l3uJMQ)kGfOHpF%kkn&43O#D#F5Fg6KwPr4VR9c4{M`YDK; z3jZ{uoAx?m(^2k>9gNLvXKdDEjCCQ+Y~-2K00%hd9AfOW{fx~8OmhL>=?SSyfsZaC!Gt-z(=`WU+-&Dfn0#_n3e*q()q-CYLpelpxsjC~b#-P^<1eJJmK#NGc1 zV_&XPb2-)pD^|e^5@<6_cHeE7RC;w7<*1(><1_>^E_ievcm0P?8kubdDQj%vyA=3 z3HKCZFYIRQXH9UujQt#S{T$`}0_FTN4TrE7KVs}9q&bK>55B|Lul6(cGRpdO1Kd`| zeq(~e`?pp&g#Y$EXw}*o`yJwccQ0eFbi*Ov?^iSS>U6j#82bal{s6dMn-2#V{#Xo$ zI$lq~{fx0cA?=^g&OdKq?7tBAUym`?3z*+P_+QpC_SX>Hn~c4gX6!Ab|67K!w~_Ac z_ZWKz;eUUXv46n53-{h3#@>IKu@7En?4O7`qA>R1M~r=hy#Got_OTNVaQ-*)f3gq` zWqlf9>?rCwhC2Ie;GSYEYlZ8Edx9~|1c$Hz6P6|~v_elnBK`=R&nMuzUuN8VKI0ZA z+#be@iW#>ma1S$XYhc_CQta5uxC`H|9>(1-GVW=IdlO`OC*!^vIHdJ2gzINKkYT)d z3*#jl84q5~c0(mMGIK+jJFO2k6NLvlqs#h}}L0klN#8)z2^A6*6 zU5q!Nj7Gdit%LiB@#bE}TbkhZGoIMXcoN~QNYfU9dezGK=;@4)al-X6K6WSL9b4dD zWqdqfOo0cRfI27sjPXfulka7G3er!7o3@tm>3GioJTpUZZ!$jX5aV4vjL$A+d`^n- zxp1e$e?~9k^CmMsKg9T%fbFbqIHX;GIu<72kYZMzEPZ`#55myqXbyss&PdzkU-kng%ZaGx-qUd{ORDE9`W-<*I${1)W@@_xo| z#P?RjZA0Ge?Tp_{4)ER51-F;+Tjw*r6ZPHZW&C#J-;MVj3S2+qccSdOkoNAY8NUbR z-HUYhnc!Y!{C@9;sxqIIma{CrC z{*4;OzZrsik@3eKWBglt8Gju9$G0;6ZPfp5`1hya;Q!vUjQ{6qsNQ=S2c6;1ApV)% zjDJ4@_b}tnn&43HfiA|MBZsgbpsdVv#(xMHfA~D(KUU!0Wc>La#(y%O@fT{~-ede{ zR>pr0_Y2hXOT@kS3F8L=^RH0;%c~jx_4$nd=5@w@I~NXdzuUt2E2!)DYvKACfAu5A zUwe%4KcdXn;r@iOKr8s4QQm)bG5$uH@xLJ7o5hU3g}A?UF#a~+dV4S9??m7ZG5+_} zjQ<05{sZ6d0><|ea8JQ~#Q6It>z^jLhZ*lv;9g|>Fxqwm@O+4TAHKu*zfkVS4R9I8 z{~NIVcQ50g0KQKVb`<_&>lp7xn*Q?{2i@S=9gJ(JgXqP;%S_@4CSmVFk{g($tYngU z2omdDCYcd#!MC-SNwz*FIf|L&M40PMCV4uTQXRtTUT0GMZYDM0-H5Up z-(yk}+^8)~YEHrRGpXe%CMDJ}DT(-2W~^` zjDf-D4fq2U%2=tnQ*LW*>*Q@NeQ=U48Xk01IuzADy1ym0rit^WHK~^SwU449k4??k zJX|$cO-EBU&+R{a*)XQ6t~;?kuP)y%}DA(=%g4sNM$ z8a1k^e#^m%NS4_=9;HTdn_VW0>ap!zx91UcR50pxM}wo(NA}d;)_n~5mQGZt41J8L zZE5Hkn1U{CRFZ(Oxk3tb${0}UQ~92RJG;|T-PJKt>+QV$(z%hy+)Jz~xmNJS#48TFsM{-?LHd-bxvg|X{pRq&u74~nC4i>i16LEAiprfpGA zYjeP(qECX_9cOW$*W=U1YvVDXKItrNcS$?{_zh2o=MDaGyL^>DsNJtwjW%Do^}YA3 z3HS=f@249Yh{jnme5ZRV>tcdeh+=o(;eXg_-64c@tJ&As=oIrFZ& z*Gx&Lr>wdAF8POg_#5blBAP!&nm-O!$wspA>@;>RyOdqWZe?F%--gC9nTXZ%DnmK< z`p0sh@aOosD-jbIoje0ec`&&fWsK?xPdf*L)Qp(MwKKIOtB+EDn(3w-9Ns9O~i z7MwnG8-?RZlv&XIJZUK*;)r!1@Bh4bnRO*JmgwqANa8v4EvHWvBQYYGT?tN4>BRz1 zf1&5N7@@!g89ym5LO{@=9>;Y8=^ExA9{+#aKfFGPwby8wn)db@o}%Z_x0EjQWsmb6 zA9uX(vr-n8$U~x9dhk~VKeI!h^3Z2NXu;>n6BHB%6e2u2VJ!ZykHWv-t19}tU-Yz$ zHXl2#_m7V&O!q(RtK+(Yads868*Wm*!~EzJtW!oq)kw}`iSZl@lNpanZn&u|+px84 zZrN7t&ayK4;4x_@`Q;;XMO4{VelhvW%CtX7w;>J6y=346)vfGe)zJBQ9o$eAhcOPy zjwRa6$CvN-8qHjFi;}h1wAb{Kcnn{;+ITEi`fCUk^_(hJ&q1Z=yo*jRs<94E#yX67 zRj)s)V&gd0VVZGcLALQ|_Lp<4{XEBIF-*yma#;%V*m^xSuqeG?H-7=M0Cq%%W9`2Oe>Ov)OMv8yKrI^mZ$ql{A!!3mw_27Y zE=V#cA@HopguAWPAMhKDb__-Z_(TN7;*A`XxrMefxoz4{Seu)$%$=sPf{vT@Pf_T`RlrC#CPDl$#FnvU|VBC$0(E>+3EG z&3xsml}L_UE3bNGX6T~2dV6S%_M9{`E9kgHPa+9mas{tj$S<&{z?nRzH2b4~4m^Wc zVF+o4`w9BO_!IohZO_=<;=$8j?7KUk(S5llK6wfy9m$GsiN5*e{q(ZS6vU4l6&{s5 zXrJJ@giK>(m%yKhRT;egW||O~pGJ&`7b8-QIchNCms)}88aL8Jh{cIp1uu`FMo!ZP z1fne;+5#%k3SM7Kqe|`%w1JI=6hJJrog4j?5Iq!j=b=0AJS5%ev_9?eR!_H>OLzLM z_U#QLoi=0npY1+gHmde37Kgp)+PKl=nC>pM|EJCAEPBRXQZvb74&LUs*^WCT5Q%L-{O+y zQKgd4Cek)Gjy~OLwb&xJT2>V%wrprI+4aOtWs*;<9pGE>o8u|RvPtYh;P$XlhlqF_ z77X`$AlrH?NJj1CJdEBA8;q*JG-T8nm>hL#38U9ZYO3UTNWdO3rg-pEe5d= zw3Xi@nV)1`P%F?Y4s9yVPgPYT9d#3SLD{*L0U{ z;TtVh?Wb0Lp4MH{o@L6GvhJE=Y2u>{DI_hMtZgl~^3m3#ZUrkn?-5E3A!m!Z>183- zpkovvg1$mQawcNKoQ*tW=gtZqYGqCd)D#K;$p113iB1uE#USvWT}QQ7kM7!al-C^P zmmk!=rY+UJcJLry#vkO%BuM>pb)46x!{DkRYY7wGNK$v=np_sv7nfHZO_=eyqLSK zA6ebf$Bo&P&CR_C*7^|cA>zl^hJ7z0?xu#wFzN=D8 zxm(>@s?z1E;|!Py8HuyHM}_W5*Ff>m5U0Jhy?txDx{jjLGNXs}(CVxgu9Q4tPgE+Hm z*9ll7bz80456xzta(cX+@W!t7xTWR-OgnG_>YM~t&_#5vzC`Mp5aKlXsbO7O0HKAC z2iQF2_|0d6y4$Pu5P-bfZMRzac(Yl{IQgfa0V>u;BJRL(o0$1wD7WOWjKwP)2-6y$ zlPcRhIyDY>{PFLvIr0!VoCe;c_}dp>U-X z`pii$Ju=g+Wy~f|R7yuZZjYAv4AYJT}Ct-OfF$ZUBa> zOiKl0HSvn=+j1=4%5yD}dAq5^vgI~n>UcXZJGkl671v`D74kC?HVsgEVUZNBihyAm zQUE~mz%na<71JU=u_51}DT92@IPPX)0eiDweVeDWmD&fpw12L;-h=5Gq?za0HtmUJ zH@-8qs1E38^OR8g5Q^sI0)J}rOyKu$&o1s=bpx{TURBaQ(!P7i1=oA@B4P>8wu#ek zxZHJqz$1GoJ3_W^(*tZqZsoJlG*66B5j&D6kx@x^m6KxfD?_tCIgCRc?kD~(zmgCm zLGhpE_YBio<-2T9r;^qM0TO{u_N5@cU&P7is8f9-5vh4~t?zMqUEV!d@P{Y)%APE6 zC@k9|i%k6)6t2uJRQQTHt`P5Lgg%h*Fr*Hst8>_$J{ZI{mNBjN$^2t?KP8*6_xXu5xx8ufMp5R?P(R-t`{n6c{!t+*z zh;|Ek#vYp1VLf;GZf>~uUhU}a<>y*ErioacK@F{%7aq0y(Ytu@OPe;mq`jlJD+HtQ zUhr^&Zeh93@tZASEHr)@YqdxFu69(=VFRCysjBoGqZ!U;W1gn5D$myEAmK|$NsF>Z zoV+w>31}eE0iAN9QAY2O+;g%zc>2t#7Dq5vTvb&}E*5lHrkrj!I1b0=@+&c(qJcmok6 zSZAuQ496j<&@a6?K6ox1vRks+RqYD< zT9On_zdVf}IStW^#13*WV8wHQWz$L;0cm)|JDbh|f~*LV8N$;2oL|R99**#AT1smo zob=4dB_WB-D3}~I!ATFHzdW%WacH{qwv5Go2WzQzwRrv)ZajWMp{13T_u;Rz^V-VF z@#62k@#FD#t@v9ye*A%@ODWm-@oM_$_3Cy1BS+(+ujzNF@8a7?`$B^{iX2A-2_nA? zfi2=05XV^;D_2G}Up$eFW|Ofb^zuE)bWHkXR4Jm!Sz0O?)x6QD^kOufR`*v0=|sS?#*ZCvvr^VkV!zhLF3}FHf%+=#@ae1Qq<4~Y1EGYK$Ib1 zg!s~&&u27X&4Ks^(L3%}Npx!_-A)We=0v#yzv03fzxKZ8iV6KIX5U&?>^E?%iIUZ4 z2sD^vRg%kOU!B5@iV{&gBNc9vB)i{Wa@joIa2#4=oAl|-xqj_~$h33%zgk*UWGUV# zf3>{T#2buK?AZH?)h>10N)#VHvOV}%c|wR%HF|pgm8k`*=1l5P8ttZ1Ly@=C5?d9s z)R>B@43V`}=0??4tp?Y}Ox0$SH)yg(!|@V7H^}C-GyAXHFva04omv@`|LCuFRM2`U zxCM>41^p9U3cR>W>`h`{m^VWSL0SNz27{ske7TN1dTpM|P6Hn!^*}+fr>rJ*+GQN{ ziKp9Zda}CgnbNv#9^^&{MChK=E|Wr}tk?tP#Q?iZ%$2k;Eo9~}^tmv?g~PW^C$`N)|awe=5m{Xqd!M=ST?2~(mWjdOsXK#yVMN(qP6`q#tg+rQexf|*BeIU)a z^WuJyPR4WVsATp2E{*y77*kZ9 zEB{*SRHSVGm8ThtES`9!v{E``H)^3d+TG_?{b|eytE1cy^QbPxY3KFTWh&NZi`C?O z;777FMti@+U+IRl7B{=SCc93nKp`>jeW38muw(9T3AqySM#x@9G|p?N;IiNy(KN7? zMz3hIS5SaXrGqD(NIR0ZMnJT%%^~}|cG(Ez!3#)*o{{QjPUIVFOQ%dccgC0*WnAJW zL*1k^HZ5-%bN;%C&2vpW`=;dB5iu4SR48yF$;K8{SY`7mu6c z@q{10W=zwHuav3wid&;5tHCUlUgeVf&>wKuUfEVuUsS%XZ2RPvr>;HI=<(RACmN-M zR8(DJD^lePC9|rUrFgR?>hO#VkFo8}zA@jt{ERalZl$!LP4-GTT`1w}QNUcvuEFRv z`)NyzRG!e-04~~Y1DK>70lGq9rD4J}>V(1*UxcCtBUmyi-Y8Q$NOTQ&VfJIlBRI;7 z5Dr6QNIl|8NTfO>Jf|kZVh7n>hL^)`@3r1BaPIKjxrLrjf8A>RDaI{wYlKG)6-7R~ zsZQ}Kk{T~BDVLo#Zm@cc<&x{X<~boVS5(zfvp1s3RbASf6EKpp>+IFV9s`#Yx#+I& zMz5zL9IUgaqrnG*_=_qm|JBcwfl`bw=c=uU^R>Nm%k4_TeDjy|&K2eKwx!u8 z9&lbdJ?yJ@)>!NgE_vN8+*}$8+Uxk4EBNje>!s2_nOCtE+ie>zl!9&!!I)?QPMD&P zm$5sb#Le|%L<#tZbz%~WWv&yUZH6NLl>OK#CBOp{e~$&fuqQd03DJfLrcWa}IvMu* zy;z7L)WxyINd`m}Fh=l&6EWmHUGLkeP{6Vc;Xq->+AS`1T*b9>SJ#<2Cf!N<)o7Ms z!Gj)CiteiY$f@_OT4C*IODVyil4|R)+8nCf&tw%_BEv!z3RSN|pG(k%hYGrU_Ec^& zNRpzS-nJ*v_QHeHPu}Iub>F_}G1*vdGR~ZSdaG(JEwXM{Df;~AK)j(<_O<)u)`qw* zQduoY)s+$7NdtxaGEAo-cGn7Z5yN#ApXWD1&-5uowpb7bR54QcA7kWG@gybdQQa&cxCKxup2Av3_#{04Z^J#@M&a}P$M<((Zx{A8 z!Ue=%xTpWEzWzKIhsO_xc?e$$ai{S63-$76>gtB?9usV&`qp=Kn*GE5C&Tx`^uyza zw{^ImGi-hkYkP`^0r5vgoSL$EjuxaoKBh2L;dk#~x%`TgefEDi7^(~cmE)UEw*l#i+5f-;!v^P%ZowUbhH*3Av)CifOJX7KS6#d|_83fqJ#8VL=h2KMI zGYTbGm=Q=0lfc{$IDTn;IxIgLZ(Z?)#!mln$0r3A(um zzBIGw6?zmj=H#CkvRoT+C{T=_kfQQ!%8T;loQ5;tH?lZ%M{aG+z75&bhJE`sNSO`$ z`0eget1V7SqB@uA;kQ4UkJ-235xxryG*uzwDPikrWOi1;8WASslh$U4RY{JHgggsL zMaZ|PI2Ise8dMEpuPnW`XYJY^W$n>4PxVOPCO#DnHKfqe+Y7BA6(=QJn}un5MkM7S zkL?&Gvnj|DI!4xt6BV*t)Zv0YV-+(%$}7QcBMZ01jlLEiPk>A3;M^g%K=cNDF6d!7 z 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/public/fa/fonts/fontawesome-webfont.woff2 b/public/fa/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b902c349610d7a1bacb6a93a5f363b2fa3aa46 GIT binary patch literal 1260 zcmV_9K?!N5#4+sJ}9Ns3ci*! zrmfJ_kW@q*9b7wf@PUg(T%2_i{{cY|)JX(aaZqp(i6?ELBKCK=H(!1^=iHlf!Lyjv z47;%(j9lJ|PfsX|OUsJynFhM>AyPHl9FN5!)Ya#`M2qf1Zms%p|EhIOw>4;J79P_~ zD=$1F9No&BF7FEmw2ZnYd@kH;$pM8QT|ZgjSC`Xe_P8|zRw6zr91vF0zc~4ewTxv5 z4+#g2?50*dkNYQWdTwFf^<{Qp6K9$U6lR%Xl3@lIm35d9Vfy5aI{D#pev}Q#)nql< z#$uf`8S?asyD8Omd8WkIWn?8nzfatYFlXxyl%3!{kflIgjqdg=RKzo|QE;v(O&>eM~|I(6!t zx&!rk-QL#V-UeVF#JFZm=f}%D9mF}f5F@B3S+Q-}A<8^G5c4n}SK=_-hO_Zd9Bb0R zp12)lo}P#W(eXu?S($zhH)B1H!^ufjY^<)IQY6Yeoq_YC(*-!CgXzz>1usSb7{;?x zf++L!5L^)*&%?nzmh8lh5%Rjq_ymZq$5H0#sm6DE9`@@O8c$;xzQF;N@j8x5vf`J< zKvN{jJe`HP(eYI{VG>TOT8AgFvIPJJa1CB)f{4yXgz&X4nymiD^>{?M5$!Zwg=iG3 z({ML#!u#018xVKkc--H`W^S3M2em@HjWMLS2Sd0E-%b+XHLSp^LfAWLrf}p<5UT|G zhw(k$#XmxRoPp=?YY%`;xE(L!$UcCFTOmeU3@*S+(eZ=$6vqn5`Uc7t`|VgHg-+8E9jlI$b=C`9IQVW+nW*}p-k16%MYUWxPbkqe31PW$7sT@XoD z{2M{KX-G)6uQ4Y&zd?xFAU?+utj5L&Jc7eh8@(cWgzwjmw zt=Jrc`|uSCoGIkn9H9(+h;4BLO%OG`ujaA{`xa*P34M~#J-@@62zV!sz`acnNmgu* zyX&O&LKI%d(R~86>U2CAzqMGXNfR2_C@yKU_)jdv1GsdG0Gotp*RV3limi=_rUq8# z>5y>F)k0GjYW+@ppnDOjYKIX18fr;ajCC@c&_&BUT`N4v8hQ##g2f?Kbl0W$9m}KRPm-+YR0XG`PS3lmg-&-d&c(VUE2iy#agV&VcUS+5Kd^le4gCiJ W#?6jM>vrq_0000Fake 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 0000000000000000000000000000000000000000..34fe7cfaba70bf8d493725f1320db916ef529a5b GIT binary patch literal 1541 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

    7hMH`&8R0nUhxpjGA7P7+v`th!sigD9}6$ksxv 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 literal 0 HcmV?d00001 diff --git a/public/media/logo_blanc.png b/public/media/logo_blanc.png new file mode 100755 index 0000000000000000000000000000000000000000..190bf0ffea350016a75a2cb28fb2a2c715c53ed3 GIT binary patch literal 3841 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 +// 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 0000000000000000000000000000000000000000..b144ba0bd949de3c0f87abdd78b517067169884f GIT binary patch literal 9492 zcmcgyYj7Lab-s5Oz=CfqL2yNo1o0rSA|ZkhKoF!Pk}Fb@EmM-IM`Za;N@gTQlt?}7 zN^YjzI+ml=>J6ee66+Gi(ljj5V?YXgkiHL~VwhLrW_=jFxj4b&}2FxhUJr zGAxUpyHmmdVx*4QOl8^o5BBGpnpMn%-9VZ?c6w&v`+xksXECS)^||9S=NFKJUw#F- z|M=Xc&)3`&`5x+58SC<#n4Nh-J1%~evFHovA3T8u?G5!8sK0}H_leUNF8)|){yo$` zLjC64{IQw$x_|f(W3dlVzi@iy;sV>v-eW9&FY3`VGpA>rJwN#k)KB0Y?=H-rzW_dQ zbq`TLQ`P^%o4t%FzpKz2zV7DypIM&Q(6|*B2ivPJi?N@ps#p@tQjyR}Yf-(TvOsU6 z)PX)XSLLV<=3!H458#j5Ig6GymU5-S&()>!(h^!2T3D&KG*D^bOaB=4MAfJgF5rok zZ<2%2!tq?wiXI44aaaz#J^Jo#9-4(JR2w1^WD!E!2-{R5`|z) zAL5&1NP0e@52O-uL_*Jp+)*Rk&{a_?Uyt?o$COg6-?1&rc5H6jRx0e+;gp4(Tj7*F zrA(FjW96tEd0mLI&Dj#>5Kg7SOH8o^72dF&5aw)yHygaQfU^vi%*=52%@y9jiK#`n zktjrX7Y|DQh)-Rzs~&u=d3)HICW49`PPI2@e6{MEwYv9mJKl=-DnEFxxjhvw%a<$B z@b>0DuU`A6TI;)9UR1%BLo1CHToN9v5{}0(xF~=PvuJ7=-p>iWPlaT zC=xIE;wUc~MRSyo@uZe83&p$<^01eE&2=Zv+QGCDSPU5Hpndj4U9<1yJ2X4OmKR_6 z41-tD2)K_C@3g-b_LpQ*!>MgzEEo%6fo>;DwQpgOZ`q1f7L>5=OU&jL-9h4RG^(_g zX$S>tMrjR^yYRs)ye!k;*7}^>g+_Hg%QUKUTEhnB@)g#j{)#%yda*Kl0hNqru!F_y zC{LL+ypc!vWC#8opNSY;iDUda>D!JP}WsDeB7Ss6#8pQ-y&+R6;Gj z1cp#QBxL0fbvk~yXH0Z&sLwjW5!w0;-D0fgaD2F-zyI1$BI+3%^F$Lv*ZTV#h8?an zH|ae=e~UlhkLW!uDAaiP%k9ZzJ0+e+L$F70YF4J>n1WIFS*X?tKKW;8ymL zdpC*OMCtXnU-)2icOVe-`U4XYz1ich4g0_8(r!=wyWblO1iG93;ab0^S&vKvm{(#1 zL-vQ0PzKnY$LNTuCd+}DXYOT^g9L$RWs;5dYNBp`=Y!1nS&UMnU@8>6}Ap_xp%?U)iu59#UaZP))J%p zP^7mv@=>JMmiOLB`R1EVp-_{&y=BqN2+AJ zfgWuLa=Th`mP^cs<7i>777iDkZ^}=d4pfK<+FJV{S%+Flo zv|3hf+cgUpw=iLnM_LEGRIWo4Yj#nsiX<{OG>bssHkdfz@RnUFt%L-HEiT@fUKLd+ z=b9nuRTs_$n02U;zOa}r`Rih1Sc_al3AHpTiFigSm;<9qJ`^W-(EuQ^yYz9kao0d3 zGO%l-iJWgc@mu#7pGf%|G=Gz(+^x@u7Vqm#-&c$xPj?=AVcxp1sn;K<;rxyr5XuEG zjunC(z>=eciJ=-E8jNtCrij+=_~man*ZI`-cgF6YW0Q-|9`yW_Pw}ZAc`m*6@kN|N z&Mj=mRrh&bsNscFBX2b_e3ToC#iyL>-?$v_Zk@Y-?49e%AO6U>?p*(==isx8lNUdJ z>yn3dlAeDV&u3w_{yGQ(LLtOW+}F~@i)LzI45WauUA(oW2{4VL+K)YnplxuB4-S~J z0t8;}%mAIxRe7pdrPs(|vvdLG<%6RHVIV}1K2YR?Iis~jBl7CYmjgYmMo-|iSWMla zdcCiyn!+{pvMg~$Q*b>Yz$_^{{}h2dYG=tp26e=&P&aR$a8N zuFes@MoszgW$Jk?_Gk>`y$yIPs9vrXz(}>*`RWeE<;WePYV^tlSzwBKwXiu>XgE`t|(zMu@5iWIWCx>!f zgUEnwInWoEk71{axmG!_@)!vWL?X>y4gJg5)Bnbv+H!eu$BqgY(1Q)Ir>H1zW$R9( zVDc@G`u`S&fAx87DSCAG`kt;Z2L?ElZbcD&|BizkQ5^&sQpn*@8Dz){&BVA~!}S<9 zH7H@YDfn|37o@`_CbK1sET@G~ey4m&o_z~=X~8q*Wuj|2ggM0A1Zx^> zuBh7rD=pWIVa;r4U!83Mf8?g&Ky-2~Q79H-g_s#{RJ2Al)DlsQh?>uhD#cN?FpyEq zjGEwhIcM$3n~w-si?--HynlBznvLsvJR6Pf-ha67(=C!Ek!*kcC1`3}+-2nQv(Sap zOsI>BV6I%iZ-O4u;3jdtD9DJ(_xrWcy5gjnCUuGd=bE$!*(CK0j5>x1HSA*SC+_++6v3e&k`} z;l}jfc-o5d*fe!P~;RpNr9z1-=>=utLNDYGiJr3ZLGF_8_dlf|Xq17r%~ki(mSJ?IVLi0O2T;o#*pI({*_jnGMyr_l?5 zNLa2B>c%)o+9^3gUJAq<0T3iAsjO@%!m(@|E*pUpT!L zOZo~~;1UxowIng20r%3vafF!>3u~qbuSc{`~TrA1c-#JoC)x z^1rZc#Udx(w#(LXD++i8T0542IyldD%z&jxwmjg5a8FHWW}*f<*vNC(*dQZ*a^=R2 zD>P-wmsl=mUE7AF9Jp~~39UD7kk%lY*h|dHrO8*&)c#MJ$}cKJ&#a<}b;5#xDjNWo z1sC|}$VfO0B}}YL255L24K%c92}KM)wj;Ug=~o_o^p&S~C3ieF3}muWV|{J?`%jOK zp5EWz);E?S#IlpdJr8|hxQYqGUwG&qBRO6AFt~N{NOt_m2XeUwo*d5}ncN!uur$qF zADZ~t0FAO0p6Y|xOc_7Gfvp4;q{T|-ys#F!HmfTgyV%MKpwFzFejIj%O@6sh7#b=R zzC3xmM02UmiE@Cr>(TLL*U#GXrA;+`69@bI4^H&eZ2Hn3bzltf{rfX(QGxeBR) zSExAV25h4sHX5-Cp2xfiy+Vjr;20q#yyU{?24VZ6N2j$>>7dDzp$ZXB`8DUSzjmO+ z!JjBoY!!=wHNeqj&Eaq})(3+GHK^3tdQ}xH%XM z^T-xJ8}ehZZ#e7q(7lWd9`FV}z=@Zv9ojZBB1(WDS)C@K-EOWx*BF9Y&+J~+zt+Fj$cB>4W#EMyR+F;oNr>Ib533uC~^?~5HrU~XCW1|AkFm6#Z z2Q7Jua6`V1=SS6i5Mj7{ zNU^GzaF3nK6$-hWeGf{hT+O#jrPu2AJ@w7c31}VFuAcYl>JS>7dVGM?*#55`--_5B z_L-?batrpq1&tZS$0r8An~W|DbrjIv>|Rtp*CnrH}0mK?M^2~4rEF^nmI6% zm>T=Hj+TjNUtje6E9YA}UZE0yzvEzkde2a-%wj`((&HzM@3eG~ZGY9tcC=ij5*V_< z1O6bdj7ud<0t(%yT346YRmZ}owX0m;l)K?<1p3tjCq@EBI z{^26jvSB11AKB0nva9wRiI@UVGWzsTYimgFGbo^0cy!msjk_L2q>F(i$PCUC_=76t zu}sCA#UdDaGU-q!O@QzO8D>Dp2+Cy4nF(pD0R}32nlGrr`8fGle&XoSiJ=D@&-&7d z)J&l;lj`Z~>*1>6e5~;F@TdBkn%?1}y<>adrtSTS)Xs26S64^Zp}x$aF0OE^VKBbB zy*+PWiNN<_WnEiPsj4PKQsrME#%rZID)Yz&T!fwL980n3}T(y;e#e%d!|`GJb@zY28oh{i4upA6Yf!&azfB*d$o<) zt4U=R08U;q!%d=DwFPzeUlFp2Fp(~pJF72Omo`iL$_pePl)5bj%^3s0#DcMvrj<`K z;C)nL($aD%LcS5ROPR@KM+I`OE;`duXAx3z@ksQRZSg0}@oangzGFi}$L>peJc;KT z8p*p@m}<|p&g=Q0H>k8Yf0N(6J5LFx+NK~w*>22_@83kv(6a#6YxAwSc6x4Vp|Rn) z76lLH^~3H{`Q4R0hiuwd?-bTL3t7F(_ldxS;hXyuoPT3o630vGz-!u&BqcPD9^JvLoyiJOTL?gNzFb zf2CnU%Rm^ubfAqwXeru)7&ZaeyWAIA9#7^M1=@-*LCuxMmj<&0cm(wk%90zMO1zzk zhQpJm=pN0SnxuPYINYf$tl$3LNIE@2=|p-Yv#q(1*uHQ3NLm>`5zU-9HA(kO^u**T zx~C@E+9pzW>}Yf8jHF*0N%wA5+YEJ7Nj`KWJ;HF|_)rQwGx6QWo3{NYtMgDRdp|ou zUx{SCRKizWKfDZzcq-J23(v^!`Ou;0|HR{$l-xe|KI~F*EA$xZ7LrZvl`_?<=_@PB zG=@^OkMac%<16Z%t?8deeP5;R=9<0^)G4iae!cQi3GX1fHj=1}U##TQZocxpkSDro z<#+Zub{+BWEI+_6@E4V=@@vX}K&M_*7uB~tanHEts5j~x_f7j=_5F{wPdlUilmBV| z>;8{xJT-$g(>1?Y^M37A?F+SkRkx{bs_xr$PW^cOv-Q7U|3O2x;XuO|8(wetS>u+* z#l}yXo{=j(%-*GM(zvQSA}f_!Bm0xeesEaq?k>|vjlEcDSJ8fNrR+iZjY^rKO=hJ` z*8Y5@TnoSWePArUoT4R+9=EIj?Y~tiBZ$a8S1Ef?ezQ{c;zu*NO4*0@FILL6@G<}8 z!pSq2P9K}?JAZm+Ztl*%#W_5C?)=I5GtteN?D{{z`HXZv$Df>=Ik)=PKcDg0 zUGrxyM32v&nLRgiVfKmW(M!?Y$L9CW&!5S#UGgVG7g!WODVoKPhv + + +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 0000000000000000000000000000000000000000..a983e2dc4cb30880fffe00e1f0879be4d95eb4cc GIT binary patch literal 9304 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 literal 0 HcmV?d00001 diff --git a/public/skins/gray-flat/fonts/tinymce.eot b/public/skins/gray-flat/fonts/tinymce.eot new file mode 100644 index 0000000000000000000000000000000000000000..8838c8dc9762b9d3d6658d10601cf241062c0aa2 GIT binary patch literal 14308 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 + + +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 0000000000000000000000000000000000000000..ab4487febe5b98a161dcd2daa9b80d03de7c0fd8 GIT binary patch literal 14144 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 C+YCGa literal 0 HcmV?d00001 diff --git a/public/skins/gray-flat/img/loader.gif b/public/skins/gray-flat/img/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..c69e937232b24ea30f01c68bbd2ebc798dcecfcb GIT binary patch literal 2608 zcmdVcdr(tX9tZGC9yiG~=H_*Q-0%n(kWqP*D#hw{AQu8;1%gl-Hrf&{2?48KX;hHy z3Ze*zEz4t3XdUFyLbNPUYlA`|B}P=N1fqtL1*}S;87#|-W9v<#G;ul(e%d3)N(^9c$d2Dz{7}?ErjNd;{EMKkCsk21~b9Gvg zDo<7L=3Z5HNbVlZUcm1eg#o#CZCJU`3IYHwM->zCd?uYrF3vKFeM}v?f+%s?E>ly|3W25ry9#NNbTx-}0ON58dTrs^ix{_1O0Wh~SVSBlH)Ajn zPn^Gbjz}PCtN@#keR&hK&Dhl-b$kZ8^S)x#dh0{7X=X%CCJk7P1PSO>T&S8I4{#Lg zb5#)o=;!ZP*1nM{cI4@(x7o27*SA()NHmrn67aN@Pmi~(i_SnrjYnwh36aG%!@i0d zqbvfa44f|?OG4ntP|nbjhEl1)Yp6ZN@yjy zy4==QmLy%t;ps3R?~f2KfTTI|2?q8dFd6^z5GF+Xa&Y)sjG)hxit80pPcOP zJ z*LW{SyGHD%hUotV+W%I}fBLAIx!8|7#}$;clKQ+{&FjDqGQ2ZNx(lYM3*%~}ILnao zM`aui55~ZFJlu^!5rdA9Q_7H68H_;##u{x(Yn-vSfIRCb^Nqsg zGRS!Egm>h+o<}LeV4&CLReo9FrDjDvs}8?JwC)#Qs|ie=r?~xUh)&*d`Fx>FG}%X# zNdtDHBKhLPC0wpooFDAQKL%*6T|ULH$=wX!NhcasgD3d;-d$I6yRK3yN+E~C1335_iLOt+*9uvSZ`>*KA}vm}08wRq=>5l|t*Na&jR z-C1&C`nkEk#sB|@yyt-#fXngP04My zm7u$Q%EJbHp`>~`5W&L{W!6`y&}LMS;jfUpgO~7TLVMRZ9IC)IZp0A${`yp0{&wco z#1nx@XMkhqeK%7?RE7JdLr1^nwFfaJ0Q&Lv?WNJ%9}VSJsNY2+UYs2%EU0J~ayFXv zi*?7KCXQHkD)O6!0Q%4N+HTODHxJ{kQSuQX$l-rSwkwh(zMkdfzxyGwl@yHC)C4p< z&n2%8#M?)Q@mgHL1ot8`SFdSEj9ye|jHy+U8#@HoUExG=@AVkRAe_qYm4EpzK6L*& zh`)26?V#f4#_h^P9G^%>h2-H3)$QP zQovu6J9qDvsxqweDdNNa!Lb?L4_UF{tLX_nN7r0U_vF14YKcGR-*Gl} zx3oG)bzf|65dBxD-;2ZCp??K;+TuQ9onnK?==5hzbkb^r_g>z4#D8mcv8(+XdoszA zCx-qhdgxMNMotj}SiL_6V(tLcsK7(M(r(%u<}QrVfOvyK6_;~NOTlPGfX@M7S5YQF z&*$(ylJMHJt^_aQeu{C6NaTE$G3HNN@_SnN8YcaKn%`)F@~L1x+ah7-gEJPpc6w%3 zyX}r+Qk$4RHZzfH){e~F*qJ{d*L8a6n4;U?+{de0-t)mal#TVxe)3F}^UBh+zd T)6_**#cgp_+?JL9(ew3BlNF>u literal 0 HcmV?d00001 diff --git a/public/skins/gray-flat/img/object.gif b/public/skins/gray-flat/img/object.gif new file mode 100644 index 0000000000000000000000000000000000000000..cccd7f023fb80908cb33bb7d9604236cd21b7ae7 GIT binary patch literal 152 zcmV;J0B8S4Nk%w1VG#fg0J9GO<>lo+KR<78Z?v?uS65g4{r%Y3*xlXT%F4>`@9+2b z_ww@cot>Tk|Nk>HGXMYpA^8LW000jFEC2ui01*HU000C<(8)=wd#<&tyXIMjHBV`d zBSi|xsj3(;nD0kQ0aJq8eLH~x02P|t2!_J&Wqb%0io?#xD.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"