From fef4cd36fb2959dfa362d6296a880afa045776f7 Mon Sep 17 00:00:00 2001 From: hooray <304327508@qq.com> Date: Fri, 27 Aug 2021 10:32:21 +0800 Subject: [PATCH] first commit --- .editorconfig | 12 + .env.development | 9 + .env.example | 17 + .env.production | 15 + .env.test | 17 + .eslintignore | 4 + .eslintrc.js | 88 + .gitignore | 6 + .husky/lintstagedrc.js | 5 + .husky/pre-commit | 4 + .stylelintignore | 3 + .stylelintrc | 18 + .vscode/settings.json | 12 + LICENSE | 21 + README.md | 80 + index.html | 108 + jsconfig.json | 11 + package.json | 62 + plop-templates/component/index.hbs | 23 + plop-templates/component/prompt.js | 63 + plop-templates/mock/mock.hbs | 80 + plop-templates/mock/prompt.js | 43 + plop-templates/page/index.hbs | 23 + plop-templates/page/prompt.js | 61 + plop-templates/store/index.hbs | 15 + plop-templates/store/prompt.js | 27 + plopfile.js | 7 + pnpm-lock.yaml | 6439 +++++++ public/favicon.ico | Bin 0 -> 1150 bytes public/pwa_icons/192x192.png | Bin 0 -> 4480 bytes public/pwa_icons/384x384.png | Bin 0 -> 13662 bytes public/tinymce/langs/zh_CN.js | 419 + public/tinymce/skins/content/dark/content.css | 72 + .../skins/content/dark/content.min.css | 7 + .../tinymce/skins/content/default/content.css | 67 + .../skins/content/default/content.min.css | 7 + .../skins/content/document/content.css | 72 + .../skins/content/document/content.min.css | 7 + .../tinymce/skins/content/writer/content.css | 68 + .../skins/content/writer/content.min.css | 7 + .../tinymce/skins/ui/oxide-dark/content.css | 714 + .../skins/ui/oxide-dark/content.inline.css | 726 + .../ui/oxide-dark/content.inline.min.css | 7 + .../skins/ui/oxide-dark/content.min.css | 7 + .../skins/ui/oxide-dark/content.mobile.css | 29 + .../ui/oxide-dark/content.mobile.min.css | 7 + .../ui/oxide-dark/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes public/tinymce/skins/ui/oxide-dark/skin.css | 3034 ++++ .../tinymce/skins/ui/oxide-dark/skin.min.css | 7 + .../skins/ui/oxide-dark/skin.mobile.css | 673 + .../skins/ui/oxide-dark/skin.mobile.min.css | 7 + .../skins/ui/oxide-dark/skin.shadowdom.css | 37 + .../ui/oxide-dark/skin.shadowdom.min.css | 7 + public/tinymce/skins/ui/oxide/content.css | 732 + .../tinymce/skins/ui/oxide/content.inline.css | 726 + .../skins/ui/oxide/content.inline.min.css | 7 + public/tinymce/skins/ui/oxide/content.min.css | 7 + .../tinymce/skins/ui/oxide/content.mobile.css | 29 + .../skins/ui/oxide/content.mobile.min.css | 7 + .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes public/tinymce/skins/ui/oxide/skin.css | 3034 ++++ public/tinymce/skins/ui/oxide/skin.min.css | 7 + public/tinymce/skins/ui/oxide/skin.mobile.css | 673 + .../skins/ui/oxide/skin.mobile.min.css | 7 + .../tinymce/skins/ui/oxide/skin.shadowdom.css | 37 + .../skins/ui/oxide/skin.shadowdom.min.css | 7 + scss.template.hbs | 66 + src/App.vue | 80 + src/api/index.js | 95 + src/assets/icons/404.svg | 1 + src/assets/icons/captcha.svg | 1 + src/assets/icons/example-crown.svg | 1 + .../icons/example-emotion-laugh-line.svg | 1 + src/assets/icons/example-emotion-line.svg | 1 + .../icons/example-emotion-unhappy-line.svg | 1 + src/assets/icons/example-star.svg | 1 + src/assets/icons/example-vip.svg | 1 + src/assets/icons/eye-open.svg | 1 + src/assets/icons/eye.svg | 1 + src/assets/icons/fixed-right-buy.svg | 1 + src/assets/icons/fixed-right-chat.svg | 1 + src/assets/icons/fixed-right-code.svg | 1 + src/assets/icons/fixed-right-doc.svg | 1 + src/assets/icons/fixed-right-qq.svg | 1 + src/assets/icons/fullscreen-exit.svg | 1 + src/assets/icons/fullscreen.svg | 1 + src/assets/icons/image-load-fail.svg | 1 + src/assets/icons/password.svg | 1 + src/assets/icons/pro.svg | 1 + src/assets/icons/search-down.svg | 1 + src/assets/icons/search-enter.svg | 1 + src/assets/icons/search-up.svg | 1 + src/assets/icons/search.svg | 1 + src/assets/icons/sidebar-breadcrumb.svg | 1 + src/assets/icons/sidebar-component.svg | 1 + src/assets/icons/sidebar-default.svg | 1 + src/assets/icons/sidebar-element.svg | 1 + src/assets/icons/sidebar-external-link.svg | 1 + src/assets/icons/sidebar-keep-alive.svg | 1 + src/assets/icons/sidebar-menu.svg | 1 + src/assets/icons/sidebar-mock.svg | 1 + src/assets/icons/sidebar-permission.svg | 1 + src/assets/icons/sidebar-videos.svg | 1 + src/assets/icons/toolbar-collapse.svg | 1 + src/assets/icons/toolbar-reload.svg | 1 + src/assets/icons/toolbar-theme.svg | 1 + src/assets/icons/user.svg | 1 + src/assets/images/login-banner.jpg | Bin 0 -> 55159 bytes src/assets/images/login-bg.jpg | Bin 0 -> 47813 bytes src/assets/images/logo.png | Bin 0 -> 4111 bytes src/assets/sprites/example/address.png | Bin 0 -> 4903 bytes src/assets/sprites/example/feedback.png | Bin 0 -> 3181 bytes src/assets/sprites/example/payment.png | Bin 0 -> 4487 bytes src/assets/styles/globals.scss | 86 + src/assets/styles/resources/layout.scss | 15 + src/assets/styles/resources/themes.scss | 68 + src/assets/styles/resources/utils.scss | 57 + src/assets/styles/resources/variables.scss | 1 + src/components/AbsoluteContainer/index.vue | 34 + src/components/Auth/index.vue | 25 + src/components/AuthAll/index.vue | 25 + src/components/BatchActionBar/index.vue | 81 + src/components/CascaderArea/index.vue | 95 + src/components/Copyright/index.vue | 31 + src/components/Editor/index.vue | 103 + src/components/FileUpload/index.vue | 106 + src/components/FixedActionBar/index.vue | 61 + src/components/ImagePreview/index.vue | 69 + src/components/ImageUpload/index.vue | 229 + src/components/ImagesUpload/index.vue | 262 + src/components/PageHeader/index.vue | 52 + src/components/PageMain/index.vue | 82 + src/components/Result/index.vue | 87 + src/components/SearchBar/index.vue | 69 + src/components/SvgIcon/index.vue | 65 + src/components/Trend/index.vue | 61 + src/components/registerGlobalComponent.js | 7 + src/layout/components/BuyIt/index.vue | 111 + src/layout/components/Header/index.vue | 132 + src/layout/components/Logo/index.vue | 76 + src/layout/components/MainSidebar/index.vue | 95 + src/layout/components/Search/index.vue | 364 + src/layout/components/SidebarItem/index.vue | 269 + src/layout/components/SubSidebar/index.vue | 148 + src/layout/components/ThemeSetting/index.vue | 417 + src/layout/components/Topbar/index.vue | 151 + src/layout/components/UserMenu/index.vue | 154 + src/layout/index.vue | 311 + src/main.js | 34 + src/mixins/pagination.js | 48 + src/mock/member.js | 43 + src/mock/route.js | 86 + src/mockProdServer.js | 11 + src/router/index.js | 255 + src/router/modules/breadcrumb.example.js | 61 + src/router/modules/component.basic.example.js | 126 + .../modules/component.extend.example.js | 118 + src/router/modules/external.link.example.js | 26 + src/router/modules/keep.alive.example.js | 99 + src/router/modules/mock.example.js | 25 + src/router/modules/multilevel.menu.example.js | 66 + src/router/modules/permission.example.js | 26 + src/router/modules/videos.example.js | 24 + src/settings.js | 66 + src/store/index.js | 13 + src/store/modules/keepAlive.js | 41 + src/store/modules/menu.js | 247 + src/store/modules/settings.js | 54 + src/store/modules/user.js | 88 + src/util/area.js | 14010 ++++++++++++++++ src/util/directive.js | 19 + src/util/global.properties.js | 20 + src/util/index.js | 63 + src/views/404.vue | 65 + src/views/breadcrumb_example/detail1.vue | 7 + src/views/breadcrumb_example/detail2.vue | 7 + src/views/breadcrumb_example/list1.vue | 5 + src/views/breadcrumb_example/list2.vue | 5 + src/views/component_basic_example/button.vue | 115 + .../component_basic_example/checkbox.vue | 61 + .../components/alert.vue | 16 + .../component_basic_example/datepicker.vue | 75 + .../datetimepicker.vue | 33 + src/views/component_basic_example/icon.json | 1 + src/views/component_basic_example/icon.vue | 55 + src/views/component_basic_example/input.vue | 43 + .../component_basic_example/inputnumber.vue | 40 + src/views/component_basic_example/link.vue | 48 + src/views/component_basic_example/radio.vue | 52 + src/views/component_basic_example/rate.vue | 32 + src/views/component_basic_example/select.vue | 67 + src/views/component_basic_example/slider.vue | 61 + src/views/component_basic_example/switch.vue | 34 + .../component_basic_example/timepicker.vue | 60 + .../component_extend_example/actionbar.vue | 155 + src/views/component_extend_example/area.vue | 53 + .../batchactionbar.vue | 73 + src/views/component_extend_example/editor.vue | 31 + .../image.preview.vue | 34 + .../component_extend_example/pageheader.vue | 12 + .../component_extend_example/pagemain.vue | 33 + src/views/component_extend_example/result.vue | 23 + .../component_extend_example/searchbar.vue | 132 + src/views/component_extend_example/svg.vue | 47 + .../table.autoheight.vue | 160 + src/views/component_extend_example/trend.vue | 42 + src/views/component_extend_example/upload.vue | 63 + src/views/index.vue | 389 + src/views/keep_alive_example/detail.vue | 5 + .../keep_alive_example/nested/nested.vue | 18 + .../nested/nested/nested.vue | 18 + .../nested/nested/nested/index.vue | 19 + .../nested/nested/nested/index2.vue | 19 + src/views/keep_alive_example/page.vue | 71 + src/views/login.vue | 270 + src/views/mock_example/index.vue | 29 + .../level2/level3/page1.vue | 7 + .../level2/level3/page2.vue | 7 + .../multilevel_menu_example/level2/page.vue | 7 + src/views/multilevel_menu_example/page.vue | 7 + src/views/permission_example/index.vue | 111 + src/views/personal/edit.password.vue | 76 + src/views/personal/setting.vue | 167 + src/views/reload.vue | 11 + src/views/videos_example/coming.soon.vue | 5 + vite.config.js | 62 + vite/plugins/banner.js | 10 + vite/plugins/compression.js | 25 + vite/plugins/html.js | 16 + vite/plugins/index.js | 21 + vite/plugins/mock.js | 11 + vite/plugins/restart.js | 9 + vite/plugins/spritesmith.js | 49 + vite/plugins/svg-icon.js | 10 + 234 files changed, 41663 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.development create mode 100644 .env.example create mode 100644 .env.production create mode 100644 .env.test create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .husky/lintstagedrc.js create mode 100644 .husky/pre-commit create mode 100644 .stylelintignore create mode 100644 .stylelintrc create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package.json create mode 100644 plop-templates/component/index.hbs create mode 100644 plop-templates/component/prompt.js create mode 100644 plop-templates/mock/mock.hbs create mode 100644 plop-templates/mock/prompt.js create mode 100644 plop-templates/page/index.hbs create mode 100644 plop-templates/page/prompt.js create mode 100644 plop-templates/store/index.hbs create mode 100644 plop-templates/store/prompt.js create mode 100644 plopfile.js create mode 100644 pnpm-lock.yaml create mode 100644 public/favicon.ico create mode 100644 public/pwa_icons/192x192.png create mode 100644 public/pwa_icons/384x384.png create mode 100644 public/tinymce/langs/zh_CN.js create mode 100644 public/tinymce/skins/content/dark/content.css create mode 100644 public/tinymce/skins/content/dark/content.min.css create mode 100644 public/tinymce/skins/content/default/content.css create mode 100644 public/tinymce/skins/content/default/content.min.css create mode 100644 public/tinymce/skins/content/document/content.css create mode 100644 public/tinymce/skins/content/document/content.min.css create mode 100644 public/tinymce/skins/content/writer/content.css create mode 100644 public/tinymce/skins/content/writer/content.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.inline.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.mobile.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.mobile.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.css create mode 100644 public/tinymce/skins/ui/oxide/content.inline.css create mode 100644 public/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.mobile.css create mode 100644 public/tinymce/skins/ui/oxide/content.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff create mode 100644 public/tinymce/skins/ui/oxide/skin.css create mode 100644 public/tinymce/skins/ui/oxide/skin.min.css create mode 100644 public/tinymce/skins/ui/oxide/skin.mobile.css create mode 100644 public/tinymce/skins/ui/oxide/skin.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide/skin.shadowdom.css create mode 100644 public/tinymce/skins/ui/oxide/skin.shadowdom.min.css create mode 100644 scss.template.hbs create mode 100644 src/App.vue create mode 100644 src/api/index.js create mode 100644 src/assets/icons/404.svg create mode 100644 src/assets/icons/captcha.svg create mode 100644 src/assets/icons/example-crown.svg create mode 100644 src/assets/icons/example-emotion-laugh-line.svg create mode 100644 src/assets/icons/example-emotion-line.svg create mode 100644 src/assets/icons/example-emotion-unhappy-line.svg create mode 100644 src/assets/icons/example-star.svg create mode 100644 src/assets/icons/example-vip.svg create mode 100644 src/assets/icons/eye-open.svg create mode 100644 src/assets/icons/eye.svg create mode 100644 src/assets/icons/fixed-right-buy.svg create mode 100644 src/assets/icons/fixed-right-chat.svg create mode 100644 src/assets/icons/fixed-right-code.svg create mode 100644 src/assets/icons/fixed-right-doc.svg create mode 100644 src/assets/icons/fixed-right-qq.svg create mode 100644 src/assets/icons/fullscreen-exit.svg create mode 100644 src/assets/icons/fullscreen.svg create mode 100644 src/assets/icons/image-load-fail.svg create mode 100644 src/assets/icons/password.svg create mode 100644 src/assets/icons/pro.svg create mode 100644 src/assets/icons/search-down.svg create mode 100644 src/assets/icons/search-enter.svg create mode 100644 src/assets/icons/search-up.svg create mode 100644 src/assets/icons/search.svg create mode 100644 src/assets/icons/sidebar-breadcrumb.svg create mode 100644 src/assets/icons/sidebar-component.svg create mode 100644 src/assets/icons/sidebar-default.svg create mode 100644 src/assets/icons/sidebar-element.svg create mode 100644 src/assets/icons/sidebar-external-link.svg create mode 100644 src/assets/icons/sidebar-keep-alive.svg create mode 100644 src/assets/icons/sidebar-menu.svg create mode 100644 src/assets/icons/sidebar-mock.svg create mode 100644 src/assets/icons/sidebar-permission.svg create mode 100644 src/assets/icons/sidebar-videos.svg create mode 100644 src/assets/icons/toolbar-collapse.svg create mode 100644 src/assets/icons/toolbar-reload.svg create mode 100644 src/assets/icons/toolbar-theme.svg create mode 100644 src/assets/icons/user.svg create mode 100644 src/assets/images/login-banner.jpg create mode 100644 src/assets/images/login-bg.jpg create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/sprites/example/address.png create mode 100644 src/assets/sprites/example/feedback.png create mode 100644 src/assets/sprites/example/payment.png create mode 100644 src/assets/styles/globals.scss create mode 100644 src/assets/styles/resources/layout.scss create mode 100644 src/assets/styles/resources/themes.scss create mode 100644 src/assets/styles/resources/utils.scss create mode 100644 src/assets/styles/resources/variables.scss create mode 100644 src/components/AbsoluteContainer/index.vue create mode 100644 src/components/Auth/index.vue create mode 100644 src/components/AuthAll/index.vue create mode 100644 src/components/BatchActionBar/index.vue create mode 100644 src/components/CascaderArea/index.vue create mode 100644 src/components/Copyright/index.vue create mode 100644 src/components/Editor/index.vue create mode 100644 src/components/FileUpload/index.vue create mode 100644 src/components/FixedActionBar/index.vue create mode 100644 src/components/ImagePreview/index.vue create mode 100644 src/components/ImageUpload/index.vue create mode 100644 src/components/ImagesUpload/index.vue create mode 100644 src/components/PageHeader/index.vue create mode 100644 src/components/PageMain/index.vue create mode 100644 src/components/Result/index.vue create mode 100644 src/components/SearchBar/index.vue create mode 100644 src/components/SvgIcon/index.vue create mode 100644 src/components/Trend/index.vue create mode 100644 src/components/registerGlobalComponent.js create mode 100644 src/layout/components/BuyIt/index.vue create mode 100644 src/layout/components/Header/index.vue create mode 100644 src/layout/components/Logo/index.vue create mode 100644 src/layout/components/MainSidebar/index.vue create mode 100644 src/layout/components/Search/index.vue create mode 100644 src/layout/components/SidebarItem/index.vue create mode 100644 src/layout/components/SubSidebar/index.vue create mode 100644 src/layout/components/ThemeSetting/index.vue create mode 100644 src/layout/components/Topbar/index.vue create mode 100644 src/layout/components/UserMenu/index.vue create mode 100644 src/layout/index.vue create mode 100644 src/main.js create mode 100644 src/mixins/pagination.js create mode 100644 src/mock/member.js create mode 100644 src/mock/route.js create mode 100644 src/mockProdServer.js create mode 100644 src/router/index.js create mode 100644 src/router/modules/breadcrumb.example.js create mode 100644 src/router/modules/component.basic.example.js create mode 100644 src/router/modules/component.extend.example.js create mode 100644 src/router/modules/external.link.example.js create mode 100644 src/router/modules/keep.alive.example.js create mode 100644 src/router/modules/mock.example.js create mode 100644 src/router/modules/multilevel.menu.example.js create mode 100644 src/router/modules/permission.example.js create mode 100644 src/router/modules/videos.example.js create mode 100644 src/settings.js create mode 100644 src/store/index.js create mode 100644 src/store/modules/keepAlive.js create mode 100644 src/store/modules/menu.js create mode 100644 src/store/modules/settings.js create mode 100644 src/store/modules/user.js create mode 100644 src/util/area.js create mode 100644 src/util/directive.js create mode 100644 src/util/global.properties.js create mode 100644 src/util/index.js create mode 100644 src/views/404.vue create mode 100644 src/views/breadcrumb_example/detail1.vue create mode 100644 src/views/breadcrumb_example/detail2.vue create mode 100644 src/views/breadcrumb_example/list1.vue create mode 100644 src/views/breadcrumb_example/list2.vue create mode 100644 src/views/component_basic_example/button.vue create mode 100644 src/views/component_basic_example/checkbox.vue create mode 100644 src/views/component_basic_example/components/alert.vue create mode 100644 src/views/component_basic_example/datepicker.vue create mode 100644 src/views/component_basic_example/datetimepicker.vue create mode 100644 src/views/component_basic_example/icon.json create mode 100644 src/views/component_basic_example/icon.vue create mode 100644 src/views/component_basic_example/input.vue create mode 100644 src/views/component_basic_example/inputnumber.vue create mode 100644 src/views/component_basic_example/link.vue create mode 100644 src/views/component_basic_example/radio.vue create mode 100644 src/views/component_basic_example/rate.vue create mode 100644 src/views/component_basic_example/select.vue create mode 100644 src/views/component_basic_example/slider.vue create mode 100644 src/views/component_basic_example/switch.vue create mode 100644 src/views/component_basic_example/timepicker.vue create mode 100644 src/views/component_extend_example/actionbar.vue create mode 100644 src/views/component_extend_example/area.vue create mode 100644 src/views/component_extend_example/batchactionbar.vue create mode 100644 src/views/component_extend_example/editor.vue create mode 100644 src/views/component_extend_example/image.preview.vue create mode 100644 src/views/component_extend_example/pageheader.vue create mode 100644 src/views/component_extend_example/pagemain.vue create mode 100644 src/views/component_extend_example/result.vue create mode 100644 src/views/component_extend_example/searchbar.vue create mode 100644 src/views/component_extend_example/svg.vue create mode 100644 src/views/component_extend_example/table.autoheight.vue create mode 100644 src/views/component_extend_example/trend.vue create mode 100644 src/views/component_extend_example/upload.vue create mode 100644 src/views/index.vue create mode 100644 src/views/keep_alive_example/detail.vue create mode 100644 src/views/keep_alive_example/nested/nested.vue create mode 100644 src/views/keep_alive_example/nested/nested/nested.vue create mode 100644 src/views/keep_alive_example/nested/nested/nested/index.vue create mode 100644 src/views/keep_alive_example/nested/nested/nested/index2.vue create mode 100644 src/views/keep_alive_example/page.vue create mode 100644 src/views/login.vue create mode 100644 src/views/mock_example/index.vue create mode 100644 src/views/multilevel_menu_example/level2/level3/page1.vue create mode 100644 src/views/multilevel_menu_example/level2/level3/page2.vue create mode 100644 src/views/multilevel_menu_example/level2/page.vue create mode 100644 src/views/multilevel_menu_example/page.vue create mode 100644 src/views/permission_example/index.vue create mode 100644 src/views/personal/edit.password.vue create mode 100644 src/views/personal/setting.vue create mode 100644 src/views/reload.vue create mode 100644 src/views/videos_example/coming.soon.vue create mode 100644 vite.config.js create mode 100644 vite/plugins/banner.js create mode 100644 vite/plugins/compression.js create mode 100644 vite/plugins/html.js create mode 100644 vite/plugins/index.js create mode 100644 vite/plugins/mock.js create mode 100644 vite/plugins/restart.js create mode 100644 vite/plugins/spritesmith.js create mode 100644 vite/plugins/svg-icon.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..da599f40 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.env.development b/.env.development new file mode 100644 index 00000000..cd0e69b6 --- /dev/null +++ b/.env.development @@ -0,0 +1,9 @@ +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 基础版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否开启代理 +VITE_OPEN_PROXY = true diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..dfc56c35 --- /dev/null +++ b/.env.example @@ -0,0 +1,17 @@ +NODE_ENV = production + +VITE_APP_MODE = example + +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 基础版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否在打包时生成 sourcemap +VITE_BUILD_SOURCEMAP = false +# 是否在打包时删除 console 代码 +VITE_BUILD_DROP_CONSOLE = true +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip,brotli diff --git a/.env.production b/.env.production new file mode 100644 index 00000000..a22ba9db --- /dev/null +++ b/.env.production @@ -0,0 +1,15 @@ +NODE_ENV = production + +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 基础版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否在打包时生成 sourcemap +VITE_BUILD_SOURCEMAP = false +# 是否在打包时删除 console 代码 +VITE_BUILD_DROP_CONSOLE = true +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip,brotli diff --git a/.env.test b/.env.test new file mode 100644 index 00000000..6c085682 --- /dev/null +++ b/.env.test @@ -0,0 +1,17 @@ +NODE_ENV = production + +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 专业版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否在打包时生成 sourcemap +VITE_BUILD_SOURCEMAP = true +# 是否在打包时删除 console 代码 +VITE_BUILD_DROP_CONSOLE = true +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip,brotli +# 是否在打包时候生成PWA +VITE_BUILD_PWA = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..58ce8430 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +dist/ +node_modules/ +babel.config.js +.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..493e2e98 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,88 @@ +module.exports = { + root: true, + env: { + browser: true, + es6: true + }, + globals: { + __dirname: true, + process: true, + require: true, + module: true, + AMap: true + }, + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:vue/vue3-strongly-recommended', + 'eslint:recommended' + ], + parser: 'vue-eslint-parser', + rules: { + // 代码风格 + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-dangle': [2, 'never'], + 'comma-style': [2, 'last'], + 'computed-property-spacing': [2, 'never'], + 'indent': [2, 4, { + 'SwitchCase': 1 + }], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'linebreak-style': 0, + 'multiline-ternary': [2, 'always-multiline'], + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'quotes': [2, 'single'], + 'semi': [2, 'never'], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'switch-colon-spacing': [2, { + 'after': true, + 'before': false + }], + // ES6 + 'arrow-parens': [2, 'as-needed'], + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + // Vue - https://github.com/vuejs/eslint-plugin-vue + 'vue/html-indent': [2, 4], + 'vue/no-v-html': 0, + 'vue/max-attributes-per-line': 0, + 'vue/require-default-prop': 0, + 'vue/singleline-html-element-content-newline': 0, + 'vue/require-explicit-emits': [2, { + 'allowProps': true + }], + 'vue/script-indent': [2, 4, { + 'switchCase': 1 + }] + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..7d4c883d --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules +.DS_Store +dist* +dist-ssr +*.local +src/assets/sprites/*.* \ No newline at end of file diff --git a/.husky/lintstagedrc.js b/.husky/lintstagedrc.js new file mode 100644 index 00000000..6e2ec737 --- /dev/null +++ b/.husky/lintstagedrc.js @@ -0,0 +1,5 @@ +module.exports = { + 'src/**/*.js': ['eslint --fix'], + 'src/**/*.vue': ['eslint --fix', 'stylelint --fix'], + 'src/**/*.{scss,less}': ['stylelint --fix'] +} diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..229bb05c --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn lint-staged -c ./.husky/lintstagedrc.js diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 00000000..a1d18c49 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,3 @@ +dist/ +node_modules/ +src/assets/sprites/ diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 00000000..a8dc5662 --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,18 @@ +{ + "extends": [ + "stylelint-config-standard", + "stylelint-config-recommended-scss" + ], + "plugins": [ + "stylelint-scss" + ], + "rules": { + "indentation": 4, + "rule-empty-line-before": "never", + "at-rule-empty-line-before": "never", + "no-descending-specificity": null, + "selector-pseudo-class-no-unknown": null, + "property-no-unknown": null, + "font-family-no-missing-generic-family-keyword": null + } +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..8dcb46e2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true + }, + "i18n-ally.localesPaths": [ + "src/locales/lang" + ], + "i18n-ally.keystyle": "nested", + "i18n-ally.sortKeys": true, + "i18n-ally.keepFulfilled": true +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..3e48fa1b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 fantastic-template + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..71222edb --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +

+ +

+ +

Fantastic-admin

+ +

一款开箱即用的 Vue 中后台管理系统框架

+ +## 特点 + +- 丰富的布局模式,覆盖市面上各种中后台布局,兼容PC、平板和移动端 +- 提供主题配置文件,轻松实现个性化定制 +- 精心设计的动效,让每一处的动画都干净利落 +- 根据路由配置自动生成导航栏 +- 支持全方位权限验证 +- 集成多级路由缓存方案 + +## 演示 + +**Vue3 版本** + +[基础版](https://hooray.gitee.io/fantastic-admin/vue3/basic) ([备份地址](https://hooray.github.io/fantastic-admin/vue3/basic)) + +[专业版](https://hooray.gitee.io/fantastic-admin/vue3/pro) ([备份地址](https://hooray.github.io/fantastic-admin/vue3/pro)) + +**Vue2 版本** + +[基础版](https://hooray.gitee.io/fantastic-admin/vue2/basic) ([备份地址](https://hooray.github.io/fantastic-admin/vue2/basic)) + +[专业版](https://hooray.gitee.io/fantastic-admin/vue2/pro) ([备份地址](https://hooray.github.io/fantastic-admin/vue2/pro)) + +## 下载 & 购买 + +- 基础版(免费,可商用) + - 去 [Gitee](https://gitee.com/hooray/fantastic-admin) 下载 + - 去 [Github](https://github.com/hooray/fantastic-admin) 下载 +- 专业版(付费,可商用) + - [去购买](https://hooray.gitee.io/fantastic-admin/buy.html) ([备份地址](https://hooray.github.io/fantastic-admin/buy.html)) + +## 分支说明 + +> 建议开发时,在本地同时下载演示分支和模版分支,模版分支用于项目开发,演示分支做为示例参考。 + +- `master` Vue3 版本演示分支,同演示站 +- `template` Vue3 版本模版分支,移除演示代码,可直接用于实际开发 +- `vue2` Vue2 版本演示分支,同演示站 +- `template-vue2` Vue2 版本模版分支,移除演示代码,可直接用于实际开发 + +## 技术支持 + +[开发文档](https://hooray.gitee.io/fantastic-admin) ([备份地址](https://hooray.github.io/fantastic-admin)) + +[Vue2版本视频教程](https://space.bilibili.com/3079082/channel/detail?cid=156985) + +技术交流QQ群:1001394973 + +## 预览 + +> 预览截图为 Vue3 专业版 + + + + + + + + + + + + +
+ +## 支持 + +如果觉得 Fantastic-admin 这个框架不错,或者已经在使用了,希望你可以去 **Github** 或者 **Gitee(码云)** 帮我点个 ⭐ ,这将对我是极大的鼓励。 + +[![star](https://img.shields.io/github/stars/hooray/fantastic-admin?style=social)](https://github.com/hooray/fantastic-admin/stargazers) + +[![star](https://gitee.com/hooray/fantastic-admin/badge/star.svg?theme=dark)](https://gitee.com/hooray/fantastic-admin/stargazers) diff --git a/index.html b/index.html new file mode 100644 index 00000000..b9f35c2b --- /dev/null +++ b/index.html @@ -0,0 +1,108 @@ + + + + + + + <%= title %> + + <% if (appMode == 'example') { %> + + <% } %> + + +
+
+
+
<%= title %>载入中…
+
+
+ + <% if (debugTool == 'eruda') { %> + + + <% } %> + <% if (debugTool == 'vconsole') { %> + + + <% } %> + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..8405955c --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es2017", + "allowSyntheticDefaultImports": false, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist", "dist-test"] +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..1c93fe57 --- /dev/null +++ b/package.json @@ -0,0 +1,62 @@ +{ + "name": "fantastic-admin-pro", + "version": "0.1.0", + "scripts": { + "dev": "vite", + "build:test": "vite build --mode test", + "build": "vite build", + "build:example": "vite build --mode example", + "serve:test": "hs ./dist-test -o", + "serve": "hs ./dist -o", + "serve:example": "hs ./dist-example -o", + "svgo": "svgo -f src/assets/icons", + "new": "plop", + "lint:eslint": "eslint src/**/*.{js,vue} --fix", + "lint:stylelint": "stylelint src/**/*.{vue,scss,less} --fix", + "prepare": "husky install" + }, + "dependencies": { + "@tinymce/tinymce-vue": "^4.0.4", + "axios": "^0.21.1", + "dayjs": "^1.10.6", + "element-plus": "^1.1.0-beta.6", + "hotkeys-js": "^3.8.7", + "js-cookie": "^2.2.1", + "mitt": "^3.0.0", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "path-to-regexp": "^6.2.0", + "screenfull": "^5.1.0", + "tinymce": "^5.9.0", + "vue": "^3.2.6", + "vue-router": "^4.0.11", + "vuex": "^4.0.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^1.6.0", + "@vue/compiler-sfc": "^3.2.6", + "eslint": "^7.32.0", + "eslint-plugin-vue": "^7.16.0", + "http-server": "^0.12.3", + "husky": "^7.0.2", + "lint-staged": "^11.1.2", + "plop": "^2.7.4", + "sass": "^1.38.1", + "stylelint": "^13.13.1", + "stylelint-config-recommended-scss": "^4.3.0", + "stylelint-config-standard": "^22.0.0", + "stylelint-scss": "^3.20.1", + "svgo": "^2.4.0", + "vite": "^2.5.1", + "vite-plugin-banner": "^0.1.3", + "vite-plugin-compression": "^0.3.5", + "vite-plugin-html": "^2.1.0", + "vite-plugin-mock": "^2.9.6", + "vite-plugin-restart": "^0.0.2", + "vite-plugin-spritesmith": "^0.1.0", + "vite-plugin-svg-icons": "^1.0.4", + "vue-eslint-parser": "^7.10.0", + "workbox-window": "^6.2.4" + } +} diff --git a/plop-templates/component/index.hbs b/plop-templates/component/index.hbs new file mode 100644 index 00000000..950d9245 --- /dev/null +++ b/plop-templates/component/index.hbs @@ -0,0 +1,23 @@ + + + + + diff --git a/plop-templates/component/prompt.js b/plop-templates/component/prompt.js new file mode 100644 index 00000000..13739d19 --- /dev/null +++ b/plop-templates/component/prompt.js @@ -0,0 +1,63 @@ +const fs = require('fs') + +function getFolder(path) { + let components = [] + const files = fs.readdirSync(path) + files.forEach(function(item) { + let stat = fs.lstatSync(path + '/' + item) + if (stat.isDirectory() === true && item != 'components') { + components.push(path + '/' + item) + components.push.apply(components, getFolder(path + '/' + item)) + } + }) + return components +} + +module.exports = { + description: '创建组件', + prompts: [ + { + type: 'confirm', + name: 'isGlobal', + message: '是否为全局组件', + default: false + }, + { + type: 'list', + name: 'path', + message: '请选择组件创建目录', + choices: getFolder('src/views'), + when: answers => { + return !answers.isGlobal + } + }, + { + type: 'input', + name: 'name', + message: '请输入组件名称', + validate: v => { + if (!v || v.trim === '') { + return '组件名称不能为空' + } else { + return true + } + } + } + ], + actions: data => { + let path = '' + if (data.isGlobal) { + path = 'src/components/{{properCase name}}/index.vue' + } else { + path = `${data.path}/components/{{properCase name}}/index.vue` + } + const actions = [ + { + type: 'add', + path: path, + templateFile: 'plop-templates/component/index.hbs' + } + ] + return actions + } +} diff --git a/plop-templates/mock/mock.hbs b/plop-templates/mock/mock.hbs new file mode 100644 index 00000000..4999f424 --- /dev/null +++ b/plop-templates/mock/mock.hbs @@ -0,0 +1,80 @@ +import Mock from 'mockjs' + +const AllList = [] +for (let i = 0; i < 50; i++) { + AllList.push(Mock.mock({ + id: '@id', + title: '@ctitle(10, 20)' + })) +} + +export default [ + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/list', + method: 'get', + response: option => { + let { title, from, limit } = option.query + from = ~~from + limit = ~~limit + let list = AllList.filter(item => { + return title ? item.title.includes(title) : true + }) + let pageList = list.filter((item, index) => { + return index >= from && index < (from + limit) + }) + return { + error: '', + status: 1, + data: { + list: pageList, + total: list.length + } + } + } + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/detail', + method: 'get', + response: option => { + let info = AllList.filter(item => item.id == option.query.id) + return { + error: '', + status: 1, + data: info[0] + } + } + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/create', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true + } + } + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/edit', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true + } + } + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/delete', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true + } + } + } +] diff --git a/plop-templates/mock/prompt.js b/plop-templates/mock/prompt.js new file mode 100644 index 00000000..5d1c2f96 --- /dev/null +++ b/plop-templates/mock/prompt.js @@ -0,0 +1,43 @@ +const path = require('path') +const fs = require('fs') + +function getFolder(path) { + let components = [] + const files = fs.readdirSync(path) + files.forEach(function(item) { + let stat = fs.lstatSync(path + '/' + item) + if (stat.isDirectory() === true && item != 'components') { + components.push(path + '/' + item) + components.push.apply(components, getFolder(path + '/' + item)) + } + }) + return components +} + +module.exports = { + description: '创建标准模块 Mock', + prompts: [ + { + type: 'list', + name: 'path', + message: '请选择模块目录', + choices: getFolder('src/views') + } + ], + actions: data => { + let pathArr = path.relative('src/views', data.path).split('\\') + let moduleName = pathArr.pop() + let relativePath = pathArr.join('/') + const actions = [] + actions.push({ + type: 'add', + path: pathArr.length == 0 ? 'src/mock/{{moduleName}}.js' : `src/mock/${pathArr.join('.')}.{{moduleName}}.js`, + templateFile: 'plop-templates/mock/mock.hbs', + data: { + relativePath, + moduleName + } + }) + return actions + } +} diff --git a/plop-templates/page/index.hbs b/plop-templates/page/index.hbs new file mode 100644 index 00000000..8d4d42ad --- /dev/null +++ b/plop-templates/page/index.hbs @@ -0,0 +1,23 @@ + + + + + diff --git a/plop-templates/page/prompt.js b/plop-templates/page/prompt.js new file mode 100644 index 00000000..8e631236 --- /dev/null +++ b/plop-templates/page/prompt.js @@ -0,0 +1,61 @@ +const path = require('path') +const fs = require('fs') + +function getFolder(path) { + let components = [] + const files = fs.readdirSync(path) + files.forEach(function(item) { + let stat = fs.lstatSync(path + '/' + item) + if (stat.isDirectory() === true && item != 'components') { + components.push(path + '/' + item) + components.push.apply(components, getFolder(path + '/' + item)) + } + }) + return components +} + +module.exports = { + description: '创建页面', + prompts: [ + { + type: 'list', + name: 'path', + message: '请选择页面创建目录', + choices: getFolder('src/views') + }, + { + type: 'input', + name: 'name', + message: '请输入文件名', + validate: v => { + if (!v || v.trim === '') { + return '文件名不能为空' + } else if (v == 'list' || v == 'detail') { + return 'list 和 detail 为保留关键字,无法直接创建,请通过创建标准模块进行生成' + } else { + return true + } + } + }, + { + type: 'input', + name: 'cname', + message: '请输入页面中文名称', + default: '默认页面' + } + ], + actions: data => { + let relativePath = path.relative('src/views', data.path) + const actions = [ + { + type: 'add', + path: `${data.path}/{{dotCase name}}.vue`, + templateFile: 'plop-templates/page/index.hbs', + data: { + componentName: `${relativePath} ${data.name}` + } + } + ] + return actions + } +} diff --git a/plop-templates/store/index.hbs b/plop-templates/store/index.hbs new file mode 100644 index 00000000..27428aae --- /dev/null +++ b/plop-templates/store/index.hbs @@ -0,0 +1,15 @@ +const state = () => ({}) + +const getters = {} + +const actions = {} + +const mutations = {} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/plop-templates/store/prompt.js b/plop-templates/store/prompt.js new file mode 100644 index 00000000..d86b6193 --- /dev/null +++ b/plop-templates/store/prompt.js @@ -0,0 +1,27 @@ +module.exports = { + description: '创建全局状态', + prompts: [ + { + type: 'input', + name: 'name', + message: '请输入模块名称', + validate: v => { + if (!v || v.trim === '') { + return '模块名称不能为空' + } else { + return true + } + } + } + ], + actions: data => { + const actions = [ + { + type: 'add', + path: `src/store/modules/${data.name}.js`, + templateFile: 'plop-templates/store/index.hbs' + } + ] + return actions + } +} diff --git a/plopfile.js b/plopfile.js new file mode 100644 index 00000000..f6109325 --- /dev/null +++ b/plopfile.js @@ -0,0 +1,7 @@ +module.exports = function(plop) { + plop.setWelcomeMessage('请选择需要创建的模式:') + plop.setGenerator('page', require('./plop-templates/page/prompt')) + plop.setGenerator('component', require('./plop-templates/component/prompt')) + plop.setGenerator('store', require('./plop-templates/store/prompt')) + plop.setGenerator('mock', require('./plop-templates/mock/prompt')) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..87f2eac3 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6439 @@ +lockfileVersion: 5.3 + +specifiers: + '@tinymce/tinymce-vue': ^4.0.4 + '@vitejs/plugin-vue': ^1.6.0 + '@vue/compiler-sfc': ^3.2.6 + axios: ^0.21.1 + dayjs: ^1.10.6 + element-plus: ^1.1.0-beta.6 + eslint: ^7.32.0 + eslint-plugin-vue: ^7.16.0 + hotkeys-js: ^3.8.7 + http-server: ^0.12.3 + husky: ^7.0.2 + js-cookie: ^2.2.1 + lint-staged: ^11.1.2 + mitt: ^3.0.0 + mockjs: ^1.1.0 + nprogress: ^0.2.0 + path-browserify: ^1.0.1 + path-to-regexp: ^6.2.0 + plop: ^2.7.4 + sass: ^1.38.1 + screenfull: ^5.1.0 + stylelint: ^13.13.1 + stylelint-config-recommended-scss: ^4.3.0 + stylelint-config-standard: ^22.0.0 + stylelint-scss: ^3.20.1 + svgo: ^2.4.0 + tinymce: ^5.9.0 + vite: ^2.5.1 + vite-plugin-banner: ^0.1.3 + vite-plugin-compression: ^0.3.5 + vite-plugin-html: ^2.1.0 + vite-plugin-mock: ^2.9.6 + vite-plugin-restart: ^0.0.2 + vite-plugin-spritesmith: ^0.1.0 + vite-plugin-svg-icons: ^1.0.4 + vue: ^3.2.6 + vue-eslint-parser: ^7.10.0 + vue-router: ^4.0.11 + vuex: ^4.0.2 + workbox-window: ^6.2.4 + +dependencies: + '@tinymce/tinymce-vue': registry.nlark.com/@tinymce/tinymce-vue/4.0.4_vue@3.2.6 + axios: 0.21.1 + dayjs: registry.nlark.com/dayjs/1.10.6 + element-plus: registry.nlark.com/element-plus/1.1.0-beta.6_vue@3.2.6 + hotkeys-js: registry.nlark.com/hotkeys-js/3.8.7 + js-cookie: registry.nlark.com/js-cookie/2.2.1 + mitt: registry.nlark.com/mitt/3.0.0 + mockjs: 1.1.0 + nprogress: 0.2.0 + path-browserify: 1.0.1 + path-to-regexp: 6.2.0 + screenfull: registry.nlark.com/screenfull/5.1.0 + tinymce: registry.nlark.com/tinymce/5.9.0 + vue: registry.nlark.com/vue/3.2.6 + vue-router: registry.nlark.com/vue-router/4.0.11_vue@3.2.6 + vuex: registry.nlark.com/vuex/4.0.2_vue@3.2.6 + +devDependencies: + '@vitejs/plugin-vue': registry.nlark.com/@vitejs/plugin-vue/1.6.0_@vue+compiler-sfc@3.2.6 + '@vue/compiler-sfc': registry.nlark.com/@vue/compiler-sfc/3.2.6 + eslint: registry.nlark.com/eslint/7.32.0 + eslint-plugin-vue: registry.nlark.com/eslint-plugin-vue/7.16.0_eslint@7.32.0 + http-server: registry.nlark.com/http-server/0.12.3 + husky: registry.nlark.com/husky/7.0.2 + lint-staged: registry.nlark.com/lint-staged/11.1.2 + plop: 2.7.4 + sass: registry.nlark.com/sass/1.38.1 + stylelint: registry.nlark.com/stylelint/13.13.1 + stylelint-config-recommended-scss: registry.nlark.com/stylelint-config-recommended-scss/4.3.0_fd1d61e57b9553f3887f804324f52132 + stylelint-config-standard: registry.nlark.com/stylelint-config-standard/22.0.0_stylelint@13.13.1 + stylelint-scss: registry.nlark.com/stylelint-scss/3.20.1_stylelint@13.13.1 + svgo: registry.nlark.com/svgo/2.4.0 + vite: registry.nlark.com/vite/2.5.1 + vite-plugin-banner: registry.nlark.com/vite-plugin-banner/0.1.3 + vite-plugin-compression: registry.nlark.com/vite-plugin-compression/0.3.5_vite@2.5.1 + vite-plugin-html: registry.nlark.com/vite-plugin-html/2.1.0_vite@2.5.1 + vite-plugin-mock: registry.nlark.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.5.1 + vite-plugin-restart: registry.nlark.com/vite-plugin-restart/0.0.2_vite@2.5.1 + vite-plugin-spritesmith: registry.nlark.com/vite-plugin-spritesmith/0.1.0 + vite-plugin-svg-icons: registry.nlark.com/vite-plugin-svg-icons/1.0.4_vite@2.5.1 + vue-eslint-parser: registry.nlark.com/vue-eslint-parser/7.10.0_eslint@7.32.0 + workbox-window: registry.nlark.com/workbox-window/6.2.4 + +packages: + + /@stylelint/postcss-css-in-js/0.37.2_2b33a41d320e3e2012e5b3b0fadc703b: + resolution: {integrity: sha1-flqErRgfQjSiSAgDQipHuHSa89I=, tarball: '@stylelint/postcss-css-in-js/download/@stylelint/postcss-css-in-js-0.37.2.tgz'} + peerDependencies: + postcss: '>=7.0.0' + postcss-syntax: '>=0.36.2' + dependencies: + '@babel/core': registry.nlark.com/@babel/core/7.15.0 + postcss: registry.nlark.com/postcss/7.0.36 + postcss-syntax: 0.36.2_postcss@7.0.36 + transitivePeerDependencies: + - supports-color + dev: true + + /@stylelint/postcss-markdown/0.36.2_2b33a41d320e3e2012e5b3b0fadc703b: + resolution: {integrity: sha1-ClQMRpL43N/BPI41LBfnv+4rs5E=, tarball: '@stylelint/postcss-markdown/download/@stylelint/postcss-markdown-0.36.2.tgz'} + peerDependencies: + postcss: '>=7.0.0' + postcss-syntax: '>=0.36.2' + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + postcss-syntax: 0.36.2_postcss@7.0.36 + remark: registry.nlark.com/remark/13.0.0 + unist-util-find-all-after: registry.nlark.com/unist-util-find-all-after/3.0.2 + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=, tarball: aggregate-error/download/aggregate-error-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + clean-stack: registry.nlark.com/clean-stack/2.2.0 + indent-string: 4.0.0 + dev: true + + /ansi-colors/4.1.1: + resolution: {integrity: sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=, tarball: ansi-colors/download/ansi-colors-4.1.1.tgz} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=, tarball: ansi-escapes/download/ansi-escapes-4.3.2.tgz} + engines: {node: '>=8'} + dependencies: + type-fest: registry.nlark.com/type-fest/0.21.3 + dev: true + + /ansi-regex/2.1.1: + resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=, tarball: ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553945397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex/4.1.0: + resolution: {integrity: sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=, tarball: ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553945397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /ansi-regex/5.0.0: + resolution: {integrity: sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=, tarball: ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553945397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha1-wFV8CWrzLxBhmPT04qODU343hxY=, tarball: anymatch/download/anymatch-3.1.2.tgz} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: registry.nlark.com/picomatch/2.3.0 + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=, tarball: argparse/download/argparse-1.0.10.tgz} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /arr-diff/4.0.0: + resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=, tarball: arr-diff/download/arr-diff-4.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten/1.1.0: + resolution: {integrity: sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=, tarball: arr-flatten/download/arr-flatten-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union/3.1.0: + resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=, tarball: arr-union/download/arr-union-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /array-slice/1.1.0: + resolution: {integrity: sha1-42jqFfibxwaff/uJrsOmx9SsItQ=, tarball: array-slice/download/array-slice-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha1-t5hCCtvrHego2ErNii4j0+/oXo0=, tarball: array-union/download/array-union-2.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /array-unique/0.3.2: + resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=, tarball: array-unique/download/array-unique-0.3.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /asn1/0.2.4: + resolution: {integrity: sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=, tarball: asn1/download/asn1-0.2.4.tgz} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=, tarball: assert-plus/download/assert-plus-1.0.0.tgz} + engines: {node: '>=0.8'} + dev: true + + /assign-symbols/1.0.0: + resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=, tarball: assign-symbols/download/assign-symbols-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=, tarball: astral-regex/download/astral-regex-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=, tarball: asynckit/download/asynckit-0.4.0.tgz} + dev: true + + /atob/2.1.2: + resolution: {integrity: sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=, tarball: atob/download/atob-2.1.2.tgz} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /aws-sign2/0.7.0: + resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=, tarball: aws-sign2/download/aws-sign2-0.7.0.tgz} + dev: true + + /aws4/1.11.0: + resolution: {integrity: sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=, tarball: aws4/download/aws4-1.11.0.tgz} + dev: true + + /axios/0.21.1: + resolution: {integrity: sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=, tarball: axios/download/axios-0.21.1.tgz} + dependencies: + follow-redirects: registry.nlark.com/follow-redirects/1.14.2 + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, tarball: balanced-match/download/balanced-match-1.0.2.tgz} + dev: true + + /balanced-match/2.0.0: + resolution: {integrity: sha1-3HD5INeNuLhYU1eVhnv0j4IGM9k=, tarball: balanced-match/download/balanced-match-2.0.0.tgz} + dev: true + + /base/0.11.2: + resolution: {integrity: sha1-e95c7RRbbVUakNuH+DxVi060io8=, tarball: base/download/base-0.11.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /basic-auth/1.1.0: + resolution: {integrity: sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=, tarball: basic-auth/download/basic-auth-1.1.0.tgz} + engines: {node: '>= 0.6'} + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=, tarball: bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=, tarball: binary-extensions/download/binary-extensions-2.2.0.tgz} + engines: {node: '>=8'} + dev: true + + /bluebird/3.7.2: + resolution: {integrity: sha1-nyKcFb4nJFT/qXOs4NvueaGww28=, tarball: bluebird/download/bluebird-3.7.2.tgz} + dev: true + + /boolbase/1.0.0: + resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=, tarball: boolbase/download/boolbase-1.0.0.tgz} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=, tarball: brace-expansion/download/brace-expansion-1.1.11.tgz} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/2.3.2: + resolution: {integrity: sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=, tarball: braces/download/braces-2.3.2.tgz} + engines: {node: '>=0.10.0'} + 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.4 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha1-NFThpGLujVmeI23zNs2epPiv4Qc=, tarball: braces/download/braces-3.0.2.tgz} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /builtin-modules/3.2.0: + resolution: {integrity: sha1-RdXbmefuXmvE82LgCL+RerUEmIc=, tarball: builtin-modules/download/builtin-modules-3.2.0.tgz} + engines: {node: '>=6'} + dev: true + + /cache-base/1.0.1: + resolution: {integrity: sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=, tarball: cache-base/download/cache-base-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: registry.nlark.com/set-value/2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=, tarball: call-bind/download/call-bind-1.0.2.tgz} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /camel-case/3.0.0: + resolution: {integrity: sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=, tarball: camel-case/download/camel-case-3.0.0.tgz} + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + dev: true + + /camel-case/4.1.2: + resolution: {integrity: sha1-lygHKpVPgFIoIlpt7qazhGHhvVo=, tarball: camel-case/download/camel-case-4.1.2.tgz} + dependencies: + pascal-case: 3.1.2 + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=, tarball: camelcase/download/camelcase-5.3.1.tgz} + engines: {node: '>=6'} + dev: true + + /caseless/0.12.0: + resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=, tarball: caseless/download/caseless-0.12.0.tgz} + dev: true + + /change-case/3.1.0: + resolution: {integrity: sha1-DmEbftyZUt8uhROye0LecmR90X4=, tarball: change-case/download/change-case-3.1.0.tgz} + dependencies: + camel-case: 3.0.0 + constant-case: 2.0.0 + dot-case: 2.1.1 + header-case: 1.0.1 + is-lower-case: registry.nlark.com/is-lower-case/1.1.3 + is-upper-case: 1.1.2 + lower-case: 1.1.4 + lower-case-first: 1.0.2 + no-case: 2.3.2 + param-case: 2.1.1 + pascal-case: 2.0.1 + path-case: registry.nlark.com/path-case/2.1.1 + sentence-case: 2.1.1 + snake-case: 2.1.0 + swap-case: 1.1.2 + title-case: registry.nlark.com/title-case/2.1.1 + upper-case: 1.1.3 + upper-case-first: 1.1.2 + dev: true + + /character-entities-legacy/1.1.4: + resolution: {integrity: sha1-lLwYRdznClu50uzHSHJWYSk9j8E=, tarball: character-entities-legacy/download/character-entities-legacy-1.1.4.tgz} + dev: true + + /character-entities/1.2.4: + resolution: {integrity: sha1-4Sw5Obfq9OWxXnrUxeKOHUjFsWs=, tarball: character-entities/download/character-entities-1.2.4.tgz} + dev: true + + /character-reference-invalid/1.1.4: + resolution: {integrity: sha1-CDMpzaDq4nKrPbvzfpo4LBOvFWA=, tarball: character-reference-invalid/download/character-reference-invalid-1.1.4.tgz} + dev: true + + /chardet/0.7.0: + resolution: {integrity: sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=, tarball: chardet/download/chardet-0.7.0.tgz} + dev: true + + /class-utils/0.3.6: + resolution: {integrity: sha1-+TNprouafOAv1B+q0MqDAzGQxGM=, tarball: class-utils/download/class-utils-0.3.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /cli-spinners/2.6.0: + resolution: {integrity: sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=, tarball: cli-spinners/download/cli-spinners-2.6.0.tgz} + engines: {node: '>=6'} + dev: true + + /cli-width/3.0.0: + resolution: {integrity: sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=, tarball: cli-width/download/cli-width-3.0.0.tgz} + engines: {node: '>= 10'} + dev: true + + /clone-regexp/2.2.0: + resolution: {integrity: sha1-fWXgCIXNh5ZAXDWnN+eoa3Qp428=, tarball: clone-regexp/download/clone-regexp-2.2.0.tgz} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: true + + /clone-stats/0.0.1: + resolution: {integrity: sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=, tarball: clone-stats/download/clone-stats-0.0.1.tgz} + dev: true + + /clone/1.0.4: + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=, tarball: clone/download/clone-1.0.4.tgz} + engines: {node: '>=0.8'} + dev: true + + /clone/2.1.2: + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=, tarball: clone/download/clone-2.1.2.tgz} + engines: {node: '>=0.8'} + dev: true + + /collection-visit/1.0.0: + resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=, tarball: collection-visit/download/collection-visit-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=, tarball: color-convert/download/color-convert-1.9.3.tgz} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, tarball: color-convert/download/color-convert-2.0.1.tgz} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=, tarball: color-name/download/color-name-1.1.3.tgz} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, tarball: color-name/download/color-name-1.1.4.tgz} + dev: true + + /colors/1.4.0: + resolution: {integrity: sha1-xQSRR51MG9rtLJztMs98fcI2D3g=, tarball: colors/download/colors-1.4.0.tgz} + engines: {node: '>=0.1.90'} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=, tarball: combined-stream/download/combined-stream-1.0.8.tgz} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /component-emitter/1.3.0: + resolution: {integrity: sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=, tarball: component-emitter/download/component-emitter-1.3.0.tgz} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} + dev: true + + /concat-stream/1.5.2: + resolution: {integrity: sha1-cIl4Yk2FavQaWnQd790mHadSwmY=, tarball: concat-stream/download/concat-stream-1.5.2.tgz} + engines: {'0': node >= 0.8} + dependencies: + inherits: 2.0.4 + readable-stream: 2.0.6 + typedarray: 0.0.6 + dev: true + + /connect/3.7.0: + resolution: {integrity: sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=, tarball: connect/download/connect-3.7.0.tgz} + engines: {node: '>= 0.10.0'} + dependencies: + debug: registry.nlark.com/debug/2.6.9 + finalhandler: 1.1.2 + parseurl: registry.nlark.com/parseurl/1.3.3 + utils-merge: 1.0.1 + dev: true + + /consolidate/0.16.0: + resolution: {integrity: sha1-oRhkdokw8vGUMWYKZZBmaPX73BY=, tarball: consolidate/download/consolidate-0.16.0.tgz} + engines: {node: '>= 0.10.0'} + dependencies: + bluebird: 3.7.2 + dev: true + + /constant-case/2.0.0: + resolution: {integrity: sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=, tarball: constant-case/download/constant-case-2.0.0.tgz} + dependencies: + snake-case: 2.1.0 + upper-case: 1.1.3 + dev: true + + /copy-descriptor/0.1.1: + resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=, tarball: copy-descriptor/download/copy-descriptor-0.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /core-util-is/1.0.2: + resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=, tarball: core-util-is/download/core-util-is-1.0.2.tgz} + dev: true + + /cors/2.8.5: + resolution: {integrity: sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk=, tarball: cors/download/cors-2.8.5.tgz} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /corser/2.0.1: + resolution: {integrity: sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=, tarball: corser/download/corser-2.0.1.tgz} + engines: {node: '>= 0.4.0'} + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha1-9zqFudXUHQRVUcF34ogtSshXKKY=, tarball: cross-spawn/download/cross-spawn-7.0.3.tgz} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /cssesc/3.0.0: + resolution: {integrity: sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=, tarball: cssesc/download/cssesc-3.0.0.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csso/4.2.0: + resolution: {integrity: sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=, tarball: csso/download/csso-4.2.0.tgz} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: registry.nlark.com/css-tree/1.1.3 + dev: true + + /dashdash/1.14.1: + resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=, tarball: dashdash/download/dashdash-1.14.1.tgz} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /decamelize-keys/1.1.0: + resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=, tarball: decamelize-keys/download/decamelize-keys-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=, tarball: decamelize/download/decamelize-1.2.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /decode-uri-component/0.2.0: + resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=, tarball: decode-uri-component/download/decode-uri-component-0.2.0.tgz} + engines: {node: '>=0.10'} + dev: true + + /deep-is/0.1.3: + resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=, tarball: deep-is/download/deep-is-0.1.3.tgz} + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=, tarball: deepmerge/download/deepmerge-4.2.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /defaults/1.0.3: + resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=, tarball: defaults/download/defaults-1.0.3.tgz} + dependencies: + clone: 1.0.4 + dev: true + + /define-property/0.2.5: + resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=, tarball: define-property/download/define-property-0.2.5.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property/1.0.0: + resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=, tarball: define-property/download/define-property-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property/2.0.2: + resolution: {integrity: sha1-1Flono1lS6d+AqgX+HENcCyxbp0=, tarball: define-property/download/define-property-2.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /del/5.1.0: + resolution: {integrity: sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=, tarball: del/download/del-5.1.0.tgz} + engines: {node: '>=8'} + dependencies: + globby: registry.nlark.com/globby/10.0.2 + graceful-fs: registry.nlark.com/graceful-fs/4.2.8 + is-glob: 4.0.1 + is-path-cwd: registry.nlark.com/is-path-cwd/2.2.0 + is-path-inside: registry.nlark.com/is-path-inside/3.0.3 + p-map: registry.nlark.com/p-map/3.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=, tarball: delayed-stream/download/delayed-stream-1.0.0.tgz} + engines: {node: '>=0.4.0'} + dev: true + + /detect-file/1.0.0: + resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=, tarball: detect-file/download/detect-file-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=, tarball: dir-glob/download/dir-glob-3.0.1.tgz} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=, tarball: doctrine/download/doctrine-3.0.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /domelementtype/1.3.1: + resolution: {integrity: sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=, tarball: domelementtype/download/domelementtype-1.3.1.tgz} + dev: true + + /domelementtype/2.2.0: + resolution: {integrity: sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=, tarball: domelementtype/download/domelementtype-2.2.0.tgz} + dev: true + + /domhandler/2.4.2: + resolution: {integrity: sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=, tarball: domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1618565946556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler/4.2.0: + resolution: {integrity: sha1-+XaKXwNL5gqJonwuTQ9066DYsFk=, tarball: domhandler/download/domhandler-4.2.0.tgz?cache=0&sync_timestamp=1618565946556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.0.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.2.0 + dev: true + + /dot-case/2.1.1: + resolution: {integrity: sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=, tarball: dot-case/download/dot-case-2.1.1.tgz} + dependencies: + no-case: 2.3.2 + dev: true + + /dot-case/3.0.4: + resolution: {integrity: sha1-mytnDQCkMWZ6inW6Kc0bmICc51E=, tarball: dot-case/download/dot-case-3.0.4.tgz} + dependencies: + no-case: 3.0.4 + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /dotenv-expand/5.1.0: + resolution: {integrity: sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=, tarball: dotenv-expand/download/dotenv-expand-5.1.0.tgz} + dev: true + + /ecc-jsbn/0.1.2: + resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=, tarball: ecc-jsbn/download/ecc-jsbn-0.1.2.tgz} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ee-first/1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=, tarball: ee-first/download/ee-first-1.1.1.tgz} + dev: true + + /ejs/3.1.6: + resolution: {integrity: sha1-W/0KBol0O7UmizVQzO7rvBcCgio=, tarball: ejs/download/ejs-3.1.6.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.2 + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=, tarball: emoji-regex/download/emoji-regex-8.0.0.tgz} + dev: true + + /emojis-list/3.0.0: + resolution: {integrity: sha1-VXBmIEatKeLpFucariYKvf9Pang=, tarball: emojis-list/download/emojis-list-3.0.0.tgz} + engines: {node: '>= 4'} + dev: true + + /encodeurl/1.0.2: + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=, tarball: encodeurl/download/encodeurl-1.0.2.tgz} + engines: {node: '>= 0.8'} + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=, tarball: enquirer/download/enquirer-2.3.6.tgz} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha1-tKxAZIEH/c3PriQvQovqihTU8b8=, tarball: error-ex/download/error-ex-1.3.2.tgz} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=, tarball: escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602572632086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz} + engines: {node: '>=6'} + dev: true + + /escape-html/1.0.3: + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=, tarball: escape-html/download/escape-html-1.0.3.tgz} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=, tarball: escape-string-regexp/download/escape-string-regexp-1.0.5.tgz} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=, tarball: escape-string-regexp/download/escape-string-regexp-4.0.0.tgz} + engines: {node: '>=10'} + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=, tarball: esprima/download/esprima-4.0.1.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=, tarball: esquery/download/esquery-1.4.0.tgz} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.2.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=, tarball: esrecurse/download/esrecurse-4.3.0.tgz} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.2.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=, tarball: estraverse/download/estraverse-4.3.0.tgz} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.2.0: + resolution: {integrity: sha1-MH30JUfmzHMk088DwVXVzbjFOIA=, tarball: estraverse/download/estraverse-5.2.0.tgz} + engines: {node: '>=4.0'} + dev: true + + /estree-walker/1.0.1: + resolution: {integrity: sha1-MbxdYSyWtwQQa0d+bdXYqhOMtwA=, tarball: estree-walker/download/estree-walker-1.0.1.tgz} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=, tarball: estree-walker/download/estree-walker-2.0.2.tgz} + + /esutils/2.0.3: + resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, tarball: esutils/download/esutils-2.0.3.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /etag/1.8.1: + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=, tarball: etag/download/etag-1.8.1.tgz} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3/4.0.7: + resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=, tarball: eventemitter3/download/eventemitter3-4.0.7.tgz} + dev: true + + /execall/2.0.0: + resolution: {integrity: sha1-FqBrX+UJnffQC+XZwG7s3tFmO0U=, tarball: execall/download/execall-2.0.0.tgz} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: true + + /expand-brackets/2.1.4: + resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=, tarball: expand-brackets/download/expand-brackets-2.1.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + debug: registry.nlark.com/debug/2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + to-regex: 3.0.2 + dev: true + + /expand-tilde/2.0.2: + resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=, tarball: expand-tilde/download/expand-tilde-2.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /extend-shallow/2.0.1: + resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=, tarball: extend-shallow/download/extend-shallow-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow/3.0.2: + resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=, tarball: extend-shallow/download/extend-shallow-3.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /external-editor/3.1.0: + resolution: {integrity: sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=, tarball: external-editor/download/external-editor-3.1.0.tgz} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: registry.nlark.com/iconv-lite/0.4.24 + tmp: 0.0.33 + dev: true + + /extglob/2.0.4: + resolution: {integrity: sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=, tarball: extglob/download/extglob-2.0.4.tgz} + engines: {node: '>=0.10.0'} + 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.2 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + to-regex: 3.0.2 + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=, tarball: extsprintf/download/extsprintf-1.3.0.tgz} + engines: {'0': node >=0.6.0} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=, tarball: fast-deep-equal/download/fast-deep-equal-3.1.3.tgz} + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=, tarball: fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=, tarball: fast-levenshtein/download/fast-levenshtein-2.0.6.tgz} + dev: true + + /fastest-levenshtein/1.0.12: + resolution: {integrity: sha1-mZD306iMxan/0fF0V0UlFwDUl+I=, tarball: fastest-levenshtein/download/fastest-levenshtein-1.0.12.tgz} + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=, tarball: file-entry-cache/download/file-entry-cache-6.0.1.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /filelist/1.0.2: + resolution: {integrity: sha1-gCAvIUYtTRwuIUEZsYB8G8A4Dls=, tarball: filelist/download/filelist-1.0.2.tgz} + dependencies: + minimatch: 3.0.4 + dev: true + + /fill-range/4.0.0: + resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=, tarball: fill-range/download/fill-range-4.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha1-GRmmp8df44ssfHflGYU12prN2kA=, tarball: fill-range/download/fill-range-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler/1.1.2: + resolution: {integrity: sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=, tarball: finalhandler/download/finalhandler-1.1.2.tgz} + engines: {node: '>= 0.8'} + dependencies: + debug: registry.nlark.com/debug/2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: registry.nlark.com/parseurl/1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=, tarball: find-up/download/find-up-4.1.0.tgz} + engines: {node: '>=8'} + dependencies: + locate-path: registry.nlark.com/locate-path/5.0.0 + path-exists: registry.nlark.com/path-exists/4.0.0 + dev: true + + /findup-sync/2.0.0: + resolution: {integrity: sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=, tarball: findup-sync/download/findup-sync-2.0.0.tgz} + engines: {node: '>= 0.10'} + dependencies: + detect-file: 1.0.0 + is-glob: 3.1.0 + micromatch: 3.1.10 + resolve-dir: 1.0.1 + dev: true + + /fined/1.2.0: + resolution: {integrity: sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=, tarball: fined/download/fined-1.2.0.tgz} + engines: {node: '>= 0.10'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 2.0.4 + object.defaults: registry.nlark.com/object.defaults/1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=, tarball: flat-cache/download/flat-cache-3.0.4.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.nlark.com/flatted/3.2.2 + rimraf: 3.0.2 + dev: true + + /for-in/1.0.2: + resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=, tarball: for-in/download/for-in-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /for-own/1.0.0: + resolution: {integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=, tarball: for-own/download/for-own-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /forever-agent/0.6.1: + resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=, tarball: forever-agent/download/forever-agent-0.6.1.tgz} + dev: true + + /form-data/2.3.3: + resolution: {integrity: sha1-3M5SwF9kTymManq5Nr1yTO/786Y=, tarball: form-data/download/form-data-2.3.3.tgz} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: registry.nlark.com/mime-types/2.1.32 + dev: true + + /fragment-cache/0.2.1: + resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=, tarball: fragment-cache/download/fragment-cache-0.2.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=, tarball: fs.realpath/download/fs.realpath-1.0.0.tgz} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=, tarball: fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=, tarball: function-bind/download/function-bind-1.1.1.tgz} + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=, tarball: functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz} + dev: true + + /gaze/1.1.3: + resolution: {integrity: sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=, tarball: gaze/download/gaze-1.1.3.tgz} + engines: {node: '>= 4.0.0'} + dependencies: + globule: registry.nlark.com/globule/1.3.3 + dev: true + + /generic-names/2.0.1: + resolution: {integrity: sha1-+KN46tLMqno08DF7BVVIMq5BuHI=, tarball: generic-names/download/generic-names-2.0.1.tgz} + dependencies: + loader-utils: 1.4.0 + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=, tarball: gensync/download/gensync-1.0.0-beta.2.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=, tarball: get-intrinsic/download/get-intrinsic-1.1.1.tgz} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + dev: true + + /get-stdin/8.0.0: + resolution: {integrity: sha1-y61qc/63X27rIrqeAfiaooqpelM=, tarball: get-stdin/download/get-stdin-8.0.0.tgz?cache=0&sync_timestamp=1618559266325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-8.0.0.tgz} + engines: {node: '>=10'} + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=, tarball: get-stream/download/get-stream-6.0.1.tgz} + engines: {node: '>=10'} + dev: true + + /get-value/2.0.6: + resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=, tarball: get-value/download/get-value-2.0.6.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=, tarball: getpass/download/getpass-0.1.7.tgz} + dependencies: + assert-plus: 1.0.0 + dev: true + + /global-modules/1.0.0: + resolution: {integrity: sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=, tarball: global-modules/download/global-modules-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-modules/2.0.0: + resolution: {integrity: sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=, tarball: global-modules/download/global-modules-2.0.0.tgz} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix/1.0.2: + resolution: {integrity: sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=, tarball: global-prefix/download/global-prefix-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /global-prefix/3.0.0: + resolution: {integrity: sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=, tarball: global-prefix/download/global-prefix-3.0.0.tgz} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globjoin/0.1.4: + resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=, tarball: globjoin/download/globjoin-0.1.4.tgz} + dev: true + + /gonzales-pe/4.3.0: + resolution: {integrity: sha1-/p3sXzxVfurQn/hoxlgmvlTQZ7M=, tarball: gonzales-pe/download/gonzales-pe-4.3.0.tgz} + engines: {node: '>=0.6.0'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /handlebars/4.7.7: + resolution: {integrity: sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=, tarball: handlebars/download/handlebars-4.7.7.tgz} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.5 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: registry.nlark.com/uglify-js/3.14.1 + dev: true + + /har-schema/2.0.0: + resolution: {integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=, tarball: har-schema/download/har-schema-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /har-validator/5.1.5: + resolution: {integrity: sha1-HwgDufjLIMD6E4It8ezds2veHv0=, tarball: har-validator/download/har-validator-5.1.5.tgz} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: registry.nlark.com/ajv/6.12.6 + har-schema: 2.0.0 + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha1-HG7aXBaFxjlCdm15u0Cudzzs2IM=, tarball: hard-rejection/download/hard-rejection-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /has-ansi/2.0.0: + resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=, tarball: has-ansi/download/has-ansi-2.0.0.tgz?cache=0&sync_timestamp=1618558151426&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-symbols/1.0.2: + resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=, tarball: has-symbols/download/has-symbols-1.0.2.tgz} + engines: {node: '>= 0.4'} + dev: true + + /has-value/0.3.1: + resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=, tarball: has-value/download/has-value-0.3.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value/1.0.0: + resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=, tarball: has-value/download/has-value-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values/0.1.4: + resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=, tarball: has-values/download/has-values-0.1.4.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /has-values/1.0.0: + resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=, tarball: has-values/download/has-values-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has/1.0.3: + resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=, tarball: has/download/has-1.0.3.tgz} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hash-sum/2.0.0: + resolution: {integrity: sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=, tarball: hash-sum/download/hash-sum-2.0.0.tgz} + dev: true + + /he/1.2.0: + resolution: {integrity: sha1-hK5l+n6vsWX922FWauFLrwVmTw8=, tarball: he/download/he-1.2.0.tgz} + hasBin: true + dev: true + + /header-case/1.0.1: + resolution: {integrity: sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=, tarball: header-case/download/header-case-1.0.1.tgz} + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + dev: true + + /homedir-polyfill/1.0.3: + resolution: {integrity: sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=, tarball: homedir-polyfill/download/homedir-polyfill-1.0.3.tgz} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=, tarball: hosted-git-info/download/hosted-git-info-2.8.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.9.tgz} + dev: true + + /hosted-git-info/4.0.2: + resolution: {integrity: sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=, tarball: hosted-git-info/download/hosted-git-info-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-4.0.2.tgz} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-minifier-terser/5.1.1: + resolution: {integrity: sha1-ki6W8fO7YIMsJjS3mIQJY4mx8FQ=, tarball: html-minifier-terser/download/html-minifier-terser-5.1.1.tgz} + engines: {node: '>=6'} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: registry.nlark.com/clean-css/4.2.3 + commander: registry.nlark.com/commander/4.1.1 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: registry.nlark.com/terser/4.8.0 + dev: true + + /html-tags/3.1.0: + resolution: {integrity: sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=, tarball: html-tags/download/html-tags-3.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /http-proxy/1.18.1: + resolution: {integrity: sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=, tarball: http-proxy/download/http-proxy-1.18.1.tgz} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: registry.nlark.com/follow-redirects/1.14.2 + requires-port: 1.0.0 + dev: true + + /http-signature/1.2.0: + resolution: {integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=, tarball: http-signature/download/http-signature-1.2.0.tgz} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.1 + sshpk: 1.16.1 + dev: true + + /icss-replace-symbols/1.1.0: + resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=, tarball: icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz} + dev: true + + /icss-utils/5.1.0_postcss@8.3.6: + resolution: {integrity: sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=, tarball: icss-utils/download/icss-utils-5.1.0.tgz} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.nlark.com/postcss/8.3.6 + dev: true + + /ignore/4.0.6: + resolution: {integrity: sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=, tarball: ignore/download/ignore-4.0.6.tgz} + engines: {node: '>= 4'} + dev: true + + /ignore/5.1.8: + resolution: {integrity: sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=, tarball: ignore/download/ignore-5.1.8.tgz} + engines: {node: '>= 4'} + dev: true + + /image-size/0.5.5: + resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=, tarball: image-size/download/image-size-0.5.5.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha1-NxYsJfy566oublPVtNiM4X2eDCs=, tarball: import-fresh/download/import-fresh-3.3.0.tgz} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy/4.0.0: + resolution: {integrity: sha1-6OtidIOgpD2jwD8+NVSL5csMwVM=, tarball: import-lazy/download/import-lazy-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=, tarball: imurmurhash/download/imurmurhash-0.1.4.tgz} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=, tarball: indent-string/download/indent-string-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=, tarball: inflight/download/inflight-1.0.6.tgz} + dependencies: + once: 1.4.0 + wrappy: registry.nlark.com/wrappy/1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=, tarball: inherits/download/inherits-2.0.4.tgz} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=, tarball: ini/download/ini-1.3.8.tgz} + dev: true + + /interpret/1.4.0: + resolution: {integrity: sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=, tarball: interpret/download/interpret-1.4.0.tgz} + engines: {node: '>= 0.10'} + dev: true + + /is-absolute/1.0.0: + resolution: {integrity: sha1-OV4a6EsR8mrReV5zwXN45IowFXY=, tarball: is-absolute/download/is-absolute-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: registry.nlark.com/is-relative/1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor/0.1.6: + resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=, tarball: is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor/1.0.0: + resolution: {integrity: sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=, tarball: is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical/1.0.4: + resolution: {integrity: sha1-nn1rlJFr4iFTdF0YTCmMv5hqaG0=, tarball: is-alphabetical/download/is-alphabetical-1.0.4.tgz} + dev: true + + /is-alphanumerical/1.0.4: + resolution: {integrity: sha1-frmiQx+FX2se8aeOMm31FWlsTb8=, tarball: is-alphanumerical/download/is-alphanumerical-1.0.4.tgz} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=, tarball: is-arrayish/download/is-arrayish-0.2.1.tgz} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=, tarball: is-binary-path/download/is-binary-path-2.1.0.tgz} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-buffer/1.1.6: + resolution: {integrity: sha1-76ouqdqg16suoTqXsritUf776L4=, tarball: is-buffer/download/is-buffer-1.1.6.tgz} + dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=, tarball: is-buffer/download/is-buffer-2.0.5.tgz} + engines: {node: '>=4'} + dev: true + + /is-data-descriptor/0.1.4: + resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=, tarball: is-data-descriptor/download/is-data-descriptor-0.1.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor/1.0.0: + resolution: {integrity: sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=, tarball: is-data-descriptor/download/is-data-descriptor-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-decimal/1.0.4: + resolution: {integrity: sha1-ZaOllYocW2OnBuGzM9fNn2MNP6U=, tarball: is-decimal/download/is-decimal-1.0.4.tgz} + dev: true + + /is-descriptor/0.1.6: + resolution: {integrity: sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=, tarball: is-descriptor/download/is-descriptor-0.1.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor/1.0.2: + resolution: {integrity: sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=, tarball: is-descriptor/download/is-descriptor-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-extendable/0.1.1: + resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=, tarball: is-extendable/download/is-extendable-0.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable/1.0.1: + resolution: {integrity: sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=, tarball: is-extendable/download/is-extendable-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=, tarball: is-extglob/download/is-extglob-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=, tarball: is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-glob/3.1.0: + resolution: {integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=, tarball: is-glob/download/is-glob-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-glob/4.0.1: + resolution: {integrity: sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=, tarball: is-glob/download/is-glob-4.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal/1.0.4: + resolution: {integrity: sha1-zDXJdYjaS9Saju3WvECC1E3LI6c=, tarball: is-hexadecimal/download/is-hexadecimal-1.0.4.tgz} + dev: true + + /is-module/1.0.0: + resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=, tarball: is-module/download/is-module-1.0.0.tgz} + dev: true + + /is-number/3.0.0: + resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=, tarball: is-number/download/is-number-3.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=, tarball: is-number/download/is-number-7.0.0.tgz} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj/1.0.1: + resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=, tarball: is-obj/download/is-obj-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=, tarball: is-plain-obj/download/is-plain-obj-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/2.1.0: + resolution: {integrity: sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=, tarball: is-plain-obj/download/is-plain-obj-2.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-plain-object/2.0.4: + resolution: {integrity: sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=, tarball: is-plain-object/download/is-plain-object-2.0.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-regexp/1.0.0: + resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=, tarball: is-regexp/download/is-regexp-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-regexp/2.1.0: + resolution: {integrity: sha1-zXNKVoZOI7lWv058ZsOWpMCyLC0=, tarball: is-regexp/download/is-regexp-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=, tarball: is-typedarray/download/is-typedarray-1.0.0.tgz} + dev: true + + /is-unc-path/1.0.0: + resolution: {integrity: sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=, tarball: is-unc-path/download/is-unc-path-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-upper-case/1.1.2: + resolution: {integrity: sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=, tarball: is-upper-case/download/is-upper-case-1.1.2.tgz} + dependencies: + upper-case: 1.1.3 + dev: true + + /is-utf8/0.2.1: + resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=, tarball: is-utf8/download/is-utf8-0.2.1.tgz} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=, tarball: is-windows/download/is-windows-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, tarball: isexe/download/isexe-2.0.0.tgz} + dev: true + + /isobject/2.1.0: + resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=, tarball: isobject/download/isobject-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isarray: registry.nlark.com/isarray/1.0.0 + dev: true + + /isobject/3.0.1: + resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=, tarball: isobject/download/isobject-3.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /isstream/0.1.2: + resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=, tarball: isstream/download/isstream-0.1.2.tgz} + dev: true + + /jake/10.8.2: + resolution: {integrity: sha1-68nehVgWCmbYLQ6txqLlj7xQCns=, tarball: jake/download/jake-10.8.2.tgz} + hasBin: true + dependencies: + async: registry.nlark.com/async/0.9.2 + chalk: registry.nlark.com/chalk/2.4.2 + filelist: 1.0.2 + minimatch: 3.0.4 + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=, tarball: js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618447696130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /jsbn/0.1.1: + resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=, tarball: jsbn/download/jsbn-0.1.1.tgz} + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=, tarball: jsesc/download/jsesc-2.5.2.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=, tarball: json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=, tarball: json-schema-traverse/download/json-schema-traverse-0.4.1.tgz} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=, tarball: json-schema-traverse/download/json-schema-traverse-1.0.0.tgz} + dev: true + + /json-schema/0.2.3: + resolution: {integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=, tarball: json-schema/download/json-schema-0.2.3.tgz} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=, tarball: json-stringify-safe/download/json-stringify-safe-5.0.1.tgz} + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=, tarball: jsonfile/download/jsonfile-6.1.0.tgz} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: registry.nlark.com/graceful-fs/4.2.8 + dev: true + + /jsprim/1.4.1: + resolution: {integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=, tarball: jsprim/download/jsprim-1.4.1.tgz} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.2.3 + verror: 1.10.0 + dev: true + + /kind-of/3.2.2: + resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=, tarball: kind-of/download/kind-of-3.2.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of/4.0.0: + resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=, tarball: kind-of/download/kind-of-4.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of/5.1.0: + resolution: {integrity: sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=, tarball: kind-of/download/kind-of-5.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=, tarball: kind-of/download/kind-of-6.0.3.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /levn/0.4.1: + resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=, tarball: levn/download/levn-0.4.1.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lines-and-columns/1.1.6: + resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=, tarball: lines-and-columns/download/lines-and-columns-1.1.6.tgz} + dev: true + + /loader-utils/1.4.0: + resolution: {integrity: sha1-xXm140yzSxp07cbB+za/o3HVphM=, tarball: loader-utils/download/loader-utils-1.4.0.tgz} + engines: {node: '>=4.0.0'} + dependencies: + big.js: registry.nlark.com/big.js/5.2.2 + emojis-list: 3.0.0 + json5: registry.nlark.com/json5/1.0.1 + dev: true + + /lodash.camelcase/4.3.0: + resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=, tarball: lodash.camelcase/download/lodash.camelcase-4.3.0.tgz} + dev: true + + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=, tarball: lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz} + dev: true + + /lodash.get/4.4.2: + resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=, tarball: lodash.get/download/lodash.get-4.4.2.tgz} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=, tarball: lodash.merge/download/lodash.merge-4.6.2.tgz} + dev: true + + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=, tarball: lodash.truncate/download/lodash.truncate-4.4.2.tgz} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=, tarball: lodash/download/lodash-4.17.21.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz} + + /log-symbols/2.2.0: + resolution: {integrity: sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=, tarball: log-symbols/download/log-symbols-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-2.2.0.tgz} + engines: {node: '>=4'} + dependencies: + chalk: registry.nlark.com/chalk/2.4.2 + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha1-P727lbRoOsn8eFER55LlWNSr1QM=, tarball: log-symbols/download/log-symbols-4.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + chalk: registry.nlark.com/chalk/4.1.2 + is-unicode-supported: registry.nlark.com/is-unicode-supported/0.1.0 + dev: true + + /longest-streak/2.0.4: + resolution: {integrity: sha1-uFmZV9pbXatk3uP+MW+ndFl9kOQ=, tarball: longest-streak/download/longest-streak-2.0.4.tgz} + dev: true + + /lower-case-first/1.0.2: + resolution: {integrity: sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=, tarball: lower-case-first/download/lower-case-first-1.0.2.tgz} + dependencies: + lower-case: 1.1.4 + dev: true + + /lower-case/1.1.4: + resolution: {integrity: sha1-miyr0bno4K6ZOkv31YdcOcQujqw=, tarball: lower-case/download/lower-case-1.1.4.tgz} + dev: true + + /lower-case/2.0.2: + resolution: {integrity: sha1-b6I3xj29xKgsoP2ILkci3F5jTig=, tarball: lower-case/download/lower-case-2.0.2.tgz} + dependencies: + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /lru-cache/5.1.1: + resolution: {integrity: sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=, tarball: lru-cache/download/lru-cache-5.1.1.tgz} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=, tarball: lru-cache/download/lru-cache-6.0.0.tgz} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-iterator/1.0.1: + resolution: {integrity: sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=, tarball: make-iterator/download/make-iterator-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /map-cache/0.2.2: + resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=, tarball: map-cache/download/map-cache-0.2.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=, tarball: map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617772368805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.2.1: + resolution: {integrity: sha1-5Oo5nbyXmuc1yDyGPdMb3zZCd7c=, tarball: map-obj/download/map-obj-4.2.1.tgz?cache=0&sync_timestamp=1617772368805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-4.2.1.tgz} + engines: {node: '>=8'} + dev: true + + /map-visit/1.0.0: + resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=, tarball: map-visit/download/map-visit-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /mathml-tag-names/2.1.3: + resolution: {integrity: sha1-TdrdZzCOeAzxakdoWHjuJ7c2oKM=, tarball: mathml-tag-names/download/mathml-tag-names-2.1.3.tgz} + dev: true + + /merge-options/1.0.1: + resolution: {integrity: sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=, tarball: merge-options/download/merge-options-1.0.1.tgz} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-source-map/1.1.0: + resolution: {integrity: sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=, tarball: merge-source-map/download/merge-source-map-1.1.0.tgz} + dependencies: + source-map: 0.6.1 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=, tarball: merge-stream/download/merge-stream-2.0.0.tgz} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=, tarball: merge2/download/merge2-1.4.1.tgz} + engines: {node: '>= 8'} + dev: true + + /micromatch/3.1.0: + resolution: {integrity: sha1-UQLU6vILaZfWAI46z+HESj+oFeI=, tarball: micromatch/download/micromatch-3.1.0.tgz?cache=0&sync_timestamp=1618054885525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + to-regex: 3.0.2 + dev: true + + /micromatch/3.1.10: + resolution: {integrity: sha1-cIWbyVyYQJUvNZoGij/En57PrCM=, tarball: micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054885525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + to-regex: 3.0.2 + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=, tarball: micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054885525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: registry.nlark.com/picomatch/2.3.0 + dev: true + + /mime/1.6.0: + resolution: {integrity: sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=, tarball: mime/download/mime-1.6.0.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-fn/1.2.0: + resolution: {integrity: sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=, tarball: mimic-fn/download/mimic-fn-1.2.0.tgz} + engines: {node: '>=4'} + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=, tarball: mimic-fn/download/mimic-fn-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=, tarball: min-indent/download/min-indent-1.0.1.tgz} + engines: {node: '>=4'} + dev: true + + /minimatch/3.0.4: + resolution: {integrity: sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=, tarball: minimatch/download/minimatch-3.0.4.tgz} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=, tarball: minimist-options/download/minimist-options-4.1.0.tgz} + engines: {node: '>= 6'} + dependencies: + arrify: registry.nlark.com/arrify/1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=, tarball: minimist/download/minimist-1.2.5.tgz} + dev: true + + /mixin-deep/1.3.2: + resolution: {integrity: sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=, tarball: mixin-deep/download/mixin-deep-1.3.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp/0.5.5: + resolution: {integrity: sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=, tarball: mkdirp/download/mkdirp-0.5.5.tgz} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha1-PrXtYmInVteaXw4qIh3+utdcL34=, tarball: mkdirp/download/mkdirp-1.0.4.tgz} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mockjs/1.1.0: + resolution: {integrity: sha1-5qDDeOkZBtuv8gkRzAJzs8fXWwY=, tarball: mockjs/download/mockjs-1.1.0.tgz} + hasBin: true + dependencies: + commander: registry.nlark.com/commander/8.1.0 + dev: false + + /mute-stream/0.0.8: + resolution: {integrity: sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=, tarball: mute-stream/download/mute-stream-0.0.8.tgz} + dev: true + + /nanomatch/1.2.13: + resolution: {integrity: sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=, tarball: nanomatch/download/nanomatch-1.2.13.tgz} + engines: {node: '>=0.10.0'} + 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.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: registry.nlark.com/snapdragon/0.8.2 + to-regex: 3.0.2 + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=, tarball: natural-compare/download/natural-compare-1.4.0.tgz} + dev: true + + /neo-async/2.6.2: + resolution: {integrity: sha1-tKr7k+OustgXTKU88WOrfXMIMF8=, tarball: neo-async/download/neo-async-2.6.2.tgz} + dev: true + + /no-case/2.3.2: + resolution: {integrity: sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=, tarball: no-case/download/no-case-2.3.2.tgz} + dependencies: + lower-case: 1.1.4 + dev: true + + /no-case/3.0.4: + resolution: {integrity: sha1-02H9XJgA9VhVGoNp/A3NRmK2Ek0=, tarball: no-case/download/no-case-3.0.4.tgz} + dependencies: + lower-case: 2.0.2 + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=, tarball: normalize-path/download/normalize-path-3.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range/0.1.2: + resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=, tarball: normalize-range/download/normalize-range-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-selector/0.2.0: + resolution: {integrity: sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=, tarball: normalize-selector/download/normalize-selector-0.2.0.tgz} + dev: true + + /normalize-wheel/1.0.1: + resolution: {integrity: sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=, tarball: normalize-wheel/download/normalize-wheel-1.0.1.tgz} + dev: false + + /npm-run-path/4.0.1: + resolution: {integrity: sha1-t+zR5e1T2o43pV4cImnguX7XSOo=, tarball: npm-run-path/download/npm-run-path-4.0.1.tgz} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /nprogress/0.2.0: + resolution: {integrity: sha1-y480xTIT2JVyP8urkH6UIq28r7E=, tarball: nprogress/download/nprogress-0.2.0.tgz} + dev: false + + /nth-check/2.0.0: + resolution: {integrity: sha1-G7T22scAcvwxPoyc0UF7UHTAoSU=, tarball: nth-check/download/nth-check-2.0.0.tgz} + dependencies: + boolbase: 1.0.0 + dev: true + + /num2fraction/1.2.2: + resolution: {integrity: sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=, tarball: num2fraction/download/num2fraction-1.2.2.tgz} + dev: true + + /oauth-sign/0.9.0: + resolution: {integrity: sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=, tarball: oauth-sign/download/oauth-sign-0.9.0.tgz} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=, tarball: object-assign/download/object-assign-4.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy/0.1.0: + resolution: {integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=, tarball: object-copy/download/object-copy-0.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-visit/1.0.1: + resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=, tarball: object-visit/download/object-visit-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.map/1.0.1: + resolution: {integrity: sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=, tarball: object.map/download/object.map-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.pick/1.3.0: + resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=, tarball: object.pick/download/object.pick-1.3.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /on-finished/2.3.0: + resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=, tarball: on-finished/download/on-finished-2.3.0.tgz} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=, tarball: once/download/once-1.4.0.tgz} + dependencies: + wrappy: registry.nlark.com/wrappy/1.0.2 + dev: true + + /onetime/2.0.1: + resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=, tarball: onetime/download/onetime-2.0.1.tgz} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=, tarball: onetime/download/onetime-5.1.2.tgz} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /opener/1.5.2: + resolution: {integrity: sha1-XTfh81B3udysQwE3InGv3rKhNZg=, tarball: opener/download/opener-1.5.2.tgz} + hasBin: true + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=, tarball: optionator/download/optionator-0.9.1.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /os-tmpdir/1.0.2: + resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=, tarball: os-tmpdir/download/os-tmpdir-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=, tarball: p-try/download/p-try-2.2.0.tgz} + engines: {node: '>=6'} + dev: true + + /param-case/2.1.1: + resolution: {integrity: sha1-35T9jPZTHs915r75oIWPvHK+Ikc=, tarball: param-case/download/param-case-2.1.1.tgz} + dependencies: + no-case: 2.3.2 + dev: true + + /param-case/3.0.4: + resolution: {integrity: sha1-fRf+SqEr3jTUp32RrPtiGcqtAcU=, tarball: param-case/download/param-case-3.0.4.tgz} + dependencies: + dot-case: 3.0.4 + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=, tarball: parent-module/download/parent-module-1.0.1.tgz} + engines: {node: '>=6'} + dependencies: + callsites: registry.nlark.com/callsites/3.1.0 + dev: true + + /parse-entities/2.0.0: + resolution: {integrity: sha1-U8brW5MUofTsmfoP33zgHs2gy+g=, tarball: parse-entities/download/parse-entities-2.0.0.tgz} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-filepath/1.0.2: + resolution: {integrity: sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=, tarball: parse-filepath/download/parse-filepath-1.0.2.tgz} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=, tarball: parse-json/download/parse-json-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.nlark.com/@babel/code-frame/7.14.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.1.6 + dev: true + + /parse-passwd/1.0.0: + resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=, tarball: parse-passwd/download/parse-passwd-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /pascal-case/2.0.1: + resolution: {integrity: sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=, tarball: pascal-case/download/pascal-case-2.0.1.tgz} + dependencies: + camel-case: 3.0.0 + upper-case-first: 1.1.2 + dev: true + + /pascal-case/3.1.2: + resolution: {integrity: sha1-tI4O8rmOIF58Ha50fQsVCCN2YOs=, tarball: pascal-case/download/pascal-case-3.1.2.tgz} + dependencies: + no-case: 3.0.4 + tslib: registry.nlark.com/tslib/2.3.1 + dev: true + + /pascalcase/0.1.1: + resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=, tarball: pascalcase/download/pascalcase-0.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /path-browserify/1.0.1: + resolution: {integrity: sha1-2YRUqcN1PVeQhg8W9ohnueRr4f0=, tarball: path-browserify/download/path-browserify-1.0.1.tgz} + dev: false + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=, tarball: path-is-absolute/download/path-is-absolute-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, tarball: path-key/download/path-key-3.1.1.tgz} + engines: {node: '>=8'} + dev: true + + /path-root-regex/0.1.2: + resolution: {integrity: sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=, tarball: path-root-regex/download/path-root-regex-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /path-root/0.1.1: + resolution: {integrity: sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=, tarball: path-root/download/path-root-0.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-to-regexp/6.2.0: + resolution: {integrity: sha1-97OAMzYQTDRoia3s5hRmkjBkXzg=, tarball: path-to-regexp/download/path-to-regexp-6.2.0.tgz} + + /path-type/4.0.0: + resolution: {integrity: sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=, tarball: path-type/download/path-type-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /performance-now/2.1.0: + resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=, tarball: performance-now/download/performance-now-2.1.0.tgz} + dev: true + + /please-upgrade-node/3.2.0: + resolution: {integrity: sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=, tarball: please-upgrade-node/download/please-upgrade-node-3.2.0.tgz} + dependencies: + semver-compare: 1.0.0 + dev: true + + /plop/2.7.4: + resolution: {integrity: sha1-g1KArvNUEQIGO3WPURbM6Jnhxys=, tarball: plop/download/plop-2.7.4.tgz} + engines: {node: '>=8.9.4'} + hasBin: true + dependencies: + '@types/liftoff': registry.nlark.com/@types/liftoff/2.5.1 + chalk: registry.nlark.com/chalk/1.1.3 + interpret: 1.4.0 + liftoff: registry.nlark.com/liftoff/2.5.0 + minimist: 1.2.5 + node-plop: registry.nlark.com/node-plop/0.26.2 + ora: registry.nlark.com/ora/3.4.0 + v8flags: registry.nlark.com/v8flags/2.1.1 + dev: true + + /portfinder/1.0.28: + resolution: {integrity: sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=, tarball: portfinder/download/portfinder-1.0.28.tgz} + engines: {node: '>= 0.12.0'} + dependencies: + async: registry.nlark.com/async/2.6.3 + debug: registry.nlark.com/debug/3.2.7 + mkdirp: 0.5.5 + dev: true + + /posix-character-classes/0.1.1: + resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=, tarball: posix-character-classes/download/posix-character-classes-0.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-html/0.36.0_2b33a41d320e3e2012e5b3b0fadc703b: + resolution: {integrity: sha1-tAkT+U6qzCRT/TChMnrW7h+IsgQ=, tarball: postcss-html/download/postcss-html-0.36.0.tgz} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + dependencies: + htmlparser2: registry.nlark.com/htmlparser2/3.10.1 + postcss: registry.nlark.com/postcss/7.0.36 + postcss-syntax: 0.36.2_postcss@7.0.36 + dev: true + + /postcss-media-query-parser/0.2.3: + resolution: {integrity: sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=, tarball: postcss-media-query-parser/download/postcss-media-query-parser-0.2.3.tgz} + dev: true + + /postcss-modules-extract-imports/3.0.0_postcss@8.3.6: + resolution: {integrity: sha1-zaHwR8CugMl9vijD52pDuIAldB0=, tarball: postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.nlark.com/postcss/8.3.6 + dev: true + + /postcss-modules-local-by-default/4.0.0_postcss@8.3.6: + resolution: {integrity: sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=, tarball: postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.3.6 + postcss: registry.nlark.com/postcss/8.3.6 + postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + postcss-value-parser: 4.1.0 + dev: true + + /postcss-modules-values/4.0.0_postcss@8.3.6: + resolution: {integrity: sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=, tarball: postcss-modules-values/download/postcss-modules-values-4.0.0.tgz} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.3.6 + postcss: registry.nlark.com/postcss/8.3.6 + dev: true + + /postcss-resolve-nested-selector/0.1.1: + resolution: {integrity: sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=, tarball: postcss-resolve-nested-selector/download/postcss-resolve-nested-selector-0.1.1.tgz} + dev: true + + /postcss-syntax/0.36.2_postcss@7.0.36: + resolution: {integrity: sha1-8IV4x9lYNFdOVZOoLfv6ivrjtRw=, tarball: postcss-syntax/download/postcss-syntax-0.36.2.tgz} + peerDependencies: + postcss: '>=5.0.0' + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + /postcss-value-parser/4.1.0: + resolution: {integrity: sha1-RD9qIM7WSBor2k+oUypuVdeJoss=, tarball: postcss-value-parser/download/postcss-value-parser-4.1.0.tgz} + dev: true + + /posthtml-svg-mode/1.0.3: + resolution: {integrity: sha1-q9VU+s6BIjyrDLNn4Y5O/SpOdLA=, tarball: posthtml-svg-mode/download/posthtml-svg-mode-1.0.3.tgz} + dependencies: + merge-options: 1.0.1 + posthtml: registry.nlark.com/posthtml/0.9.2 + posthtml-parser: registry.nlark.com/posthtml-parser/0.2.1 + posthtml-render: registry.nlark.com/posthtml-render/1.4.0 + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=, tarball: prelude-ls/download/prelude-ls-1.2.1.tgz} + engines: {node: '>= 0.8.0'} + dev: true + + /process-nextick-args/1.0.7: + resolution: {integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=, tarball: process-nextick-args/download/process-nextick-args-1.0.7.tgz} + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha1-eCDZsWEgzFXKmud5JoCufbptf+I=, tarball: process-nextick-args/download/process-nextick-args-2.0.1.tgz} + dev: true + + /progress/2.0.3: + resolution: {integrity: sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=, tarball: progress/download/progress-2.0.3.tgz?cache=0&sync_timestamp=1615986628587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz} + engines: {node: '>=0.4.0'} + dev: true + + /psl/1.8.0: + resolution: {integrity: sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=, tarball: psl/download/psl-1.8.0.tgz} + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha1-tYsBCsQMIsVldhbI0sLALHv0eew=, tarball: punycode/download/punycode-2.1.1.tgz} + engines: {node: '>=6'} + dev: true + + /qs/6.10.1: + resolution: {integrity: sha1-STFIL6jWR6Wqt5nFJx0hM7mB+2o=, tarball: qs/download/qs-6.10.1.tgz?cache=0&sync_timestamp=1616385641529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.10.1.tgz} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /qs/6.5.2: + resolution: {integrity: sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=, tarball: qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385641529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz} + engines: {node: '>=0.6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha1-SSkii7xyTfrEPg77BYyve2z7YkM=, tarball: queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616392663793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz} + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=, tarball: read-pkg-up/download/read-pkg-up-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: registry.nlark.com/read-pkg/5.2.0 + type-fest: registry.nlark.com/type-fest/0.8.1 + dev: true + + /readable-stream/1.0.34: + resolution: {integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=, tarball: readable-stream/download/readable-stream-1.0.34.tgz} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: registry.nlark.com/isarray/0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream/1.1.14: + resolution: {integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk=, tarball: readable-stream/download/readable-stream-1.1.14.tgz} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: registry.nlark.com/isarray/0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream/2.0.6: + resolution: {integrity: sha1-j5A0HmilPMySh4jaz80Rs265t44=, tarball: readable-stream/download/readable-stream-2.0.6.tgz} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: registry.nlark.com/isarray/1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/2.3.7: + resolution: {integrity: sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=, tarball: readable-stream/download/readable-stream-2.3.7.tgz} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: registry.nlark.com/isarray/1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha1-M3u9o63AcGvT4CRCaihtS0sskZg=, tarball: readable-stream/download/readable-stream-3.6.0.tgz} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=, tarball: readdirp/download/readdirp-3.6.0.tgz?cache=0&sync_timestamp=1615719701333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.nlark.com/picomatch/2.3.0 + dev: true + + /regex-not/1.0.2: + resolution: {integrity: sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=, tarball: regex-not/download/regex-not-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /relateurl/0.2.7: + resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=, tarball: relateurl/download/relateurl-0.2.7.tgz} + engines: {node: '>= 0.10'} + dev: true + + /repeat-element/1.1.4: + resolution: {integrity: sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=, tarball: repeat-element/download/repeat-element-1.1.4.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string/1.6.1: + resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=, tarball: repeat-string/download/repeat-string-1.6.1.tgz} + engines: {node: '>=0.10'} + dev: true + + /replace-ext/0.0.1: + resolution: {integrity: sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=, tarball: replace-ext/download/replace-ext-0.0.1.tgz} + engines: {node: '>= 0.4'} + dev: true + + /request/2.88.2: + resolution: {integrity: sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=, tarball: request/download/request-2.88.2.tgz} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: registry.nlark.com/extend/3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: registry.nlark.com/mime-types/2.1.32 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.2 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: registry.nlark.com/uuid/3.4.0 + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=, tarball: require-from-string/download/require-from-string-2.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port/1.0.0: + resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=, tarball: requires-port/download/requires-port-1.0.0.tgz} + dev: true + + /resize-observer-polyfill/1.5.1: + resolution: {integrity: sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=, tarball: resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz} + dev: false + + /resolve-dir/1.0.1: + resolution: {integrity: sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=, tarball: resolve-dir/download/resolve-dir-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=, tarball: resolve-from/download/resolve-from-4.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=, tarball: resolve-from/download/resolve-from-5.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /resolve-url/0.2.1: + resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=, tarball: resolve-url/download/resolve-url-0.2.1.tgz} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve/1.20.0: + resolution: {integrity: sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=, tarball: resolve/download/resolve-1.20.0.tgz} + dependencies: + is-core-module: registry.nlark.com/is-core-module/2.6.0 + path-parse: registry.nlark.com/path-parse/1.0.7 + dev: true + + /ret/0.1.15: + resolution: {integrity: sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=, tarball: ret/download/ret-0.1.15.tgz} + engines: {node: '>=0.12'} + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=, tarball: reusify/download/reusify-1.0.4.tgz} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=, tarball: rimraf/download/rimraf-3.0.2.tgz} + hasBin: true + dependencies: + glob: registry.nlark.com/glob/7.1.7 + dev: true + + /run-async/2.4.1: + resolution: {integrity: sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=, tarball: run-async/download/run-async-2.4.1.tgz} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=, tarball: run-parallel/download/run-parallel-1.2.0.tgz} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha1-mR7GnSluAxN0fVm9/St0XDX4go0=, tarball: safe-buffer/download/safe-buffer-5.1.2.tgz} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=, tarball: safe-buffer/download/safe-buffer-5.2.1.tgz} + dev: true + + /safe-regex/1.1.0: + resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=, tarball: safe-regex/download/safe-regex-1.1.0.tgz} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=, tarball: safer-buffer/download/safer-buffer-2.1.2.tgz} + dev: true + + /semver-compare/1.0.0: + resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=, tarball: semver-compare/download/semver-compare-1.0.0.tgz} + dev: true + + /semver/5.0.3: + resolution: {integrity: sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=, tarball: semver/download/semver-5.0.3.tgz?cache=0&sync_timestamp=1616468020191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.0.3.tgz} + hasBin: true + dev: true + + /semver/5.7.1: + resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=, tarball: semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616468020191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=, tarball: semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616468020191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=, tarball: semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616468020191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /sentence-case/2.1.1: + resolution: {integrity: sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=, tarball: sentence-case/download/sentence-case-2.1.1.tgz} + dependencies: + no-case: 2.3.2 + upper-case-first: 1.1.2 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, tarball: shebang-command/download/shebang-command-2.0.0.tgz} + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.nlark.com/shebang-regex/3.0.0 + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha1-785cj9wQTudRslxY1CkAEfpeos8=, tarball: side-channel/download/side-channel-1.0.4.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: registry.nlark.com/object-inspect/1.11.0 + dev: true + + /signal-exit/3.0.3: + resolution: {integrity: sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=, tarball: signal-exit/download/signal-exit-3.0.3.tgz} + dev: true + + /slash/3.0.0: + resolution: {integrity: sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=, tarball: slash/download/slash-3.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /slice-ansi/3.0.0: + resolution: {integrity: sha1-Md3BCTCht+C2ewjJbC9Jt3p4l4c=, tarball: slice-ansi/download/slice-ansi-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=, tarball: slice-ansi/download/slice-ansi-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /snake-case/2.1.0: + resolution: {integrity: sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=, tarball: snake-case/download/snake-case-2.1.0.tgz} + dependencies: + no-case: 2.3.2 + dev: true + + /snapdragon-node/2.1.1: + resolution: {integrity: sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=, tarball: snapdragon-node/download/snapdragon-node-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util/3.0.1: + resolution: {integrity: sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=, tarball: snapdragon-util/download/snapdragon-util-3.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /source-map-resolve/0.5.3: + resolution: {integrity: sha1-GQhmvs51U+H48mei7oLGBrVQmho=, tarball: source-map-resolve/download/source-map-resolve-0.5.3.tgz} + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support/0.5.19: + resolution: {integrity: sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=, tarball: source-map-support/download/source-map-support-0.5.19.tgz} + dependencies: + buffer-from: registry.nlark.com/buffer-from/1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url/0.4.1: + resolution: {integrity: sha1-CvZmBadFpaL5HPG7+KevvCg97FY=, tarball: source-map-url/download/source-map-url-0.4.1.tgz} + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=, tarball: source-map/download/source-map-0.5.7.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha1-dHIq8y6WFOnCh6jQu95IteLxomM=, tarball: source-map/download/source-map-0.6.1.tgz} + engines: {node: '>=0.10.0'} + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=, tarball: sourcemap-codec/download/sourcemap-codec-1.4.8.tgz} + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha1-3s6BrJweZxPl99G28X1Gj6U9iak=, tarball: spdx-correct/download/spdx-correct-3.1.1.tgz} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: registry.nlark.com/spdx-license-ids/3.0.10 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=, tarball: spdx-exceptions/download/spdx-exceptions-2.3.0.tgz} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=, tarball: spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: registry.nlark.com/spdx-license-ids/3.0.10 + dev: true + + /split-string/3.1.0: + resolution: {integrity: sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=, tarball: split-string/download/split-string-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=, tarball: sprintf-js/download/sprintf-js-1.0.3.tgz} + dev: true + + /sprintf-js/1.1.2: + resolution: {integrity: sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=, tarball: sprintf-js/download/sprintf-js-1.1.2.tgz} + dev: true + + /sshpk/1.16.1: + resolution: {integrity: sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=, tarball: sshpk/download/sshpk-1.16.1.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.4 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /stable/0.1.8: + resolution: {integrity: sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=, tarball: stable/download/stable-0.1.8.tgz} + dev: true + + /static-extend/0.1.2: + resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=, tarball: static-extend/download/static-extend-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses/1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=, tarball: statuses/download/statuses-1.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz} + engines: {node: '>= 0.6'} + dev: true + + /strict-uri-encode/1.1.0: + resolution: {integrity: sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=, tarball: strict-uri-encode/download/strict-uri-encode-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv/0.3.1: + resolution: {integrity: sha1-leL77AQnrhkYSTX4FtdKqkxcGdo=, tarball: string-argv/download/string-argv-0.3.1.tgz} + engines: {node: '>=0.6.19'} + dev: true + + /string-hash/1.1.3: + resolution: {integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=, tarball: string-hash/download/string-hash-1.1.3.tgz} + dev: true + + /string-width/4.2.2: + resolution: {integrity: sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=, tarball: string-width/download/string-width-4.2.2.tgz?cache=0&sync_timestamp=1618559292372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.2.tgz} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + + /string_decoder/0.10.31: + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=, tarball: string_decoder/download/string_decoder-0.10.31.tgz} + dev: true + + /string_decoder/1.1.1: + resolution: {integrity: sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=, tarball: string_decoder/download/string_decoder-1.1.1.tgz} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=, tarball: string_decoder/download/string_decoder-1.3.0.tgz} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/3.0.1: + resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=, tarball: strip-ansi/download/strip-ansi-3.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi/5.2.0: + resolution: {integrity: sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=, tarball: strip-ansi/download/strip-ansi-5.2.0.tgz} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.0 + dev: true + + /strip-ansi/6.0.0: + resolution: {integrity: sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=, tarball: strip-ansi/download/strip-ansi-6.0.0.tgz} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.0 + dev: true + + /strip-bom/2.0.0: + resolution: {integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=, tarball: strip-bom/download/strip-bom-2.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /style-search/0.1.0: + resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=, tarball: style-search/download/style-search-0.1.0.tgz} + dev: true + + /svg-baker/1.7.0: + resolution: {integrity: sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=, tarball: svg-baker/download/svg-baker-1.7.0.tgz} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.0 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: registry.nlark.com/postcss/5.2.18 + postcss-prefix-selector: registry.nlark.com/postcss-prefix-selector/1.12.0 + posthtml-rename-id: registry.nlark.com/posthtml-rename-id/1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: registry.nlark.com/query-string/4.3.4 + traverse: 0.6.6 + dev: true + + /svg-tags/1.0.0: + resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=, tarball: svg-tags/download/svg-tags-1.0.0.tgz} + dev: true + + /swap-case/1.1.2: + resolution: {integrity: sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=, tarball: swap-case/download/swap-case-1.1.2.tgz} + dependencies: + lower-case: 1.1.4 + upper-case: 1.1.3 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=, tarball: text-table/download/text-table-0.2.0.tgz} + dev: true + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=, tarball: through/download/through-2.3.8.tgz} + dev: true + + /through2/2.0.5: + resolution: {integrity: sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=, tarball: through2/download/through2-2.0.5.tgz} + dependencies: + readable-stream: 2.3.7 + xtend: 4.0.2 + dev: true + + /tmp/0.0.33: + resolution: {integrity: sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=, tarball: tmp/download/tmp-0.0.33.tgz} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-object-path/0.3.0: + resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=, tarball: to-object-path/download/to-object-path-0.3.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range/2.1.1: + resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=, tarball: to-regex-range/download/to-regex-range-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=, tarball: to-regex-range/download/to-regex-range-5.0.1.tgz} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex/3.0.2: + resolution: {integrity: sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=, tarball: to-regex/download/to-regex-3.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /tough-cookie/2.5.0: + resolution: {integrity: sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=, tarball: tough-cookie/download/tough-cookie-2.5.0.tgz} + engines: {node: '>=0.8'} + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + dev: true + + /traverse/0.6.6: + resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=, tarball: traverse/download/traverse-0.6.6.tgz} + dev: true + + /tunnel-agent/0.6.0: + resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=, tarball: tunnel-agent/download/tunnel-agent-0.6.0.tgz} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl/0.14.5: + resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=, tarball: tweetnacl/download/tweetnacl-0.14.5.tgz} + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=, tarball: type-check/download/type-check-0.4.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=, tarball: typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typedarray/0.0.6: + resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=, tarball: typedarray/download/typedarray-0.0.6.tgz} + dev: true + + /unc-path-regex/0.1.2: + resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=, tarball: unc-path-regex/download/unc-path-regex-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /underscore/1.13.1: + resolution: {integrity: sha1-DBxr0t9UtrafIxQGbWW2zeb8+dE=, tarball: underscore/download/underscore-1.13.1.tgz?cache=0&sync_timestamp=1618503588071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.13.1.tgz} + dev: true + + /union-value/1.0.1: + resolution: {integrity: sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=, tarball: union-value/download/union-value-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: registry.nlark.com/set-value/2.0.1 + dev: true + + /uniq/1.0.1: + resolution: {integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=, tarball: uniq/download/uniq-1.0.1.tgz} + dev: true + + /unist-util-stringify-position/2.0.3: + resolution: {integrity: sha1-zOO/oc34W6c3XR1bF73Eytqb2do=, tarball: unist-util-stringify-position/download/unist-util-stringify-position-2.0.3.tgz} + dependencies: + '@types/unist': registry.nlark.com/@types/unist/2.0.6 + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=, tarball: universalify/download/universalify-2.0.0.tgz} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe/1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=, tarball: unpipe/download/unpipe-1.0.0.tgz} + engines: {node: '>= 0.8'} + dev: true + + /unset-value/1.0.0: + resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=, tarball: unset-value/download/unset-value-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /upper-case-first/1.1.2: + resolution: {integrity: sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=, tarball: upper-case-first/download/upper-case-first-1.1.2.tgz} + dependencies: + upper-case: 1.1.3 + dev: true + + /upper-case/1.1.3: + resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=, tarball: upper-case/download/upper-case-1.1.3.tgz} + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=, tarball: uri-js/download/uri-js-4.4.1.tgz} + dependencies: + punycode: 2.1.1 + dev: true + + /urix/0.1.0: + resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=, tarball: urix/download/urix-0.1.0.tgz} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /url-join/2.0.5: + resolution: {integrity: sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=, tarball: url-join/download/url-join-2.0.5.tgz} + dev: true + + /use/3.1.1: + resolution: {integrity: sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=, tarball: use/download/use-3.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /user-home/1.1.1: + resolution: {integrity: sha1-K1viOjK2Onyd640PKNSFcko98ZA=, tarball: user-home/download/user-home-1.1.1.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=, tarball: util-deprecate/download/util-deprecate-1.0.2.tgz} + dev: true + + /utils-merge/1.0.1: + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=, tarball: utils-merge/download/utils-merge-1.0.1.tgz} + engines: {node: '>= 0.4.0'} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=, tarball: v8-compile-cache/download/v8-compile-cache-2.3.0.tgz} + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha1-/JH2uce6FchX9MssXe/uw51PQQo=, tarball: validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vary/1.1.2: + resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=, tarball: vary/download/vary-1.1.2.tgz} + engines: {node: '>= 0.8'} + dev: true + + /verror/1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=, tarball: verror/download/verror-1.10.0.tgz} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vinyl/1.2.0: + resolution: {integrity: sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=, tarball: vinyl/download/vinyl-1.2.0.tgz} + engines: {node: '>= 0.9'} + dependencies: + clone: 1.0.4 + clone-stats: 0.0.1 + replace-ext: 0.0.1 + dev: true + + /wcwidth/1.0.1: + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=, tarball: wcwidth/download/wcwidth-1.0.1.tgz} + dependencies: + defaults: 1.0.3 + dev: true + + /which/1.3.1: + resolution: {integrity: sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=, tarball: which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1615986567056&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, tarball: which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1615986567056&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=, tarball: word-wrap/download/word-wrap-1.2.3.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /wordwrap/1.0.0: + resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=, tarball: wordwrap/download/wordwrap-1.0.0.tgz} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=, tarball: wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1618559292738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz} + engines: {node: '>=8'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=, tarball: wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1618559292738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /write-file-atomic/3.0.3: + resolution: {integrity: sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=, tarball: write-file-atomic/download/write-file-atomic-3.0.3.tgz} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.3 + typedarray-to-buffer: 3.1.5 + dev: true + + /xtend/4.0.2: + resolution: {integrity: sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=, tarball: xtend/download/xtend-4.0.2.tgz} + engines: {node: '>=0.4'} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=, tarball: yallist/download/yallist-3.1.1.tgz} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=, tarball: yallist/download/yallist-4.0.0.tgz} + dev: true + + /zwitch/1.0.5: + resolution: {integrity: sha1-0R1zgf/tFrdC9q97PyI9XNn+mSA=, tarball: zwitch/download/zwitch-1.0.5.tgz} + dev: true + + registry.nlark.com/@babel/code-frame/7.12.11: + resolution: {integrity: sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz} + name: '@babel/code-frame' + version: 7.12.11 + dependencies: + '@babel/highlight': registry.nlark.com/@babel/highlight/7.14.5 + dev: true + + registry.nlark.com/@babel/code-frame/7.14.5: + resolution: {integrity: sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz} + name: '@babel/code-frame' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.nlark.com/@babel/highlight/7.14.5 + dev: true + + registry.nlark.com/@babel/compat-data/7.15.0: + resolution: {integrity: sha1-Lbr4uFM0eWyvuw9Xk6kKL8AQsXY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.15.0.tgz} + name: '@babel/compat-data' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.nlark.com/@babel/core/7.15.0: + resolution: {integrity: sha1-dJ5Xxod4tzrYCCd1Vh9n9Rlqr6g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/core/download/@babel/core-7.15.0.tgz} + name: '@babel/core' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.nlark.com/@babel/code-frame/7.14.5 + '@babel/generator': registry.nlark.com/@babel/generator/7.15.0 + '@babel/helper-compilation-targets': registry.nlark.com/@babel/helper-compilation-targets/7.15.0_@babel+core@7.15.0 + '@babel/helper-module-transforms': registry.nlark.com/@babel/helper-module-transforms/7.15.0 + '@babel/helpers': registry.nlark.com/@babel/helpers/7.15.3 + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@babel/template': registry.nlark.com/@babel/template/7.14.5 + '@babel/traverse': registry.nlark.com/@babel/traverse/7.15.0 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + convert-source-map: registry.nlark.com/convert-source-map/1.8.0 + debug: registry.nlark.com/debug/4.3.2 + gensync: 1.0.0-beta.2 + json5: registry.nlark.com/json5/2.2.0 + semver: 6.3.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/@babel/generator/7.15.0: + resolution: {integrity: sha1-p9DBcuDYFJdLrVqnes5UO5eRfxU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/generator/download/@babel/generator-7.15.0.tgz} + name: '@babel/generator' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + registry.nlark.com/@babel/helper-compilation-targets/7.15.0_@babel+core@7.15.0: + resolution: {integrity: sha1-lz34y9AlUV8/8l2wwF78cE+nmBg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.15.0.tgz} + id: registry.nlark.com/@babel/helper-compilation-targets/7.15.0 + name: '@babel/helper-compilation-targets' + version: 7.15.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': registry.nlark.com/@babel/compat-data/7.15.0 + '@babel/core': registry.nlark.com/@babel/core/7.15.0 + '@babel/helper-validator-option': registry.nlark.com/@babel/helper-validator-option/7.14.5 + browserslist: registry.nlark.com/browserslist/4.16.8 + semver: 6.3.0 + dev: true + + registry.nlark.com/@babel/helper-function-name/7.14.5: + resolution: {integrity: sha1-ieLEdJcvFdjiM7Uu6MSA4s/NUMQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.5.tgz} + name: '@babel/helper-function-name' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-get-function-arity': registry.nlark.com/@babel/helper-get-function-arity/7.14.5 + '@babel/template': registry.nlark.com/@babel/template/7.14.5 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-get-function-arity/7.14.5: + resolution: {integrity: sha1-Jfv6V5sJN+7h87gF7OTOOYxDGBU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.14.5.tgz} + name: '@babel/helper-get-function-arity' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-hoist-variables/7.14.5: + resolution: {integrity: sha1-4N0nwzp45XfXyIhJFqPn7x98f40=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.14.5.tgz} + name: '@babel/helper-hoist-variables' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-member-expression-to-functions/7.15.0: + resolution: {integrity: sha1-Ddr1KZyBefJ/NzJ5NlU+m7pgmQs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.15.0.tgz} + name: '@babel/helper-member-expression-to-functions' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-module-imports/7.14.5: + resolution: {integrity: sha1-bRpE32o4yVeqfDEtoHZCnxG0IvM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.14.5.tgz} + name: '@babel/helper-module-imports' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-module-transforms/7.15.0: + resolution: {integrity: sha1-Z5J1WB6gVjc+3b42DhQZ7yN4Owg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.15.0.tgz} + name: '@babel/helper-module-transforms' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-module-imports': registry.nlark.com/@babel/helper-module-imports/7.14.5 + '@babel/helper-replace-supers': registry.nlark.com/@babel/helper-replace-supers/7.15.0 + '@babel/helper-simple-access': registry.nlark.com/@babel/helper-simple-access/7.14.8 + '@babel/helper-split-export-declaration': registry.nlark.com/@babel/helper-split-export-declaration/7.14.5 + '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.14.9 + '@babel/template': registry.nlark.com/@babel/template/7.14.5 + '@babel/traverse': registry.nlark.com/@babel/traverse/7.15.0 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-optimise-call-expression/7.14.5: + resolution: {integrity: sha1-8nOVqGGeBmWz8DZM3bQcJdcbSZw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.14.5.tgz} + name: '@babel/helper-optimise-call-expression' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-replace-supers/7.15.0: + resolution: {integrity: sha1-rOB3CPW/dGvy5rqZVyzOebXU5/Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.15.0.tgz} + name: '@babel/helper-replace-supers' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-member-expression-to-functions': registry.nlark.com/@babel/helper-member-expression-to-functions/7.15.0 + '@babel/helper-optimise-call-expression': registry.nlark.com/@babel/helper-optimise-call-expression/7.14.5 + '@babel/traverse': registry.nlark.com/@babel/traverse/7.15.0 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-simple-access/7.14.8: + resolution: {integrity: sha1-guH+wGRKfndcdNMF8hLDn4/nOSQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.14.8.tgz} + name: '@babel/helper-simple-access' + version: 7.14.8 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-split-export-declaration/7.14.5: + resolution: {integrity: sha1-IrI6VO9RwrdgXYUZMMGXbdC8aTo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.14.5.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/helper-validator-identifier/7.14.9: + resolution: {integrity: sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz?cache=0&sync_timestamp=1627804495811&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.9.tgz} + name: '@babel/helper-validator-identifier' + version: 7.14.9 + engines: {node: '>=6.9.0'} + + registry.nlark.com/@babel/helper-validator-option/7.14.5: + resolution: {integrity: sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz} + name: '@babel/helper-validator-option' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dev: true + + registry.nlark.com/@babel/helpers/7.15.3: + resolution: {integrity: sha1-yWg4t1K5Xc1SW050HtQLsdwqE1c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.15.3.tgz} + name: '@babel/helpers' + version: 7.15.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.nlark.com/@babel/template/7.14.5 + '@babel/traverse': registry.nlark.com/@babel/traverse/7.15.0 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/highlight/7.14.5: + resolution: {integrity: sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz} + name: '@babel/highlight' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.14.9 + chalk: registry.nlark.com/chalk/2.4.2 + js-tokens: registry.nlark.com/js-tokens/4.0.0 + dev: true + + registry.nlark.com/@babel/parser/7.15.3: + resolution: {integrity: sha1-NBbZvqdIBSz8tj28wnNoEFse2GI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.3.tgz?cache=0&sync_timestamp=1628668929918&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.15.3.tgz} + name: '@babel/parser' + version: 7.15.3 + engines: {node: '>=6.0.0'} + hasBin: true + + registry.nlark.com/@babel/runtime-corejs3/7.15.3: + resolution: {integrity: sha1-KHVCY5iBmPKpKMCXM63i+00oCJ0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.15.3.tgz} + name: '@babel/runtime-corejs3' + version: 7.15.3 + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: registry.nlark.com/core-js-pure/3.16.3 + regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9 + dev: true + + registry.nlark.com/@babel/template/7.14.5: + resolution: {integrity: sha1-qbydizM1T/blWpxg0RCSAKaJdPQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz} + name: '@babel/template' + version: 7.14.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.nlark.com/@babel/code-frame/7.14.5 + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + dev: true + + registry.nlark.com/@babel/traverse/7.15.0: + resolution: {integrity: sha1-TMqDj9GyoDKDwfOOFB9jnWCz/Jg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.15.0.tgz} + name: '@babel/traverse' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.nlark.com/@babel/code-frame/7.14.5 + '@babel/generator': registry.nlark.com/@babel/generator/7.15.0 + '@babel/helper-function-name': registry.nlark.com/@babel/helper-function-name/7.14.5 + '@babel/helper-hoist-variables': registry.nlark.com/@babel/helper-hoist-variables/7.14.5 + '@babel/helper-split-export-declaration': registry.nlark.com/@babel/helper-split-export-declaration/7.14.5 + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + debug: registry.nlark.com/debug/4.3.2 + globals: registry.nlark.com/globals/11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/@babel/types/7.15.0: + resolution: {integrity: sha1-Ya8R8ihsTpxpyo3rX0N1pzxy3L0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/types/download/@babel/types-7.15.0.tgz} + name: '@babel/types' + version: 7.15.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.14.9 + to-fast-properties: registry.nlark.com/to-fast-properties/2.0.0 + + registry.nlark.com/@element-plus/icons/0.0.11: + resolution: {integrity: sha1-mxh8ACd0VIuRGFDRf6X8L5pRX1c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@element-plus/icons/download/@element-plus/icons-0.0.11.tgz} + name: '@element-plus/icons' + version: 0.0.11 + dev: false + + registry.nlark.com/@eslint/eslintrc/0.4.3: + resolution: {integrity: sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz} + name: '@eslint/eslintrc' + version: 0.4.3 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: registry.nlark.com/ajv/6.12.6 + debug: registry.nlark.com/debug/4.3.2 + espree: registry.nlark.com/espree/7.3.1 + globals: registry.nlark.com/globals/13.11.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.0.4 + strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/@humanwhocodes/config-array/0.5.0: + resolution: {integrity: sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz} + name: '@humanwhocodes/config-array' + version: 0.5.0 + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': registry.nlark.com/@humanwhocodes/object-schema/1.2.0 + debug: registry.nlark.com/debug/4.3.2 + minimatch: 3.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/@humanwhocodes/object-schema/1.2.0: + resolution: {integrity: sha1-h956+cIxgm/daKxyWPd8Qp4OX88=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.0.tgz} + name: '@humanwhocodes/object-schema' + version: 1.2.0 + dev: true + + registry.nlark.com/@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.nlark.com/@nodelib/fs.stat/2.0.5 + run-parallel: 1.2.0 + dev: true + + registry.nlark.com/@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.nlark.com/@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz?cache=0&sync_timestamp=1625770194804&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.nlark.com/@nodelib/fs.scandir/2.1.5 + fastq: registry.nlark.com/fastq/1.12.0 + dev: true + + registry.nlark.com/@popperjs/core/2.9.3: + resolution: {integrity: sha1-i2jaHr1/xgOZnPbr7jSkiZoUuI4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.9.3.tgz} + name: '@popperjs/core' + version: 2.9.3 + dev: false + + registry.nlark.com/@rollup/plugin-node-resolve/13.0.4: + resolution: {integrity: sha1-sQIi9BRaAZdArLdzhAITDYSGYMA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-13.0.4.tgz} + name: '@rollup/plugin-node-resolve' + version: 13.0.4 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0 + '@types/resolve': registry.nlark.com/@types/resolve/1.17.1 + builtin-modules: 3.2.0 + deepmerge: 4.2.2 + is-module: 1.0.0 + resolve: 1.20.0 + dev: true + + registry.nlark.com/@rollup/pluginutils/3.1.0: + resolution: {integrity: sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz} + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.nlark.com/@types/estree/0.0.39 + estree-walker: 1.0.1 + picomatch: registry.nlark.com/picomatch/2.3.0 + dev: true + + registry.nlark.com/@rollup/pluginutils/4.1.1: + resolution: {integrity: sha1-HU2obdTt7RVlalfZM/2iuaCNR+w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.1.tgz} + name: '@rollup/pluginutils' + version: 4.1.1 + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: registry.nlark.com/picomatch/2.3.0 + dev: true + + registry.nlark.com/@tinymce/tinymce-vue/4.0.4_vue@3.2.6: + resolution: {integrity: sha1-tHk08tHhBqya9/qboDFqjJbtMUw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@tinymce/tinymce-vue/download/@tinymce/tinymce-vue-4.0.4.tgz} + id: registry.nlark.com/@tinymce/tinymce-vue/4.0.4 + name: '@tinymce/tinymce-vue' + version: 4.0.4 + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: registry.nlark.com/vue/3.2.6 + dev: false + + registry.nlark.com/@trysound/sax/0.1.1: + resolution: {integrity: sha1-M0hWQEjnotc5jJNdRmwEFOu2pmk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@trysound/sax/download/@trysound/sax-0.1.1.tgz} + name: '@trysound/sax' + version: 0.1.1 + engines: {node: '>=10.13.0'} + dev: true + + registry.nlark.com/@types/estree/0.0.39: + resolution: {integrity: sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/estree/download/@types/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: true + + registry.nlark.com/@types/estree/0.0.48: + resolution: {integrity: sha1-GNyAkbKF35DbLyWqfZBs/DlLf3Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/estree/download/@types/estree-0.0.48.tgz} + name: '@types/estree' + version: 0.0.48 + dev: true + + registry.nlark.com/@types/fined/1.1.3: + resolution: {integrity: sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/fined/download/@types/fined-1.1.3.tgz} + name: '@types/fined' + version: 1.1.3 + dev: true + + registry.nlark.com/@types/glob/7.1.4: + resolution: {integrity: sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/glob/download/@types/glob-7.1.4.tgz} + name: '@types/glob' + version: 7.1.4 + dependencies: + '@types/minimatch': registry.nlark.com/@types/minimatch/3.0.5 + '@types/node': registry.nlark.com/@types/node/16.7.2 + dev: true + + registry.nlark.com/@types/inquirer/6.5.0: + resolution: {integrity: sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/inquirer/download/@types/inquirer-6.5.0.tgz} + name: '@types/inquirer' + version: 6.5.0 + dependencies: + '@types/through': registry.nlark.com/@types/through/0.0.30 + rxjs: registry.nlark.com/rxjs/6.6.7 + dev: true + + registry.nlark.com/@types/interpret/1.1.1: + resolution: {integrity: sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/interpret/download/@types/interpret-1.1.1.tgz} + name: '@types/interpret' + version: 1.1.1 + dependencies: + '@types/node': registry.nlark.com/@types/node/16.7.2 + dev: true + + registry.nlark.com/@types/liftoff/2.5.1: + resolution: {integrity: sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/liftoff/download/@types/liftoff-2.5.1.tgz} + name: '@types/liftoff' + version: 2.5.1 + dependencies: + '@types/fined': registry.nlark.com/@types/fined/1.1.3 + '@types/interpret': registry.nlark.com/@types/interpret/1.1.1 + '@types/node': registry.nlark.com/@types/node/16.7.2 + dev: true + + registry.nlark.com/@types/mdast/3.0.10: + resolution: {integrity: sha1-RyQkSoKkWYiEy76bz9c9/5J+6K8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/mdast/download/@types/mdast-3.0.10.tgz} + name: '@types/mdast' + version: 3.0.10 + dependencies: + '@types/unist': registry.nlark.com/@types/unist/2.0.6 + dev: true + + registry.nlark.com/@types/minimatch/3.0.5: + resolution: {integrity: sha1-EAHMXmo3BLg8I2An538vWOoBD0A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz?cache=0&sync_timestamp=1629710021422&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.5.tgz} + name: '@types/minimatch' + version: 3.0.5 + dev: true + + registry.nlark.com/@types/minimist/1.2.2: + resolution: {integrity: sha1-7nceK6Sz3Fs3KTXVSf2WF780W4w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/minimist/download/@types/minimist-1.2.2.tgz?cache=0&sync_timestamp=1629710027998&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.2.tgz} + name: '@types/minimist' + version: 1.2.2 + dev: true + + registry.nlark.com/@types/mockjs/1.0.4: + resolution: {integrity: sha1-5waVHV4ztPCku3Ox+LEk4m8IHeA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/mockjs/download/@types/mockjs-1.0.4.tgz} + name: '@types/mockjs' + version: 1.0.4 + dev: true + + registry.nlark.com/@types/node/16.7.2: + resolution: {integrity: sha1-BGWjm1RWthoE2YvVVF+LNL40DLc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/node/download/@types/node-16.7.2.tgz?cache=0&sync_timestamp=1629940857634&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.7.2.tgz} + name: '@types/node' + version: 16.7.2 + dev: true + + registry.nlark.com/@types/normalize-package-data/2.4.1: + resolution: {integrity: sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz?cache=0&sync_timestamp=1629710096135&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.1.tgz} + name: '@types/normalize-package-data' + version: 2.4.1 + dev: true + + registry.nlark.com/@types/parse-json/4.0.0: + resolution: {integrity: sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1629709273211&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz} + name: '@types/parse-json' + version: 4.0.0 + dev: true + + registry.nlark.com/@types/resolve/1.17.1: + resolution: {integrity: sha1-Ov1q2JZ8d+Q3bFmKgt3Vj0bsRdY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/resolve/download/@types/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.nlark.com/@types/node/16.7.2 + dev: true + + registry.nlark.com/@types/svgo/2.4.0: + resolution: {integrity: sha1-0EIeD1Y81HJvqCYQZvFtOZ5mWy4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/svgo/download/@types/svgo-2.4.0.tgz} + name: '@types/svgo' + version: 2.4.0 + dev: true + + registry.nlark.com/@types/through/0.0.30: + resolution: {integrity: sha1-4OQs536Je9aurW9upirrE1uKOJU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/through/download/@types/through-0.0.30.tgz?cache=0&sync_timestamp=1629710122580&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fthrough%2Fdownload%2F%40types%2Fthrough-0.0.30.tgz} + name: '@types/through' + version: 0.0.30 + dependencies: + '@types/node': registry.nlark.com/@types/node/16.7.2 + dev: true + + registry.nlark.com/@types/trusted-types/2.0.2: + resolution: {integrity: sha1-/CWtmUO8rBHM64Fo208nXg5y51Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/trusted-types/download/@types/trusted-types-2.0.2.tgz} + name: '@types/trusted-types' + version: 2.0.2 + dev: true + + registry.nlark.com/@types/unist/2.0.6: + resolution: {integrity: sha1-JQp7FsO5H2cqJFUuxkZ47rHToI0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/unist/download/@types/unist-2.0.6.tgz?cache=0&sync_timestamp=1629710137034&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Funist%2Fdownload%2F%40types%2Funist-2.0.6.tgz} + name: '@types/unist' + version: 2.0.6 + dev: true + + registry.nlark.com/@vitejs/plugin-vue/1.6.0_@vue+compiler-sfc@3.2.6: + resolution: {integrity: sha1-5VWOIMIOkJjNW9ZbmQH9zSw1SYM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-1.6.0.tgz} + id: registry.nlark.com/@vitejs/plugin-vue/1.6.0 + name: '@vitejs/plugin-vue' + version: 1.6.0 + engines: {node: '>=12.0.0'} + peerDependencies: + '@vue/compiler-sfc': ^3.2.6 + dependencies: + '@vue/compiler-sfc': registry.nlark.com/@vue/compiler-sfc/3.2.6 + dev: true + + registry.nlark.com/@vue/compiler-core/3.2.6: + resolution: {integrity: sha1-cWK7BnAnPwRWavDTUwCRh6tXeRU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.2.6.tgz} + name: '@vue/compiler-core' + version: 3.2.6 + dependencies: + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + estree-walker: 2.0.2 + source-map: 0.6.1 + + registry.nlark.com/@vue/compiler-dom/3.2.6: + resolution: {integrity: sha1-N2TX/hppbjn7KjydY42gdJ42my0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.6.tgz} + name: '@vue/compiler-dom' + version: 3.2.6 + dependencies: + '@vue/compiler-core': registry.nlark.com/@vue/compiler-core/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + + registry.nlark.com/@vue/compiler-sfc/3.2.6: + resolution: {integrity: sha1-1qt0EM/1cIGrYnsVoepRoQcsfPE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.6.tgz} + name: '@vue/compiler-sfc' + version: 3.2.6 + dependencies: + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@babel/types': registry.nlark.com/@babel/types/7.15.0 + '@types/estree': registry.nlark.com/@types/estree/0.0.48 + '@vue/compiler-core': registry.nlark.com/@vue/compiler-core/3.2.6 + '@vue/compiler-dom': registry.nlark.com/@vue/compiler-dom/3.2.6 + '@vue/compiler-ssr': registry.nlark.com/@vue/compiler-ssr/3.2.6 + '@vue/ref-transform': registry.nlark.com/@vue/ref-transform/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + consolidate: 0.16.0 + estree-walker: 2.0.2 + hash-sum: 2.0.0 + lru-cache: 5.1.1 + magic-string: registry.nlark.com/magic-string/0.25.7 + merge-source-map: 1.1.0 + postcss: registry.nlark.com/postcss/8.3.6 + postcss-modules: registry.nlark.com/postcss-modules/4.2.2_postcss@8.3.6 + postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + source-map: 0.6.1 + dev: true + + registry.nlark.com/@vue/compiler-ssr/3.2.6: + resolution: {integrity: sha1-ytzxmYWfoAc59CdbTIWXDksKvn0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.6.tgz} + name: '@vue/compiler-ssr' + version: 3.2.6 + dependencies: + '@vue/compiler-dom': registry.nlark.com/@vue/compiler-dom/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + dev: true + + registry.nlark.com/@vue/devtools-api/6.0.0-beta.15: + resolution: {integrity: sha1-rXyzhOBi8WW8+cg3MhJb/7wq2D0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.15.tgz} + name: '@vue/devtools-api' + version: 6.0.0-beta.15 + dev: false + + registry.nlark.com/@vue/reactivity/3.2.6: + resolution: {integrity: sha1-uJk/pvSFRReOWI4lqclDGhwbfVA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.2.6.tgz} + name: '@vue/reactivity' + version: 3.2.6 + dependencies: + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + dev: false + + registry.nlark.com/@vue/ref-transform/3.2.6: + resolution: {integrity: sha1-MLXx+nfa+YlLwj5qWg41hqSnlrg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/ref-transform/download/@vue/ref-transform-3.2.6.tgz} + name: '@vue/ref-transform' + version: 3.2.6 + dependencies: + '@babel/parser': registry.nlark.com/@babel/parser/7.15.3 + '@vue/compiler-core': registry.nlark.com/@vue/compiler-core/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + estree-walker: 2.0.2 + magic-string: registry.nlark.com/magic-string/0.25.7 + dev: true + + registry.nlark.com/@vue/runtime-core/3.2.6: + resolution: {integrity: sha1-N2uu73/gKmI3fUbQ0KirlRDbHY4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.2.6.tgz} + name: '@vue/runtime-core' + version: 3.2.6 + dependencies: + '@vue/reactivity': registry.nlark.com/@vue/reactivity/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + dev: false + + registry.nlark.com/@vue/runtime-dom/3.2.6: + resolution: {integrity: sha1-D3TbyoTVbCIvv71TQVsmA4aFmjs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.6.tgz} + name: '@vue/runtime-dom' + version: 3.2.6 + dependencies: + '@vue/runtime-core': registry.nlark.com/@vue/runtime-core/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + csstype: registry.nlark.com/csstype/2.6.17 + dev: false + + registry.nlark.com/@vue/shared/3.2.6: + resolution: {integrity: sha1-LCK66I/it7WfpoqcnEzWC64sF5Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.6.tgz} + name: '@vue/shared' + version: 3.2.6 + + registry.nlark.com/acorn-jsx/5.3.2_acorn@7.4.1: + resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz} + id: registry.nlark.com/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.nlark.com/acorn/7.4.1 + dev: true + + registry.nlark.com/acorn/7.4.1: + resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1624527466084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.nlark.com/ajv/6.12.6: + resolution: {integrity: sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + registry.nlark.com/ajv/8.6.2: + resolution: {integrity: sha1-L7ReDl/LwIEzJsHD2lNdGIG7BXE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ajv/download/ajv-8.6.2.tgz} + name: ajv + version: 8.6.2 + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + registry.nlark.com/ansi-styles/2.2.1: + resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618996996398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz} + name: ansi-styles + version: 2.2.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/ansi-styles/3.2.1: + resolution: {integrity: sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618996996398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + registry.nlark.com/ansi-styles/4.3.0: + resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618996996398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + registry.nlark.com/array-each/1.0.1: + resolution: {integrity: sha1-p5SvDAWrF1KEbudTofIRoFugxE8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/array-each/download/array-each-1.0.1.tgz} + name: array-each + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/arrify/1.0.1: + resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/arrify/download/arrify-1.0.1.tgz} + name: arrify + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/async-validator/3.5.2: + resolution: {integrity: sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/async-validator/download/async-validator-3.5.2.tgz} + name: async-validator + version: 3.5.2 + dev: false + + registry.nlark.com/async/0.9.2: + resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/async/download/async-0.9.2.tgz} + name: async + version: 0.9.2 + dev: true + + registry.nlark.com/async/2.6.3: + resolution: {integrity: sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/async/download/async-2.6.3.tgz} + name: async + version: 2.6.3 + dependencies: + lodash: 4.17.21 + dev: true + + registry.nlark.com/autoprefixer/9.8.6: + resolution: {integrity: sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/autoprefixer/download/autoprefixer-9.8.6.tgz} + name: autoprefixer + version: 9.8.6 + hasBin: true + dependencies: + browserslist: registry.nlark.com/browserslist/4.16.8 + caniuse-lite: registry.nlark.com/caniuse-lite/1.0.30001252 + colorette: registry.nlark.com/colorette/1.3.0 + normalize-range: 0.1.2 + num2fraction: 1.2.2 + postcss: registry.nlark.com/postcss/7.0.36 + postcss-value-parser: 4.1.0 + dev: true + + registry.nlark.com/bail/1.0.5: + resolution: {integrity: sha1-tvoTNASjksvB+MS/Y/WVM1Hnp3Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/bail/download/bail-1.0.5.tgz} + name: bail + version: 1.0.5 + dev: true + + registry.nlark.com/big.js/5.2.2: + resolution: {integrity: sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz} + name: big.js + version: 5.2.2 + dev: true + + registry.nlark.com/bin-pack/1.0.2: + resolution: {integrity: sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/bin-pack/download/bin-pack-1.0.2.tgz} + name: bin-pack + version: 1.0.2 + dev: true + + registry.nlark.com/browserslist/4.16.8: + resolution: {integrity: sha1-y4aLC1VPE3um4z3g7P8u2kA8T7A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/browserslist/download/browserslist-4.16.8.tgz} + name: browserslist + version: 4.16.8 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.nlark.com/caniuse-lite/1.0.30001252 + colorette: registry.nlark.com/colorette/1.3.0 + electron-to-chromium: registry.nlark.com/electron-to-chromium/1.3.818 + escalade: 3.1.1 + node-releases: registry.nlark.com/node-releases/1.1.75 + dev: true + + registry.nlark.com/buffer-from/1.1.2: + resolution: {integrity: sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: true + + registry.nlark.com/callsites/3.1.0: + resolution: {integrity: sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/camelcase-keys/6.2.2: + resolution: {integrity: sha1-XnVda6UaoiPsfT1S8ld4IQ+dw8A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/camelcase-keys/download/camelcase-keys-6.2.2.tgz} + name: camelcase-keys + version: 6.2.2 + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.2.1 + quick-lru: registry.nlark.com/quick-lru/4.0.1 + dev: true + + registry.nlark.com/caniuse-lite/1.0.30001252: + resolution: {integrity: sha1-yxbk49r+lI/EqbszB66gVLkSAZo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001252.tgz} + name: caniuse-lite + version: 1.0.30001252 + dev: true + + registry.nlark.com/chalk/1.1.3: + resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627650698357&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz} + name: chalk + version: 1.1.3 + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: registry.nlark.com/supports-color/2.0.0 + dev: true + + registry.nlark.com/chalk/2.4.2: + resolution: {integrity: sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627650698357&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/3.2.1 + escape-string-regexp: 1.0.5 + supports-color: registry.nlark.com/supports-color/5.5.0 + dev: true + + registry.nlark.com/chalk/4.1.2: + resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627650698357&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + supports-color: registry.nlark.com/supports-color/7.2.0 + dev: true + + registry.nlark.com/chokidar/3.5.2: + resolution: {integrity: sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz?cache=0&sync_timestamp=1623763736136&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchokidar%2Fdownload%2Fchokidar-3.5.2.tgz} + name: chokidar + version: 3.5.2 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: registry.nlark.com/glob-parent/5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.1 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + registry.nlark.com/clean-css/4.2.3: + resolution: {integrity: sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/clean-css/download/clean-css-4.2.3.tgz} + name: clean-css + version: 4.2.3 + engines: {node: '>= 4.0'} + dependencies: + source-map: 0.6.1 + dev: true + + registry.nlark.com/clean-stack/2.2.0: + resolution: {integrity: sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz} + name: clean-stack + version: 2.2.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/cli-cursor/2.1.0: + resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cli-cursor/download/cli-cursor-2.1.0.tgz} + name: cli-cursor + version: 2.1.0 + engines: {node: '>=4'} + dependencies: + restore-cursor: registry.nlark.com/restore-cursor/2.0.0 + dev: true + + registry.nlark.com/cli-cursor/3.1.0: + resolution: {integrity: sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cli-cursor/download/cli-cursor-3.1.0.tgz} + name: cli-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + restore-cursor: registry.nlark.com/restore-cursor/3.1.0 + dev: true + + registry.nlark.com/cli-truncate/2.1.0: + resolution: {integrity: sha1-w54ovwXtzeW+O5iZKiLe7Vork8c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cli-truncate/download/cli-truncate-2.1.0.tgz} + name: cli-truncate + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.2 + dev: true + + registry.nlark.com/colorette/1.3.0: + resolution: {integrity: sha1-/0XS8O2yRAadO3cq3rBP7TjQoK8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/colorette/download/colorette-1.3.0.tgz?cache=0&sync_timestamp=1628605216202&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolorette%2Fdownload%2Fcolorette-1.3.0.tgz} + name: colorette + version: 1.3.0 + dev: true + + registry.nlark.com/commander/2.20.3: + resolution: {integrity: sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1627363990355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: true + + registry.nlark.com/commander/4.1.1: + resolution: {integrity: sha1-n9YCvZNilOnp70aj9NaWQESxgGg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commander/download/commander-4.1.1.tgz?cache=0&sync_timestamp=1627363990355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz} + name: commander + version: 4.1.1 + engines: {node: '>= 6'} + dev: true + + registry.nlark.com/commander/7.2.0: + resolution: {integrity: sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commander/download/commander-7.2.0.tgz?cache=0&sync_timestamp=1627363990355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-7.2.0.tgz} + name: commander + version: 7.2.0 + engines: {node: '>= 10'} + dev: true + + registry.nlark.com/commander/8.1.0: + resolution: {integrity: sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commander/download/commander-8.1.0.tgz?cache=0&sync_timestamp=1627363990355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-8.1.0.tgz} + name: commander + version: 8.1.0 + engines: {node: '>= 12'} + dev: false + + registry.nlark.com/contentstream/1.0.0: + resolution: {integrity: sha1-C9z6RtowRkqGzo+n7OVlQQ3G+aU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/contentstream/download/contentstream-1.0.0.tgz} + name: contentstream + version: 1.0.0 + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.0.34 + dev: true + + registry.nlark.com/convert-source-map/1.8.0: + resolution: {integrity: sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz} + name: convert-source-map + version: 1.8.0 + dependencies: + safe-buffer: 5.1.2 + dev: true + + registry.nlark.com/core-js-pure/3.16.3: + resolution: {integrity: sha1-Qcy5tgJ1NfjdUaCvAEwcfwqMnKc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/core-js-pure/download/core-js-pure-3.16.3.tgz} + name: core-js-pure + version: 3.16.3 + requiresBuild: true + dev: true + + registry.nlark.com/cosmiconfig/7.0.1: + resolution: {integrity: sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz} + name: cosmiconfig + version: 7.0.1 + engines: {node: '>=10'} + dependencies: + '@types/parse-json': registry.nlark.com/@types/parse-json/4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: registry.nlark.com/yaml/1.10.2 + dev: true + + registry.nlark.com/css-select/4.1.3: + resolution: {integrity: sha1-pwRA9wMX8maRGK10/xBeZYSccGc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz} + name: css-select + version: 4.1.3 + dependencies: + boolbase: 1.0.0 + css-what: registry.nlark.com/css-what/5.0.1 + domhandler: 4.2.0 + domutils: registry.nlark.com/domutils/2.7.0 + nth-check: 2.0.0 + dev: true + + registry.nlark.com/css-tree/1.1.3: + resolution: {integrity: sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-tree/download/css-tree-1.1.3.tgz} + name: css-tree + version: 1.1.3 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.nlark.com/mdn-data/2.0.14 + source-map: 0.6.1 + dev: true + + registry.nlark.com/css-what/5.0.1: + resolution: {integrity: sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz} + name: css-what + version: 5.0.1 + engines: {node: '>= 6'} + dev: true + + registry.nlark.com/csstype/2.6.17: + resolution: {integrity: sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz?cache=0&sync_timestamp=1618818778879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.17.tgz} + name: csstype + version: 2.6.17 + dev: false + + registry.nlark.com/cwise-compiler/1.1.3: + resolution: {integrity: sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cwise-compiler/download/cwise-compiler-1.1.3.tgz} + name: cwise-compiler + version: 1.1.3 + dependencies: + uniq: 1.0.1 + dev: true + + registry.nlark.com/data-uri-to-buffer/0.0.3: + resolution: {integrity: sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/data-uri-to-buffer/download/data-uri-to-buffer-0.0.3.tgz} + name: data-uri-to-buffer + version: 0.0.3 + dev: true + + registry.nlark.com/dayjs/1.10.6: + resolution: {integrity: sha1-KIsqqC8thBimydTfWJjAc3rQKmM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz} + name: dayjs + version: 1.10.6 + dev: false + + registry.nlark.com/debug/2.6.9: + resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/debug/download/debug-2.6.9.tgz} + name: debug + version: 2.6.9 + dependencies: + ms: registry.nlark.com/ms/2.0.0 + dev: true + + registry.nlark.com/debug/3.2.7: + resolution: {integrity: sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/debug/download/debug-3.2.7.tgz} + name: debug + version: 3.2.7 + dependencies: + ms: registry.nlark.com/ms/2.1.3 + dev: true + + registry.nlark.com/debug/4.3.2: + resolution: {integrity: sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/debug/download/debug-4.3.2.tgz} + name: debug + version: 4.3.2 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.nlark.com/ms/2.1.2 + dev: true + + registry.nlark.com/dom-serializer/0.2.2: + resolution: {integrity: sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz} + name: dom-serializer + version: 0.2.2 + dependencies: + domelementtype: 2.2.0 + entities: registry.nlark.com/entities/2.2.0 + dev: true + + registry.nlark.com/dom-serializer/1.3.2: + resolution: {integrity: sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz} + name: dom-serializer + version: 1.3.2 + dependencies: + domelementtype: 2.2.0 + domhandler: 4.2.0 + entities: registry.nlark.com/entities/2.2.0 + dev: true + + registry.nlark.com/domutils/1.7.0: + resolution: {integrity: sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz} + name: domutils + version: 1.7.0 + dependencies: + dom-serializer: registry.nlark.com/dom-serializer/0.2.2 + domelementtype: 1.3.1 + dev: true + + registry.nlark.com/domutils/2.7.0: + resolution: {integrity: sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz} + name: domutils + version: 2.7.0 + dependencies: + dom-serializer: registry.nlark.com/dom-serializer/1.3.2 + domelementtype: 2.2.0 + domhandler: 4.2.0 + dev: true + + registry.nlark.com/dotenv/10.0.0: + resolution: {integrity: sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dotenv/download/dotenv-10.0.0.tgz} + name: dotenv + version: 10.0.0 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/ecstatic/3.3.2: + resolution: {integrity: sha1-bR3UmBTQBZRoLGUq22YHamnUbEg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ecstatic/download/ecstatic-3.3.2.tgz} + name: ecstatic + version: 3.3.2 + deprecated: This package is unmaintained and deprecated. See the GH Issue 259. + hasBin: true + dependencies: + he: 1.2.0 + mime: 1.6.0 + minimist: 1.2.5 + url-join: 2.0.5 + dev: true + + registry.nlark.com/electron-to-chromium/1.3.818: + resolution: {integrity: sha1-Mu0CT6gxbl1GnJbuy+p9JGPYAIU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.818.tgz} + name: electron-to-chromium + version: 1.3.818 + dev: true + + registry.nlark.com/element-plus/1.1.0-beta.6_vue@3.2.6: + resolution: {integrity: sha1-ukewmzykNLF8biHMiJNGV9a0L/g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/element-plus/download/element-plus-1.1.0-beta.6.tgz} + id: registry.nlark.com/element-plus/1.1.0-beta.6 + name: element-plus + version: 1.1.0-beta.6 + peerDependencies: + vue: ^3.2.0 + dependencies: + '@element-plus/icons': registry.nlark.com/@element-plus/icons/0.0.11 + '@popperjs/core': registry.nlark.com/@popperjs/core/2.9.3 + async-validator: registry.nlark.com/async-validator/3.5.2 + dayjs: registry.nlark.com/dayjs/1.10.6 + lodash: 4.17.21 + mitt: registry.nlark.com/mitt/2.1.0 + normalize-wheel: 1.0.1 + resize-observer-polyfill: 1.5.1 + vue: registry.nlark.com/vue/3.2.6 + dev: false + + registry.nlark.com/entities/1.1.2: + resolution: {integrity: sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/entities/download/entities-1.1.2.tgz} + name: entities + version: 1.1.2 + dev: true + + registry.nlark.com/entities/2.2.0: + resolution: {integrity: sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/entities/download/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: true + + registry.nlark.com/esbuild/0.11.3: + resolution: {integrity: sha1-tXFluQe+T/umUfZFBTjOjYwdXrA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esbuild/download/esbuild-0.11.3.tgz} + name: esbuild + version: 0.11.3 + hasBin: true + requiresBuild: true + dev: true + + registry.nlark.com/esbuild/0.12.23: + resolution: {integrity: sha1-/UDXDT7F54k9jFvmVePjjQlt2II=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esbuild/download/esbuild-0.12.23.tgz} + name: esbuild + version: 0.12.23 + hasBin: true + requiresBuild: true + dev: true + + registry.nlark.com/eslint-plugin-vue/7.16.0_eslint@7.32.0: + resolution: {integrity: sha1-f+n+oDmhkLEIMZwTgK31Q+9XcH0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-plugin-vue/download/eslint-plugin-vue-7.16.0.tgz} + id: registry.nlark.com/eslint-plugin-vue/7.16.0 + name: eslint-plugin-vue + version: 7.16.0 + engines: {node: '>=8.10'} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 + dependencies: + eslint: registry.nlark.com/eslint/7.32.0 + eslint-utils: registry.nlark.com/eslint-utils/2.1.0 + natural-compare: 1.4.0 + semver: 6.3.0 + vue-eslint-parser: registry.nlark.com/vue-eslint-parser/7.10.0_eslint@7.32.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/eslint-scope/5.1.1: + resolution: {integrity: sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + registry.nlark.com/eslint-utils/2.1.0: + resolution: {integrity: sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620977666265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz} + name: eslint-utils + version: 2.1.0 + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/1.3.0 + dev: true + + registry.nlark.com/eslint-visitor-keys/1.3.0: + resolution: {integrity: sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1624579502329&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz} + name: eslint-visitor-keys + version: 1.3.0 + engines: {node: '>=4'} + dev: true + + registry.nlark.com/eslint-visitor-keys/2.1.0: + resolution: {integrity: sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1624579502329&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz} + name: eslint-visitor-keys + version: 2.1.0 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/eslint/7.32.0: + resolution: {integrity: sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint/download/eslint-7.32.0.tgz} + name: eslint + version: 7.32.0 + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': registry.nlark.com/@babel/code-frame/7.12.11 + '@eslint/eslintrc': registry.nlark.com/@eslint/eslintrc/0.4.3 + '@humanwhocodes/config-array': registry.nlark.com/@humanwhocodes/config-array/0.5.0 + ajv: registry.nlark.com/ajv/6.12.6 + chalk: registry.nlark.com/chalk/4.1.2 + cross-spawn: 7.0.3 + debug: registry.nlark.com/debug/4.3.2 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: registry.nlark.com/eslint-scope/5.1.1 + eslint-utils: registry.nlark.com/eslint-utils/2.1.0 + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/2.1.0 + espree: registry.nlark.com/espree/7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: registry.nlark.com/glob-parent/5.1.2 + globals: registry.nlark.com/globals/13.11.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.1 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: registry.nlark.com/json-stable-stringify-without-jsonify/1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: registry.nlark.com/regexpp/3.2.0 + semver: 7.3.5 + strip-ansi: 6.0.0 + strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 + table: registry.nlark.com/table/6.7.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/espree/6.2.1: + resolution: {integrity: sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/espree/download/espree-6.2.1.tgz} + name: espree + version: 6.2.1 + engines: {node: '>=6.0.0'} + dependencies: + acorn: registry.nlark.com/acorn/7.4.1 + acorn-jsx: registry.nlark.com/acorn-jsx/5.3.2_acorn@7.4.1 + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/1.3.0 + dev: true + + registry.nlark.com/espree/7.3.1: + resolution: {integrity: sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/espree/download/espree-7.3.1.tgz} + name: espree + version: 7.3.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + acorn: registry.nlark.com/acorn/7.4.1 + acorn-jsx: registry.nlark.com/acorn-jsx/5.3.2_acorn@7.4.1 + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/1.3.0 + dev: true + + registry.nlark.com/execa/5.1.1: + resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/execa/download/execa-5.1.1.tgz} + name: execa + version: 5.1.1 + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: registry.nlark.com/human-signals/2.1.0 + is-stream: registry.nlark.com/is-stream/2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: registry.nlark.com/strip-final-newline/2.0.0 + dev: true + + registry.nlark.com/extend/3.0.2: + resolution: {integrity: sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/extend/download/extend-3.0.2.tgz} + name: extend + version: 3.0.2 + dev: true + + registry.nlark.com/fast-glob/3.2.7: + resolution: {integrity: sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz} + name: fast-glob + version: 3.2.7 + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': registry.nlark.com/@nodelib/fs.stat/2.0.5 + '@nodelib/fs.walk': registry.nlark.com/@nodelib/fs.walk/1.2.8 + glob-parent: registry.nlark.com/glob-parent/5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + dev: true + + registry.nlark.com/fastq/1.12.0: + resolution: {integrity: sha1-7XtqtdYjk/ssxZHIU2UqXDGL95Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fastq/download/fastq-1.12.0.tgz?cache=0&sync_timestamp=1629361837279&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffastq%2Fdownload%2Ffastq-1.12.0.tgz} + name: fastq + version: 1.12.0 + dependencies: + reusify: 1.0.4 + dev: true + + registry.nlark.com/figures/3.2.0: + resolution: {integrity: sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/figures/download/figures-3.2.0.tgz} + name: figures + version: 3.2.0 + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + registry.nlark.com/first-chunk-stream/1.0.0: + resolution: {integrity: sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/first-chunk-stream/download/first-chunk-stream-1.0.0.tgz} + name: first-chunk-stream + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/flagged-respawn/1.0.1: + resolution: {integrity: sha1-595vEnnd2cqarIpZcdYYYGs6q0E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/flagged-respawn/download/flagged-respawn-1.0.1.tgz} + name: flagged-respawn + version: 1.0.1 + engines: {node: '>= 0.10'} + dev: true + + registry.nlark.com/flatted/3.2.2: + resolution: {integrity: sha1-ZL/tXLaP48p4s+shStl7Y77c5WE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/flatted/download/flatted-3.2.2.tgz} + name: flatted + version: 3.2.2 + dev: true + + registry.nlark.com/follow-redirects/1.14.2: + resolution: {integrity: sha1-zsuCUEfAD15msUL5D+1PUV3seJs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.2.tgz} + name: follow-redirects + version: 1.14.2 + engines: {node: '>=4.0'} + + registry.nlark.com/fs-extra/10.0.0: + resolution: {integrity: sha1-n/YbZV3eU/s0qC34S7IUzoAuF8E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz} + name: fs-extra + version: 10.0.0 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.nlark.com/graceful-fs/4.2.8 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + registry.nlark.com/get-own-enumerable-property-symbols/3.0.2: + resolution: {integrity: sha1-tf3nfyLL4185C04ImSLFC85u9mQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz} + name: get-own-enumerable-property-symbols + version: 3.0.2 + dev: true + + registry.nlark.com/get-pixels/3.3.3: + resolution: {integrity: sha1-ceLf1L77gQtUeKYcY1SACXbOAcc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-pixels/download/get-pixels-3.3.3.tgz} + name: get-pixels + version: 3.3.3 + dependencies: + data-uri-to-buffer: registry.nlark.com/data-uri-to-buffer/0.0.3 + jpeg-js: registry.nlark.com/jpeg-js/0.4.3 + mime-types: registry.nlark.com/mime-types/2.1.32 + ndarray: registry.nlark.com/ndarray/1.0.19 + ndarray-pack: registry.nlark.com/ndarray-pack/1.2.1 + node-bitmap: registry.nlark.com/node-bitmap/0.0.1 + omggif: registry.nlark.com/omggif/1.0.10 + parse-data-uri: registry.nlark.com/parse-data-uri/0.2.0 + pngjs: registry.nlark.com/pngjs/3.4.0 + request: 2.88.2 + through: 2.3.8 + dev: true + + registry.nlark.com/gif-encoder/0.4.3: + resolution: {integrity: sha1-iitP6MqJWkjjoLbLs0CgpqNXGJk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/gif-encoder/download/gif-encoder-0.4.3.tgz} + name: gif-encoder + version: 0.4.3 + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.1.14 + dev: true + + registry.nlark.com/glob-parent/5.1.2: + resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.1 + dev: true + + registry.nlark.com/glob/7.1.7: + resolution: {integrity: sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/glob/download/glob-7.1.7.tgz} + name: glob + version: 7.1.7 + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + registry.nlark.com/globals/11.12.0: + resolution: {integrity: sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globals/download/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: true + + registry.nlark.com/globals/13.11.0: + resolution: {integrity: sha1-QO9njaEX/nvS4o8fqySVG9AlW+c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globals/download/globals-13.11.0.tgz} + name: globals + version: 13.11.0 + engines: {node: '>=8'} + dependencies: + type-fest: registry.nlark.com/type-fest/0.20.2 + dev: true + + registry.nlark.com/globby/10.0.2: + resolution: {integrity: sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globby/download/globby-10.0.2.tgz?cache=0&sync_timestamp=1629804366639&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-10.0.2.tgz} + name: globby + version: 10.0.2 + engines: {node: '>=8'} + dependencies: + '@types/glob': registry.nlark.com/@types/glob/7.1.4 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: registry.nlark.com/fast-glob/3.2.7 + glob: registry.nlark.com/glob/7.1.7 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + registry.nlark.com/globby/11.0.4: + resolution: {integrity: sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globby/download/globby-11.0.4.tgz?cache=0&sync_timestamp=1629804366639&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.4.tgz} + name: globby + version: 11.0.4 + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: registry.nlark.com/fast-glob/3.2.7 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + registry.nlark.com/globule/1.3.3: + resolution: {integrity: sha1-gRkZ7qwatzROkF8uO+gKE0R5c8I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globule/download/globule-1.3.3.tgz} + name: globule + version: 1.3.3 + engines: {node: '>= 0.10'} + dependencies: + glob: registry.nlark.com/glob/7.1.7 + lodash: 4.17.21 + minimatch: 3.0.4 + dev: true + + registry.nlark.com/graceful-fs/4.2.8: + resolution: {integrity: sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.8.tgz} + name: graceful-fs + version: 4.2.8 + dev: true + + registry.nlark.com/handlebars-layouts/3.1.4: + resolution: {integrity: sha1-JrO+uTG0uHffv35v6vQFjuYiiwI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/handlebars-layouts/download/handlebars-layouts-3.1.4.tgz} + name: handlebars-layouts + version: 3.1.4 + engines: {node: '>= 0.10'} + dev: true + + registry.nlark.com/has-flag/1.0.0: + resolution: {integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-1.0.0.tgz} + name: has-flag + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.nlark.com/has-flag/4.0.0: + resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/hotkeys-js/3.8.7: + resolution: {integrity: sha1-wWyrl4tT1yQvhgyjky6Xa5I5mYE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/hotkeys-js/download/hotkeys-js-3.8.7.tgz} + name: hotkeys-js + version: 3.8.7 + dev: false + + registry.nlark.com/htmlparser2/3.10.1: + resolution: {integrity: sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/htmlparser2/download/htmlparser2-3.10.1.tgz} + name: htmlparser2 + version: 3.10.1 + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: registry.nlark.com/domutils/1.7.0 + entities: registry.nlark.com/entities/1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + registry.nlark.com/http-server/0.12.3: + resolution: {integrity: sha1-ugRx0OzEJYhmFss1xPryeRQKDTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/http-server/download/http-server-0.12.3.tgz?cache=0&sync_timestamp=1629469581919&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz} + name: http-server + version: 0.12.3 + engines: {node: '>=6'} + hasBin: true + dependencies: + basic-auth: 1.1.0 + colors: 1.4.0 + corser: 2.0.1 + ecstatic: registry.nlark.com/ecstatic/3.3.2 + http-proxy: 1.18.1 + minimist: 1.2.5 + opener: 1.5.2 + portfinder: 1.0.28 + secure-compare: registry.nlark.com/secure-compare/3.0.1 + union: registry.nlark.com/union/0.5.0 + dev: true + + registry.nlark.com/human-signals/2.1.0: + resolution: {integrity: sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/human-signals/download/human-signals-2.1.0.tgz} + name: human-signals + version: 2.1.0 + engines: {node: '>=10.17.0'} + dev: true + + registry.nlark.com/husky/7.0.2: + resolution: {integrity: sha1-IZANoPMBmazKQ6RsBDxK2Erojf8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/husky/download/husky-7.0.2.tgz?cache=0&sync_timestamp=1629876497873&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhusky%2Fdownload%2Fhusky-7.0.2.tgz} + name: husky + version: 7.0.2 + engines: {node: '>=12'} + hasBin: true + dev: true + + registry.nlark.com/iconv-lite/0.4.24: + resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + registry.nlark.com/inquirer/7.3.3: + resolution: {integrity: sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inquirer/download/inquirer-7.3.3.tgz} + name: inquirer + version: 7.3.3 + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: registry.nlark.com/chalk/4.1.2 + cli-cursor: registry.nlark.com/cli-cursor/3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: registry.nlark.com/figures/3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: registry.nlark.com/rxjs/6.6.7 + string-width: 4.2.2 + strip-ansi: 6.0.0 + through: 2.3.8 + dev: true + + registry.nlark.com/iota-array/1.0.0: + resolution: {integrity: sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/iota-array/download/iota-array-1.0.0.tgz} + name: iota-array + version: 1.0.0 + dev: true + + registry.nlark.com/is-core-module/2.6.0: + resolution: {integrity: sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-core-module/download/is-core-module-2.6.0.tgz} + name: is-core-module + version: 2.6.0 + dependencies: + has: 1.0.3 + dev: true + + registry.nlark.com/is-lower-case/1.1.3: + resolution: {integrity: sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-lower-case/download/is-lower-case-1.1.3.tgz} + name: is-lower-case + version: 1.1.3 + dependencies: + lower-case: 1.1.4 + dev: true + + registry.nlark.com/is-path-cwd/2.2.0: + resolution: {integrity: sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1628686699494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz} + name: is-path-cwd + version: 2.2.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/is-path-inside/3.0.3: + resolution: {integrity: sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-path-inside/download/is-path-inside-3.0.3.tgz} + name: is-path-inside + version: 3.0.3 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/is-relative/1.0.0: + resolution: {integrity: sha1-obtpNc6MXboei5dUubLcwCDiJg0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-relative/download/is-relative-1.0.0.tgz} + name: is-relative + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + registry.nlark.com/is-stream/2.0.1: + resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/is-unicode-supported/0.1.0: + resolution: {integrity: sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-unicode-supported/download/is-unicode-supported-0.1.0.tgz} + name: is-unicode-supported + version: 0.1.0 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/isarray/0.0.1: + resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isarray/download/isarray-0.0.1.tgz} + name: isarray + version: 0.0.1 + dev: true + + registry.nlark.com/isarray/1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isarray/download/isarray-1.0.0.tgz} + name: isarray + version: 1.0.0 + dev: true + + registry.nlark.com/isbinaryfile/4.0.8: + resolution: {integrity: sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isbinaryfile/download/isbinaryfile-4.0.8.tgz} + name: isbinaryfile + version: 4.0.8 + engines: {node: '>= 8.0.0'} + dev: true + + registry.nlark.com/jpeg-js/0.4.3: + resolution: {integrity: sha1-YVjgnxmDrXc4E3BL6AaAVQ7/l3s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jpeg-js/download/jpeg-js-0.4.3.tgz} + name: jpeg-js + version: 0.4.3 + dev: true + + registry.nlark.com/js-base64/2.6.4: + resolution: {integrity: sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-base64/download/js-base64-2.6.4.tgz} + name: js-base64 + version: 2.6.4 + dev: true + + registry.nlark.com/js-cookie/2.2.1: + resolution: {integrity: sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-cookie/download/js-cookie-2.2.1.tgz} + name: js-cookie + version: 2.2.1 + dev: false + + registry.nlark.com/js-tokens/4.0.0: + resolution: {integrity: sha1-GSA/tZmR35jjoocFDUZHzerzJJk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: true + + registry.nlark.com/json-content-demux/0.1.4: + resolution: {integrity: sha1-bVc/u1orIkriJXNuKH8y6pGkJz0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json-content-demux/download/json-content-demux-0.1.4.tgz} + name: json-content-demux + version: 0.1.4 + engines: {node: '>= 0.6.0'} + dev: true + + registry.nlark.com/json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz?cache=0&sync_timestamp=1620563338517&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz} + name: json-stable-stringify-without-jsonify + version: 1.0.1 + dev: true + + registry.nlark.com/json5/1.0.1: + resolution: {integrity: sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json5/download/json5-1.0.1.tgz} + name: json5 + version: 1.0.1 + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + registry.nlark.com/json5/2.2.0: + resolution: {integrity: sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json5/download/json5-2.2.0.tgz} + name: json5 + version: 2.2.0 + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + registry.nlark.com/known-css-properties/0.21.0: + resolution: {integrity: sha1-FfvQu7g0R/POCdivJH7UfGjt6A0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/known-css-properties/download/known-css-properties-0.21.0.tgz} + name: known-css-properties + version: 0.21.0 + dev: true + + registry.nlark.com/layout/2.2.0: + resolution: {integrity: sha1-MeRL/BjdEBmz/7II5AKku/4uavQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/layout/download/layout-2.2.0.tgz} + name: layout + version: 2.2.0 + engines: {node: '>= 0.8.0'} + dependencies: + bin-pack: registry.nlark.com/bin-pack/1.0.2 + dev: true + + registry.nlark.com/liftoff/2.5.0: + resolution: {integrity: sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/liftoff/download/liftoff-2.5.0.tgz} + name: liftoff + version: 2.5.0 + engines: {node: '>= 0.8'} + dependencies: + extend: registry.nlark.com/extend/3.0.2 + findup-sync: 2.0.0 + fined: 1.2.0 + flagged-respawn: registry.nlark.com/flagged-respawn/1.0.1 + is-plain-object: 2.0.4 + object.map: 1.0.1 + rechoir: registry.nlark.com/rechoir/0.6.2 + resolve: 1.20.0 + dev: true + + registry.nlark.com/lint-staged/11.1.2: + resolution: {integrity: sha1-TdeHgq5D7m6/KWnK2a9npGszzZA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lint-staged/download/lint-staged-11.1.2.tgz?cache=0&sync_timestamp=1628226980816&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flint-staged%2Fdownload%2Flint-staged-11.1.2.tgz} + name: lint-staged + version: 11.1.2 + hasBin: true + dependencies: + chalk: registry.nlark.com/chalk/4.1.2 + cli-truncate: registry.nlark.com/cli-truncate/2.1.0 + commander: registry.nlark.com/commander/7.2.0 + cosmiconfig: registry.nlark.com/cosmiconfig/7.0.1 + debug: registry.nlark.com/debug/4.3.2 + enquirer: 2.3.6 + execa: registry.nlark.com/execa/5.1.1 + listr2: registry.nlark.com/listr2/3.11.0_enquirer@2.3.6 + log-symbols: 4.1.0 + micromatch: 4.0.4 + normalize-path: 3.0.0 + please-upgrade-node: 3.2.0 + string-argv: 0.3.1 + stringify-object: registry.nlark.com/stringify-object/3.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/listr2/3.11.0_enquirer@2.3.6: + resolution: {integrity: sha1-l3GwJAeHWqeOc9bg/2VBu+wKruk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/listr2/download/listr2-3.11.0.tgz} + id: registry.nlark.com/listr2/3.11.0 + name: listr2 + version: 3.11.0 + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + dependencies: + cli-truncate: registry.nlark.com/cli-truncate/2.1.0 + colorette: registry.nlark.com/colorette/1.3.0 + enquirer: 2.3.6 + log-update: registry.nlark.com/log-update/4.0.0 + p-map: registry.nlark.com/p-map/4.0.0 + rxjs: registry.nlark.com/rxjs/6.6.7 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + registry.nlark.com/locate-path/5.0.0: + resolution: {integrity: sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.nlark.com/p-locate/4.1.0 + dev: true + + registry.nlark.com/log-update/4.0.0: + resolution: {integrity: sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/log-update/download/log-update-4.0.0.tgz} + name: log-update + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: registry.nlark.com/cli-cursor/3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + registry.nlark.com/magic-string/0.25.7: + resolution: {integrity: sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/magic-string/download/magic-string-0.25.7.tgz} + name: magic-string + version: 0.25.7 + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + registry.nlark.com/mdast-util-from-markdown/0.8.5: + resolution: {integrity: sha1-0e8spCvDd+ywRjqYeRDa6JvZoow=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mdast-util-from-markdown/download/mdast-util-from-markdown-0.8.5.tgz} + name: mdast-util-from-markdown + version: 0.8.5 + dependencies: + '@types/mdast': registry.nlark.com/@types/mdast/3.0.10 + mdast-util-to-string: registry.nlark.com/mdast-util-to-string/2.0.0 + micromark: registry.nlark.com/micromark/2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + dev: true + + registry.nlark.com/mdast-util-to-markdown/0.6.5: + resolution: {integrity: sha1-sz9nyoINaebMUnqT1AOSSbUEvr4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mdast-util-to-markdown/download/mdast-util-to-markdown-0.6.5.tgz} + name: mdast-util-to-markdown + version: 0.6.5 + dependencies: + '@types/unist': registry.nlark.com/@types/unist/2.0.6 + longest-streak: 2.0.4 + mdast-util-to-string: registry.nlark.com/mdast-util-to-string/2.0.0 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + zwitch: 1.0.5 + dev: true + + registry.nlark.com/mdast-util-to-string/2.0.0: + resolution: {integrity: sha1-uM/mpxPhCRy1tyj8SIhaR2f4uXs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mdast-util-to-string/download/mdast-util-to-string-2.0.0.tgz} + name: mdast-util-to-string + version: 2.0.0 + dev: true + + registry.nlark.com/mdn-data/2.0.14: + resolution: {integrity: sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz} + name: mdn-data + version: 2.0.14 + dev: true + + registry.nlark.com/meow/9.0.0: + resolution: {integrity: sha1-zZUQvFysne59A8c+4fmtlZ9Oo2Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/meow/download/meow-9.0.0.tgz?cache=0&sync_timestamp=1627561001606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-9.0.0.tgz} + name: meow + version: 9.0.0 + engines: {node: '>=10'} + dependencies: + '@types/minimist': registry.nlark.com/@types/minimist/1.2.2 + camelcase-keys: registry.nlark.com/camelcase-keys/6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: registry.nlark.com/normalize-package-data/3.0.3 + read-pkg-up: 7.0.1 + redent: registry.nlark.com/redent/3.0.0 + trim-newlines: registry.nlark.com/trim-newlines/3.0.1 + type-fest: registry.nlark.com/type-fest/0.18.1 + yargs-parser: registry.nlark.com/yargs-parser/20.2.9 + dev: true + + registry.nlark.com/micromark/2.11.4: + resolution: {integrity: sha1-0TQ2E47qgmOD6CJEnJpcUO5EZlo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/micromark/download/micromark-2.11.4.tgz} + name: micromark + version: 2.11.4 + dependencies: + debug: registry.nlark.com/debug/4.3.2 + parse-entities: 2.0.0 + dev: true + + registry.nlark.com/mime-db/1.49.0: + resolution: {integrity: sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mime-db/download/mime-db-1.49.0.tgz} + name: mime-db + version: 1.49.0 + engines: {node: '>= 0.6'} + dev: true + + registry.nlark.com/mime-types/2.1.32: + resolution: {integrity: sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mime-types/download/mime-types-2.1.32.tgz?cache=0&sync_timestamp=1627407854850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.32.tgz} + name: mime-types + version: 2.1.32 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.nlark.com/mime-db/1.49.0 + dev: true + + registry.nlark.com/mitt/2.1.0: + resolution: {integrity: sha1-90BXfCMXbGIFsSGylzUU6t4bIjA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mitt/download/mitt-2.1.0.tgz} + name: mitt + version: 2.1.0 + dev: false + + registry.nlark.com/mitt/3.0.0: + resolution: {integrity: sha1-ae+b1cgP9vV0c+jYkybQHEFL4L0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mitt/download/mitt-3.0.0.tgz} + name: mitt + version: 3.0.0 + dev: false + + registry.nlark.com/ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ms/download/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + dev: true + + registry.nlark.com/ms/2.1.2: + resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ms/download/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.nlark.com/ms/2.1.3: + resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ms/download/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + dev: true + + registry.nlark.com/nanoid/3.1.25: + resolution: {integrity: sha1-CcoydHwOVD8OGBS303k0d/nI4VI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/nanoid/download/nanoid-3.1.25.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.25.tgz} + name: nanoid + version: 3.1.25 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + registry.nlark.com/ndarray-ops/1.2.2: + resolution: {integrity: sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ndarray-ops/download/ndarray-ops-1.2.2.tgz} + name: ndarray-ops + version: 1.2.2 + dependencies: + cwise-compiler: registry.nlark.com/cwise-compiler/1.1.3 + dev: true + + registry.nlark.com/ndarray-pack/1.2.1: + resolution: {integrity: sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ndarray-pack/download/ndarray-pack-1.2.1.tgz} + name: ndarray-pack + version: 1.2.1 + dependencies: + cwise-compiler: registry.nlark.com/cwise-compiler/1.1.3 + ndarray: registry.nlark.com/ndarray/1.0.19 + dev: true + + registry.nlark.com/ndarray/1.0.19: + resolution: {integrity: sha1-Z4W19d+li4PjGuWyoFjP0as/aU4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ndarray/download/ndarray-1.0.19.tgz} + name: ndarray + version: 1.0.19 + dependencies: + iota-array: registry.nlark.com/iota-array/1.0.0 + is-buffer: 1.1.6 + dev: true + + registry.nlark.com/node-bitmap/0.0.1: + resolution: {integrity: sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/node-bitmap/download/node-bitmap-0.0.1.tgz} + name: node-bitmap + version: 0.0.1 + engines: {node: '>=v0.6.5'} + dev: true + + registry.nlark.com/node-plop/0.26.2: + resolution: {integrity: sha1-wlI1ltq04oNg5hW3aLEbTWDVsbk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/node-plop/download/node-plop-0.26.2.tgz} + name: node-plop + version: 0.26.2 + engines: {node: '>=8.9.4'} + dependencies: + '@babel/runtime-corejs3': registry.nlark.com/@babel/runtime-corejs3/7.15.3 + '@types/inquirer': registry.nlark.com/@types/inquirer/6.5.0 + change-case: 3.1.0 + del: 5.1.0 + globby: registry.nlark.com/globby/10.0.2 + handlebars: 4.7.7 + inquirer: registry.nlark.com/inquirer/7.3.3 + isbinaryfile: registry.nlark.com/isbinaryfile/4.0.8 + lodash.get: 4.4.2 + mkdirp: 0.5.5 + resolve: 1.20.0 + dev: true + + registry.nlark.com/node-releases/1.1.75: + resolution: {integrity: sha1-bdjIdrmJehuOWgLeJq+nm7VOu/4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/node-releases/download/node-releases-1.1.75.tgz} + name: node-releases + version: 1.1.75 + dev: true + + registry.nlark.com/normalize-package-data/2.5.0: + resolution: {integrity: sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1629302655389&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz} + name: normalize-package-data + version: 2.5.0 + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.20.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + registry.nlark.com/normalize-package-data/3.0.3: + resolution: {integrity: sha1-28w+LaWVCaCYNCKITNFy7v36Ul4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-package-data/download/normalize-package-data-3.0.3.tgz?cache=0&sync_timestamp=1629302655389&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-3.0.3.tgz} + name: normalize-package-data + version: 3.0.3 + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.0.2 + is-core-module: registry.nlark.com/is-core-module/2.6.0 + semver: 7.3.5 + validate-npm-package-license: 3.0.4 + dev: true + + registry.nlark.com/obj-extend/0.1.0: + resolution: {integrity: sha1-u0SKR3X7les0p4H5CLusLfI9u1s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/obj-extend/download/obj-extend-0.1.0.tgz} + name: obj-extend + version: 0.1.0 + dev: true + + registry.nlark.com/object-inspect/1.11.0: + resolution: {integrity: sha1-nc6xRs7dQUig2eUauI00z1CZIrE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz} + name: object-inspect + version: 1.11.0 + dev: true + + registry.nlark.com/object.defaults/1.1.0: + resolution: {integrity: sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object.defaults/download/object.defaults-1.1.0.tgz} + name: object.defaults + version: 1.1.0 + engines: {node: '>=0.10.0'} + dependencies: + array-each: registry.nlark.com/array-each/1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + registry.nlark.com/omggif/1.0.10: + resolution: {integrity: sha1-3ar5DUpC9TLp58s6lezdR/F8exk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/omggif/download/omggif-1.0.10.tgz} + name: omggif + version: 1.0.10 + dev: true + + registry.nlark.com/ora/3.4.0: + resolution: {integrity: sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ora/download/ora-3.4.0.tgz} + name: ora + version: 3.4.0 + engines: {node: '>=6'} + dependencies: + chalk: registry.nlark.com/chalk/2.4.2 + cli-cursor: registry.nlark.com/cli-cursor/2.1.0 + cli-spinners: 2.6.0 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + dev: true + + registry.nlark.com/p-limit/2.3.0: + resolution: {integrity: sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + registry.nlark.com/p-locate/4.1.0: + resolution: {integrity: sha1-o0KLtwiLOmApL2aRkni3wpetTwc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.nlark.com/p-limit/2.3.0 + dev: true + + registry.nlark.com/p-map/3.0.0: + resolution: {integrity: sha1-1wTZr4orpoTiYA2aIVmD1BQal50=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-map/download/p-map-3.0.0.tgz?cache=0&sync_timestamp=1627084255349&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-map%2Fdownload%2Fp-map-3.0.0.tgz} + name: p-map + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + registry.nlark.com/p-map/4.0.0: + resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1627084255349&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz} + name: p-map + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + registry.nlark.com/parse-data-uri/0.2.0: + resolution: {integrity: sha1-vwTYUd1ch7CrI45dAazklLYEtMk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/parse-data-uri/download/parse-data-uri-0.2.0.tgz} + name: parse-data-uri + version: 0.2.0 + dependencies: + data-uri-to-buffer: registry.nlark.com/data-uri-to-buffer/0.0.3 + dev: true + + registry.nlark.com/parseurl/1.3.3: + resolution: {integrity: sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/parseurl/download/parseurl-1.3.3.tgz} + name: parseurl + version: 1.3.3 + engines: {node: '>= 0.8'} + dev: true + + registry.nlark.com/path-case/2.1.1: + resolution: {integrity: sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-case/download/path-case-2.1.1.tgz} + name: path-case + version: 2.1.1 + dependencies: + no-case: 2.3.2 + dev: true + + registry.nlark.com/path-exists/4.0.0: + resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/path-parse/1.0.7: + resolution: {integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.nlark.com/picomatch/2.3.0: + resolution: {integrity: sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz} + name: picomatch + version: 2.3.0 + engines: {node: '>=8.6'} + dev: true + + registry.nlark.com/pixelsmith/2.4.1: + resolution: {integrity: sha1-TM/s9utUR9odOP4m8tcNJGpAF54=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pixelsmith/download/pixelsmith-2.4.1.tgz} + name: pixelsmith + version: 2.4.1 + engines: {node: '>= 8.0.0'} + dependencies: + async: registry.nlark.com/async/0.9.2 + concat-stream: 1.5.2 + get-pixels: registry.nlark.com/get-pixels/3.3.3 + mime-types: registry.nlark.com/mime-types/2.1.32 + ndarray: registry.nlark.com/ndarray/1.0.19 + obj-extend: registry.nlark.com/obj-extend/0.1.0 + save-pixels: registry.nlark.com/save-pixels/2.3.6 + vinyl-file: registry.nlark.com/vinyl-file/1.3.0 + dev: true + + registry.nlark.com/pngjs-nozlib/1.0.0: + resolution: {integrity: sha1-nmTWAs/pzOTZ1Zl9BodCmnPwt9c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pngjs-nozlib/download/pngjs-nozlib-1.0.0.tgz} + name: pngjs-nozlib + version: 1.0.0 + engines: {iojs: '>= 1.0.0', node: '>=0.10.0'} + dev: true + + registry.nlark.com/pngjs/3.4.0: + resolution: {integrity: sha1-mcp9clll+2VYFOr2XzjxK72/VV8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pngjs/download/pngjs-3.4.0.tgz} + name: pngjs + version: 3.4.0 + engines: {node: '>=4.0.0'} + dev: true + + registry.nlark.com/postcss-less/3.1.4: + resolution: {integrity: sha1-Np9YZCtZKO+Jj/vBpuk8lYMExa0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-less/download/postcss-less-3.1.4.tgz} + name: postcss-less + version: 3.1.4 + engines: {node: '>=6.14.4'} + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + registry.nlark.com/postcss-modules-scope/3.0.0_postcss@8.3.6: + resolution: {integrity: sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz} + id: registry.nlark.com/postcss-modules-scope/3.0.0 + name: postcss-modules-scope + version: 3.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.nlark.com/postcss/8.3.6 + postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + dev: true + + registry.nlark.com/postcss-modules/4.2.2_postcss@8.3.6: + resolution: {integrity: sha1-Xnd3xaiWTqF2kZ2QsuVO+JEyHOU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules/download/postcss-modules-4.2.2.tgz?cache=0&sync_timestamp=1627039302372&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-modules%2Fdownload%2Fpostcss-modules-4.2.2.tgz} + id: registry.nlark.com/postcss-modules/4.2.2 + name: postcss-modules + version: 4.2.2 + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 2.0.1 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: registry.nlark.com/postcss/8.3.6 + postcss-modules-extract-imports: 3.0.0_postcss@8.3.6 + postcss-modules-local-by-default: 4.0.0_postcss@8.3.6 + postcss-modules-scope: registry.nlark.com/postcss-modules-scope/3.0.0_postcss@8.3.6 + postcss-modules-values: 4.0.0_postcss@8.3.6 + string-hash: 1.1.3 + dev: true + + registry.nlark.com/postcss-prefix-selector/1.12.0: + resolution: {integrity: sha1-HmK7be2DDFwdTsc3hVjfrqr16mI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-prefix-selector/download/postcss-prefix-selector-1.12.0.tgz} + name: postcss-prefix-selector + version: 1.12.0 + dependencies: + postcss: registry.nlark.com/postcss/8.3.6 + dev: true + + registry.nlark.com/postcss-safe-parser/4.0.2: + resolution: {integrity: sha1-ptTkjw832ffBGypYG/APi6SHC5Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-safe-parser/download/postcss-safe-parser-4.0.2.tgz} + name: postcss-safe-parser + version: 4.0.2 + engines: {node: '>=6.0.0'} + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + registry.nlark.com/postcss-sass/0.4.4: + resolution: {integrity: sha1-kfDzRHtFzjcyJ6mLYfjY8HhShaM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-sass/download/postcss-sass-0.4.4.tgz} + name: postcss-sass + version: 0.4.4 + dependencies: + gonzales-pe: 4.3.0 + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + registry.nlark.com/postcss-scss/2.1.1: + resolution: {integrity: sha1-7Dp1+imlXgFrkL8yaQJsU8HSs4M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-scss/download/postcss-scss-2.1.1.tgz} + name: postcss-scss + version: 2.1.1 + engines: {node: '>=6.0.0'} + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + registry.nlark.com/postcss-selector-parser/6.0.6: + resolution: {integrity: sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz} + name: postcss-selector-parser + version: 6.0.6 + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + registry.nlark.com/postcss/5.2.18: + resolution: {integrity: sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss/download/postcss-5.2.18.tgz} + name: postcss + version: 5.2.18 + engines: {node: '>=0.12'} + dependencies: + chalk: registry.nlark.com/chalk/1.1.3 + js-base64: registry.nlark.com/js-base64/2.6.4 + source-map: 0.5.7 + supports-color: registry.nlark.com/supports-color/3.2.3 + dev: true + + registry.nlark.com/postcss/7.0.36: + resolution: {integrity: sha1-BW+M/6k5ZiqPWQWVDAfVKFZE38s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss/download/postcss-7.0.36.tgz} + name: postcss + version: 7.0.36 + engines: {node: '>=6.0.0'} + dependencies: + chalk: registry.nlark.com/chalk/2.4.2 + source-map: 0.6.1 + supports-color: registry.nlark.com/supports-color/6.1.0 + dev: true + + registry.nlark.com/postcss/8.3.6: + resolution: {integrity: sha1-JzDddql5afN/U7mmCWGXvjEcxOo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss/download/postcss-8.3.6.tgz} + name: postcss + version: 8.3.6 + engines: {node: ^10 || ^12 || >=14} + dependencies: + colorette: registry.nlark.com/colorette/1.3.0 + nanoid: registry.nlark.com/nanoid/3.1.25 + source-map-js: registry.nlark.com/source-map-js/0.6.2 + dev: true + + registry.nlark.com/posthtml-parser/0.2.1: + resolution: {integrity: sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/posthtml-parser/download/posthtml-parser-0.2.1.tgz} + name: posthtml-parser + version: 0.2.1 + dependencies: + htmlparser2: registry.nlark.com/htmlparser2/3.10.1 + isobject: 2.1.0 + dev: true + + registry.nlark.com/posthtml-rename-id/1.0.12: + resolution: {integrity: sha1-z39us3FGvxr6wx5o8YxswZrmFDM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/posthtml-rename-id/download/posthtml-rename-id-1.0.12.tgz} + name: posthtml-rename-id + version: 1.0.12 + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + registry.nlark.com/posthtml-render/1.4.0: + resolution: {integrity: sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/posthtml-render/download/posthtml-render-1.4.0.tgz} + name: posthtml-render + version: 1.4.0 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/posthtml/0.9.2: + resolution: {integrity: sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/posthtml/download/posthtml-0.9.2.tgz} + name: posthtml + version: 0.9.2 + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: registry.nlark.com/posthtml-parser/0.2.1 + posthtml-render: registry.nlark.com/posthtml-render/1.4.0 + dev: true + + registry.nlark.com/query-string/4.3.4: + resolution: {integrity: sha1-u7aTucqRXCMlFbIosaArYJBD2+s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/query-string/download/query-string-4.3.4.tgz} + name: query-string + version: 4.3.4 + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + registry.nlark.com/quick-lru/4.0.1: + resolution: {integrity: sha1-W4h48ROlgheEjGSCAmxz4bpXcn8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/quick-lru/download/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/read-pkg/5.2.0: + resolution: {integrity: sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&sync_timestamp=1628985520600&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz} + name: read-pkg + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': registry.nlark.com/@types/normalize-package-data/2.4.1 + normalize-package-data: registry.nlark.com/normalize-package-data/2.5.0 + parse-json: 5.2.0 + type-fest: registry.nlark.com/type-fest/0.6.0 + dev: true + + registry.nlark.com/rechoir/0.6.2: + resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rechoir/download/rechoir-0.6.2.tgz} + name: rechoir + version: 0.6.2 + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.20.0 + dev: true + + registry.nlark.com/redent/3.0.0: + resolution: {integrity: sha1-5Ve3mYMWu1PJ8fVvpiY1LGljBZ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/redent/download/redent-3.0.0.tgz} + name: redent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: registry.nlark.com/strip-indent/3.0.0 + dev: true + + registry.nlark.com/regenerator-runtime/0.13.9: + resolution: {integrity: sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1627000836896&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz} + name: regenerator-runtime + version: 0.13.9 + dev: true + + registry.nlark.com/regexpp/3.2.0: + resolution: {integrity: sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623676803528&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz} + name: regexpp + version: 3.2.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/remark-parse/9.0.0: + resolution: {integrity: sha1-TSCimWZYgOT0r12Qt8e4qTWFNkA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/remark-parse/download/remark-parse-9.0.0.tgz} + name: remark-parse + version: 9.0.0 + dependencies: + mdast-util-from-markdown: registry.nlark.com/mdast-util-from-markdown/0.8.5 + dev: true + + registry.nlark.com/remark-stringify/9.0.1: + resolution: {integrity: sha1-V20G6RBUiwpxkacfJ7M/EhiGKJQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/remark-stringify/download/remark-stringify-9.0.1.tgz} + name: remark-stringify + version: 9.0.1 + dependencies: + mdast-util-to-markdown: registry.nlark.com/mdast-util-to-markdown/0.6.5 + dev: true + + registry.nlark.com/remark/13.0.0: + resolution: {integrity: sha1-0V2b9xpAL0Aofr42Bntm1Uho5CU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/remark/download/remark-13.0.0.tgz} + name: remark + version: 13.0.0 + dependencies: + remark-parse: registry.nlark.com/remark-parse/9.0.0 + remark-stringify: registry.nlark.com/remark-stringify/9.0.1 + unified: registry.nlark.com/unified/9.2.2 + dev: true + + registry.nlark.com/restore-cursor/2.0.0: + resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/restore-cursor/download/restore-cursor-2.0.0.tgz} + name: restore-cursor + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.3 + dev: true + + registry.nlark.com/restore-cursor/3.1.0: + resolution: {integrity: sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/restore-cursor/download/restore-cursor-3.1.0.tgz} + name: restore-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.3 + dev: true + + registry.nlark.com/rollup/2.56.3: + resolution: {integrity: sha1-tj7a3ZhRsNYYptDmr4IBlVp3rv8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rollup/download/rollup-2.56.3.tgz?cache=0&sync_timestamp=1629698767006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frollup%2Fdownload%2Frollup-2.56.3.tgz} + name: rollup + version: 2.56.3 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + registry.nlark.com/rxjs/6.6.7: + resolution: {integrity: sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rxjs/download/rxjs-6.6.7.tgz} + name: rxjs + version: 6.6.7 + engines: {npm: '>=2.0.0'} + dependencies: + tslib: registry.nlark.com/tslib/1.14.1 + dev: true + + registry.nlark.com/sass/1.38.1: + resolution: {integrity: sha1-VN+xf7FohGtYUDJLgvxi3Gj1G60=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/sass/download/sass-1.38.1.tgz} + name: sass + version: 1.38.1 + engines: {node: '>=8.9.0'} + hasBin: true + dependencies: + chokidar: registry.nlark.com/chokidar/3.5.2 + dev: true + + registry.nlark.com/save-pixels/2.3.6: + resolution: {integrity: sha1-2fQKL2s3T5xh0U8bfe8lkdt/t4A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/save-pixels/download/save-pixels-2.3.6.tgz} + name: save-pixels + version: 2.3.6 + dependencies: + contentstream: registry.nlark.com/contentstream/1.0.0 + gif-encoder: registry.nlark.com/gif-encoder/0.4.3 + jpeg-js: registry.nlark.com/jpeg-js/0.4.3 + ndarray: registry.nlark.com/ndarray/1.0.19 + ndarray-ops: registry.nlark.com/ndarray-ops/1.2.2 + pngjs-nozlib: registry.nlark.com/pngjs-nozlib/1.0.0 + through: 2.3.8 + dev: true + + registry.nlark.com/screenfull/5.1.0: + resolution: {integrity: sha1-hcE8cPTq1MG4qTXHABDf3NLA5cg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/screenfull/download/screenfull-5.1.0.tgz} + name: screenfull + version: 5.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.nlark.com/secure-compare/3.0.1: + resolution: {integrity: sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/secure-compare/download/secure-compare-3.0.1.tgz} + name: secure-compare + version: 3.0.1 + dev: true + + registry.nlark.com/set-value/2.0.1: + resolution: {integrity: sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz} + name: set-value + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + registry.nlark.com/shebang-regex/3.0.0: + resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/snapdragon/0.8.2: + resolution: {integrity: sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/snapdragon/download/snapdragon-0.8.2.tgz} + name: snapdragon + version: 0.8.2 + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: registry.nlark.com/debug/2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + dev: true + + registry.nlark.com/source-map-js/0.6.2: + resolution: {integrity: sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map-js/download/source-map-js-0.6.2.tgz} + name: source-map-js + version: 0.6.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/spdx-license-ids/3.0.10: + resolution: {integrity: sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.10.tgz?cache=0&sync_timestamp=1628483655780&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.10.tgz} + name: spdx-license-ids + version: 3.0.10 + dev: true + + registry.nlark.com/specificity/0.4.1: + resolution: {integrity: sha1-qrXmRQEtsIuhguFRFlc40AiHsBk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/specificity/download/specificity-0.4.1.tgz} + name: specificity + version: 0.4.1 + hasBin: true + dev: true + + registry.nlark.com/spritesheet-templates/10.5.2: + resolution: {integrity: sha1-t1JtHNzt48LL/MspY76b7GBm7Ek=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spritesheet-templates/download/spritesheet-templates-10.5.2.tgz} + name: spritesheet-templates + version: 10.5.2 + engines: {node: '>= 8.0.0'} + dependencies: + handlebars: 4.7.7 + handlebars-layouts: registry.nlark.com/handlebars-layouts/3.1.4 + json-content-demux: registry.nlark.com/json-content-demux/0.1.4 + underscore: 1.13.1 + underscore.string: registry.nlark.com/underscore.string/3.3.5 + dev: true + + registry.nlark.com/spritesmith/3.4.0: + resolution: {integrity: sha1-XPoAQnjJByq0kAoM2AAUHHzyluI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spritesmith/download/spritesmith-3.4.0.tgz} + name: spritesmith + version: 3.4.0 + engines: {node: '>= 4.0.0'} + dependencies: + concat-stream: 1.5.2 + layout: registry.nlark.com/layout/2.2.0 + pixelsmith: registry.nlark.com/pixelsmith/2.4.1 + semver: 5.0.3 + through2: 2.0.5 + dev: true + + registry.nlark.com/stringify-object/3.3.0: + resolution: {integrity: sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stringify-object/download/stringify-object-3.3.0.tgz} + name: stringify-object + version: 3.3.0 + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: registry.nlark.com/get-own-enumerable-property-symbols/3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + registry.nlark.com/strip-bom-stream/1.0.0: + resolution: {integrity: sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-bom-stream/download/strip-bom-stream-1.0.0.tgz} + name: strip-bom-stream + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + first-chunk-stream: registry.nlark.com/first-chunk-stream/1.0.0 + strip-bom: 2.0.0 + dev: true + + registry.nlark.com/strip-final-newline/2.0.0: + resolution: {integrity: sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/strip-indent/3.0.0: + resolution: {integrity: sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-indent/download/strip-indent-3.0.0.tgz} + name: strip-indent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + registry.nlark.com/strip-json-comments/3.1.1: + resolution: {integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz} + name: strip-json-comments + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/stylelint-config-recommended-scss/4.3.0_fd1d61e57b9553f3887f804324f52132: + resolution: {integrity: sha1-cX3CU7TKskbaZUzuII5JnFx5euQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylelint-config-recommended-scss/download/stylelint-config-recommended-scss-4.3.0.tgz} + id: registry.nlark.com/stylelint-config-recommended-scss/4.3.0 + name: stylelint-config-recommended-scss + version: 4.3.0 + peerDependencies: + stylelint: ^10.1.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 + stylelint-scss: ^3.0.0 + dependencies: + stylelint: registry.nlark.com/stylelint/13.13.1 + stylelint-config-recommended: registry.nlark.com/stylelint-config-recommended/5.0.0_stylelint@13.13.1 + stylelint-scss: registry.nlark.com/stylelint-scss/3.20.1_stylelint@13.13.1 + dev: true + + registry.nlark.com/stylelint-config-recommended/5.0.0_stylelint@13.13.1: + resolution: {integrity: sha1-+1ZT9JWmC0k48q0+d3EtnhA5rng=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylelint-config-recommended/download/stylelint-config-recommended-5.0.0.tgz} + id: registry.nlark.com/stylelint-config-recommended/5.0.0 + name: stylelint-config-recommended + version: 5.0.0 + peerDependencies: + stylelint: ^13.13.0 + dependencies: + stylelint: registry.nlark.com/stylelint/13.13.1 + dev: true + + registry.nlark.com/stylelint-config-standard/22.0.0_stylelint@13.13.1: + resolution: {integrity: sha1-yGC+mhPrvBsIRFb6EFJ78TpErd8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylelint-config-standard/download/stylelint-config-standard-22.0.0.tgz} + id: registry.nlark.com/stylelint-config-standard/22.0.0 + name: stylelint-config-standard + version: 22.0.0 + peerDependencies: + stylelint: ^13.13.0 + dependencies: + stylelint: registry.nlark.com/stylelint/13.13.1 + stylelint-config-recommended: registry.nlark.com/stylelint-config-recommended/5.0.0_stylelint@13.13.1 + dev: true + + registry.nlark.com/stylelint-scss/3.20.1_stylelint@13.13.1: + resolution: {integrity: sha1-iPF12c/hyBpyhYvQ01UM9hUw4hI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylelint-scss/download/stylelint-scss-3.20.1.tgz} + id: registry.nlark.com/stylelint-scss/3.20.1 + name: stylelint-scss + version: 3.20.1 + engines: {node: '>=8'} + peerDependencies: + stylelint: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 + dependencies: + lodash: 4.17.21 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + postcss-value-parser: 4.1.0 + stylelint: registry.nlark.com/stylelint/13.13.1 + dev: true + + registry.nlark.com/stylelint/13.13.1: + resolution: {integrity: sha1-/KnJ9d55kKsmoA8We4l48IOhjzw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylelint/download/stylelint-13.13.1.tgz} + name: stylelint + version: 13.13.1 + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@stylelint/postcss-css-in-js': 0.37.2_2b33a41d320e3e2012e5b3b0fadc703b + '@stylelint/postcss-markdown': 0.36.2_2b33a41d320e3e2012e5b3b0fadc703b + autoprefixer: registry.nlark.com/autoprefixer/9.8.6 + balanced-match: 2.0.0 + chalk: registry.nlark.com/chalk/4.1.2 + cosmiconfig: registry.nlark.com/cosmiconfig/7.0.1 + debug: registry.nlark.com/debug/4.3.2 + execall: 2.0.0 + fast-glob: registry.nlark.com/fast-glob/3.2.7 + fastest-levenshtein: 1.0.12 + file-entry-cache: 6.0.1 + get-stdin: 8.0.0 + global-modules: 2.0.0 + globby: registry.nlark.com/globby/11.0.4 + globjoin: 0.1.4 + html-tags: 3.1.0 + ignore: 5.1.8 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + known-css-properties: registry.nlark.com/known-css-properties/0.21.0 + lodash: 4.17.21 + log-symbols: 4.1.0 + mathml-tag-names: 2.1.3 + meow: registry.nlark.com/meow/9.0.0 + micromatch: 4.0.4 + normalize-selector: 0.2.0 + postcss: registry.nlark.com/postcss/7.0.36 + postcss-html: 0.36.0_2b33a41d320e3e2012e5b3b0fadc703b + postcss-less: registry.nlark.com/postcss-less/3.1.4 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: registry.nlark.com/postcss-safe-parser/4.0.2 + postcss-sass: registry.nlark.com/postcss-sass/0.4.4 + postcss-scss: registry.nlark.com/postcss-scss/2.1.1 + postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + postcss-syntax: 0.36.2_postcss@7.0.36 + postcss-value-parser: 4.1.0 + resolve-from: 5.0.0 + slash: 3.0.0 + specificity: registry.nlark.com/specificity/0.4.1 + string-width: 4.2.2 + strip-ansi: 6.0.0 + style-search: 0.1.0 + sugarss: registry.nlark.com/sugarss/2.0.0 + svg-tags: 1.0.0 + table: registry.nlark.com/table/6.7.1 + v8-compile-cache: 2.3.0 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/sugarss/2.0.0: + resolution: {integrity: sha1-3dduASSyl9QL88yjHIsi7LQ7xh0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/sugarss/download/sugarss-2.0.0.tgz} + name: sugarss + version: 2.0.0 + dependencies: + postcss: registry.nlark.com/postcss/7.0.36 + dev: true + + registry.nlark.com/supports-color/2.0.0: + resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz} + name: supports-color + version: 2.0.0 + engines: {node: '>=0.8.0'} + dev: true + + registry.nlark.com/supports-color/3.2.3: + resolution: {integrity: sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-3.2.3.tgz} + name: supports-color + version: 3.2.3 + engines: {node: '>=0.8.0'} + dependencies: + has-flag: registry.nlark.com/has-flag/1.0.0 + dev: true + + registry.nlark.com/supports-color/5.5.0: + resolution: {integrity: sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.nlark.com/has-flag/3.0.0 + dev: true + + registry.nlark.com/supports-color/6.1.0: + resolution: {integrity: sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz} + name: supports-color + version: 6.1.0 + engines: {node: '>=6'} + dependencies: + has-flag: registry.nlark.com/has-flag/3.0.0 + dev: true + + registry.nlark.com/supports-color/7.2.0: + resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.nlark.com/has-flag/4.0.0 + dev: true + + registry.nlark.com/svgo/2.4.0: + resolution: {integrity: sha1-DEJlMQH9ZoaSwPabVbjXsYLvQis=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/svgo/download/svgo-2.4.0.tgz} + name: svgo + version: 2.4.0 + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': registry.nlark.com/@trysound/sax/0.1.1 + colorette: registry.nlark.com/colorette/1.3.0 + commander: registry.nlark.com/commander/7.2.0 + css-select: registry.nlark.com/css-select/4.1.3 + css-tree: registry.nlark.com/css-tree/1.1.3 + csso: 4.2.0 + stable: 0.1.8 + dev: true + + registry.nlark.com/table/6.7.1: + resolution: {integrity: sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/table/download/table-6.7.1.tgz} + name: table + version: 6.7.1 + engines: {node: '>=10.0.0'} + dependencies: + ajv: registry.nlark.com/ajv/8.6.2 + lodash.clonedeep: 4.5.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + registry.nlark.com/terser/4.8.0: + resolution: {integrity: sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/terser/download/terser-4.8.0.tgz} + name: terser + version: 4.8.0 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + commander: registry.nlark.com/commander/2.20.3 + source-map: 0.6.1 + source-map-support: 0.5.19 + dev: true + + registry.nlark.com/tinymce/5.9.0: + resolution: {integrity: sha1-xXmrM34xXMVPVo9l0IEALm4dw+Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tinymce/download/tinymce-5.9.0.tgz} + name: tinymce + version: 5.9.0 + dev: false + + registry.nlark.com/title-case/2.1.1: + resolution: {integrity: sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/title-case/download/title-case-2.1.1.tgz} + name: title-case + version: 2.1.1 + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + dev: true + + registry.nlark.com/to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628419116313&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + + registry.nlark.com/trim-newlines/3.0.1: + resolution: {integrity: sha1-Jgpdli2LdSQlsy86fbDcrNF2wUQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/trim-newlines/download/trim-newlines-3.0.1.tgz} + name: trim-newlines + version: 3.0.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/trough/1.0.5: + resolution: {integrity: sha1-uLY5zvrX0LsqvTfUM/+Ck++l9AY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/trough/download/trough-1.0.5.tgz} + name: trough + version: 1.0.5 + dev: true + + registry.nlark.com/tslib/1.14.1: + resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628732355371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: true + + registry.nlark.com/tslib/2.3.1: + resolution: {integrity: sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz?cache=0&sync_timestamp=1628732355371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.1.tgz} + name: tslib + version: 2.3.1 + dev: true + + registry.nlark.com/type-fest/0.18.1: + resolution: {integrity: sha1-20vBUaSiz07r+a3V23VQjbbMhB8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-fest/download/type-fest-0.18.1.tgz} + name: type-fest + version: 0.18.1 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/type-fest/0.20.2: + resolution: {integrity: sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-fest/download/type-fest-0.20.2.tgz} + name: type-fest + version: 0.20.2 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/type-fest/0.21.3: + resolution: {integrity: sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-fest/download/type-fest-0.21.3.tgz} + name: type-fest + version: 0.21.3 + engines: {node: '>=10'} + dev: true + + registry.nlark.com/type-fest/0.6.0: + resolution: {integrity: sha1-jSojcNPfiG61yQraHFv2GIrPg4s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz} + name: type-fest + version: 0.6.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/type-fest/0.8.1: + resolution: {integrity: sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-fest/download/type-fest-0.8.1.tgz} + name: type-fest + version: 0.8.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/uglify-js/3.14.1: + resolution: {integrity: sha1-4suf4025y0z3410dJt/qKOCafQY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/uglify-js/download/uglify-js-3.14.1.tgz} + name: uglify-js + version: 3.14.1 + engines: {node: '>=0.8.0'} + hasBin: true + dev: true + optional: true + + registry.nlark.com/underscore.string/3.3.5: + resolution: {integrity: sha1-/CrSVbi9MJ4jnLxYFv0jqbfqQCM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/underscore.string/download/underscore.string-3.3.5.tgz} + name: underscore.string + version: 3.3.5 + dependencies: + sprintf-js: 1.1.2 + util-deprecate: 1.0.2 + dev: true + + registry.nlark.com/unified/9.2.2: + resolution: {integrity: sha1-Z2SaGr/Dq4XSlpUCkCd16wMUaXU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unified/download/unified-9.2.2.tgz} + name: unified + version: 9.2.2 + dependencies: + bail: registry.nlark.com/bail/1.0.5 + extend: registry.nlark.com/extend/3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 + trough: registry.nlark.com/trough/1.0.5 + vfile: registry.nlark.com/vfile/4.2.1 + dev: true + + registry.nlark.com/union/0.5.0: + resolution: {integrity: sha1-ssEb6E9gU4U3uEbtuboma6AJAHU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/union/download/union-0.5.0.tgz} + name: union + version: 0.5.0 + engines: {node: '>= 0.8.0'} + dependencies: + qs: 6.10.1 + dev: true + + registry.nlark.com/unist-util-find-all-after/3.0.2: + resolution: {integrity: sha1-/f7NFMW3rqXp7zjV4NX3dO61YfY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unist-util-find-all-after/download/unist-util-find-all-after-3.0.2.tgz} + name: unist-util-find-all-after + version: 3.0.2 + dependencies: + unist-util-is: registry.nlark.com/unist-util-is/4.1.0 + dev: true + + registry.nlark.com/unist-util-is/4.1.0: + resolution: {integrity: sha1-l25fRip6Xec9lLcGusG5BnG1d5c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unist-util-is/download/unist-util-is-4.1.0.tgz} + name: unist-util-is + version: 4.1.0 + dev: true + + registry.nlark.com/uuid/3.4.0: + resolution: {integrity: sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1622213418456&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz} + name: uuid + version: 3.4.0 + hasBin: true + dev: true + + registry.nlark.com/v8flags/2.1.1: + resolution: {integrity: sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/v8flags/download/v8flags-2.1.1.tgz} + name: v8flags + version: 2.1.1 + engines: {node: '>= 0.10.0'} + dependencies: + user-home: 1.1.1 + dev: true + + registry.nlark.com/vfile-message/2.0.4: + resolution: {integrity: sha1-W0O4gXHUCerlhHfRPyPdQdUsNxo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vfile-message/download/vfile-message-2.0.4.tgz} + name: vfile-message + version: 2.0.4 + dependencies: + '@types/unist': registry.nlark.com/@types/unist/2.0.6 + unist-util-stringify-position: 2.0.3 + dev: true + + registry.nlark.com/vfile/4.2.1: + resolution: {integrity: sha1-A/Hc4o/GJcYlvGUUNQ+9sA+p5iQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vfile/download/vfile-4.2.1.tgz?cache=0&sync_timestamp=1629482153900&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvfile%2Fdownload%2Fvfile-4.2.1.tgz} + name: vfile + version: 4.2.1 + dependencies: + '@types/unist': registry.nlark.com/@types/unist/2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 2.0.3 + vfile-message: registry.nlark.com/vfile-message/2.0.4 + dev: true + + registry.nlark.com/vinyl-file/1.3.0: + resolution: {integrity: sha1-qgVjTTqGe6kUR77bs0r8sm9E9uc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vinyl-file/download/vinyl-file-1.3.0.tgz} + name: vinyl-file + version: 1.3.0 + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: registry.nlark.com/graceful-fs/4.2.8 + strip-bom: 2.0.0 + strip-bom-stream: registry.nlark.com/strip-bom-stream/1.0.0 + vinyl: 1.2.0 + dev: true + + registry.nlark.com/vite-plugin-banner/0.1.3: + resolution: {integrity: sha1-09To4oSt3tNf6qVKuMonOp0zSeA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-banner/download/vite-plugin-banner-0.1.3.tgz} + name: vite-plugin-banner + version: 0.1.3 + dev: true + + registry.nlark.com/vite-plugin-compression/0.3.5_vite@2.5.1: + resolution: {integrity: sha1-HlM460PmASjebW8isqq/Dj3AwX8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-compression/download/vite-plugin-compression-0.3.5.tgz} + id: registry.nlark.com/vite-plugin-compression/0.3.5 + name: vite-plugin-compression + version: 0.3.5 + peerDependencies: + vite: '>=2.0.0' + dependencies: + chalk: registry.nlark.com/chalk/4.1.2 + debug: registry.nlark.com/debug/4.3.2 + fs-extra: registry.nlark.com/fs-extra/10.0.0 + vite: registry.nlark.com/vite/2.5.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/vite-plugin-html/2.1.0_vite@2.5.1: + resolution: {integrity: sha1-d7buEdnNvfdmtXMf1Ba6zyZ0T84=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-html/download/vite-plugin-html-2.1.0.tgz} + id: registry.nlark.com/vite-plugin-html/2.1.0 + name: vite-plugin-html + version: 2.1.0 + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/4.1.1 + dotenv: registry.nlark.com/dotenv/10.0.0 + dotenv-expand: 5.1.0 + ejs: 3.1.6 + fs-extra: registry.nlark.com/fs-extra/10.0.0 + html-minifier-terser: 5.1.1 + vite: registry.nlark.com/vite/2.5.1 + dev: true + + registry.nlark.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.5.1: + resolution: {integrity: sha1-BN0j3muqBS+qW5rTF1FMkNYgXiU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-mock/download/vite-plugin-mock-2.9.6.tgz} + id: registry.nlark.com/vite-plugin-mock/2.9.6 + name: vite-plugin-mock + version: 2.9.6 + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@rollup/plugin-node-resolve': registry.nlark.com/@rollup/plugin-node-resolve/13.0.4 + '@types/mockjs': registry.nlark.com/@types/mockjs/1.0.4 + chalk: registry.nlark.com/chalk/4.1.2 + chokidar: registry.nlark.com/chokidar/3.5.2 + connect: 3.7.0 + debug: registry.nlark.com/debug/4.3.2 + esbuild: registry.nlark.com/esbuild/0.11.3 + fast-glob: registry.nlark.com/fast-glob/3.2.7 + mockjs: 1.1.0 + path-to-regexp: 6.2.0 + vite: registry.nlark.com/vite/2.5.1 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + registry.nlark.com/vite-plugin-restart/0.0.2_vite@2.5.1: + resolution: {integrity: sha1-EByTLpw8TV/2BuFaTzLOduHuTdc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-restart/download/vite-plugin-restart-0.0.2.tgz} + id: registry.nlark.com/vite-plugin-restart/0.0.2 + name: vite-plugin-restart + version: 0.0.2 + peerDependencies: + vite: ^2.0.0-beta.69 + dependencies: + chalk: registry.nlark.com/chalk/4.1.2 + micromatch: 4.0.4 + vite: registry.nlark.com/vite/2.5.1 + dev: true + + registry.nlark.com/vite-plugin-spritesmith/0.1.0: + resolution: {integrity: sha1-Y+XrWtAC3RFDi4HZihK0odt3OTg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-spritesmith/download/vite-plugin-spritesmith-0.1.0.tgz} + name: vite-plugin-spritesmith + version: 0.1.0 + dependencies: + fs-extra: registry.nlark.com/fs-extra/10.0.0 + gaze: 1.1.3 + lodash: 4.17.21 + mkdirp: 1.0.4 + spritesheet-templates: registry.nlark.com/spritesheet-templates/10.5.2 + spritesmith: registry.nlark.com/spritesmith/3.4.0 + dev: true + + registry.nlark.com/vite-plugin-svg-icons/1.0.4_vite@2.5.1: + resolution: {integrity: sha1-nyD+/0s7+9z1QB0++nXUgT8n3CI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite-plugin-svg-icons/download/vite-plugin-svg-icons-1.0.4.tgz} + id: registry.nlark.com/vite-plugin-svg-icons/1.0.4 + name: vite-plugin-svg-icons + version: 1.0.4 + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': registry.nlark.com/@types/svgo/2.4.0 + cors: 2.8.5 + debug: registry.nlark.com/debug/4.3.2 + etag: 1.8.1 + fs-extra: registry.nlark.com/fs-extra/10.0.0 + svg-baker: 1.7.0 + svgo: registry.nlark.com/svgo/2.4.0 + vite: registry.nlark.com/vite/2.5.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/vite/2.5.1: + resolution: {integrity: sha1-lTxxoDTAezrgRI1XZk7JxoYvI6g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vite/download/vite-2.5.1.tgz} + name: vite + version: 2.5.1 + engines: {node: '>=12.2.0'} + hasBin: true + dependencies: + esbuild: registry.nlark.com/esbuild/0.12.23 + postcss: registry.nlark.com/postcss/8.3.6 + resolve: 1.20.0 + rollup: registry.nlark.com/rollup/2.56.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + registry.nlark.com/vue-eslint-parser/7.10.0_eslint@7.32.0: + resolution: {integrity: sha1-6k5LEP0QqjXIp5rHg0iNirzSm+g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vue-eslint-parser/download/vue-eslint-parser-7.10.0.tgz} + id: registry.nlark.com/vue-eslint-parser/7.10.0 + name: vue-eslint-parser + version: 7.10.0 + engines: {node: '>=8.10'} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + debug: registry.nlark.com/debug/4.3.2 + eslint: registry.nlark.com/eslint/7.32.0 + eslint-scope: registry.nlark.com/eslint-scope/5.1.1 + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/1.3.0 + espree: registry.nlark.com/espree/6.2.1 + esquery: 1.4.0 + lodash: 4.17.21 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.nlark.com/vue-router/4.0.11_vue@3.2.6: + resolution: {integrity: sha1-zWSaCUHGNSgXY6IJZbWZZD3caO0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vue-router/download/vue-router-4.0.11.tgz} + id: registry.nlark.com/vue-router/4.0.11 + name: vue-router + version: 4.0.11 + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-api': registry.nlark.com/@vue/devtools-api/6.0.0-beta.15 + vue: registry.nlark.com/vue/3.2.6 + dev: false + + registry.nlark.com/vue/3.2.6: + resolution: {integrity: sha1-xxRFB4dR9Fhkj9j7Oi2pdVB9A9I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vue/download/vue-3.2.6.tgz} + name: vue + version: 3.2.6 + dependencies: + '@vue/compiler-dom': registry.nlark.com/@vue/compiler-dom/3.2.6 + '@vue/runtime-dom': registry.nlark.com/@vue/runtime-dom/3.2.6 + '@vue/shared': registry.nlark.com/@vue/shared/3.2.6 + dev: false + + registry.nlark.com/vuex/4.0.2_vue@3.2.6: + resolution: {integrity: sha1-+Jbb1b8qDpY/AMZ+m2EN50nMrMk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vuex/download/vuex-4.0.2.tgz} + id: registry.nlark.com/vuex/4.0.2 + name: vuex + version: 4.0.2 + peerDependencies: + vue: ^3.0.2 + dependencies: + '@vue/devtools-api': registry.nlark.com/@vue/devtools-api/6.0.0-beta.15 + vue: registry.nlark.com/vue/3.2.6 + dev: false + + registry.nlark.com/workbox-core/6.2.4: + resolution: {integrity: sha1-D/tPDObY428Qv0qr2WpvVXBczYA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/workbox-core/download/workbox-core-6.2.4.tgz} + name: workbox-core + version: 6.2.4 + dev: true + + registry.nlark.com/workbox-window/6.2.4: + resolution: {integrity: sha1-N355IVjsg2cLb4EOAHekXBqUjRs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/workbox-window/download/workbox-window-6.2.4.tgz} + name: workbox-window + version: 6.2.4 + dependencies: + '@types/trusted-types': registry.nlark.com/@types/trusted-types/2.0.2 + workbox-core: registry.nlark.com/workbox-core/6.2.4 + dev: true + + registry.nlark.com/wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.nlark.com/yaml/1.10.2: + resolution: {integrity: sha1-IwHF/78StGfejaIzOkWeKeeSDks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/yaml/download/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: true + + registry.nlark.com/yargs-parser/20.2.9: + resolution: {integrity: sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/yargs-parser/download/yargs-parser-20.2.9.tgz} + name: yargs-parser + version: 20.2.9 + engines: {node: '>=10'} + dev: true diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..794835dc9324e8c67eaa3d1a87f8ca839fca1312 GIT binary patch literal 1150 zcmdT^yQ;!K5S_ra6l_d=8$qxT#2>H{K}%a({Q8vm z%^o)i$t5HP#mZUEE}WUOJ2Sg1kt9YeMq>V?+6R$LL`eZb3C8BdLL_{CTY>1kkxnb< zc2#7vJ6|o8$~W3=6_JQtV?NK&>#2yxH*RdP$Y5Hz{N-{^Pjb0EIOiypnB^OfHB6_v zCoW7cNh>TC7Yqg`BobQ~21m8}^RV8`qh9~T`OK|44hI9#=sHk8pX(TnG#CB;pA{#| z8)zE0YHYPskJjAZ$$vJ}F&v&;bUOdBjm8m^iH=N0xvLNApVP;%)j9uFJ!1xz%c}>4 cf_-mc=ciH%n$2S%%(oS$eSe?-M|g(00iw7=5dZ)H literal 0 HcmV?d00001 diff --git a/public/pwa_icons/192x192.png b/public/pwa_icons/192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..557c4c0b0e1dd7171ef03b8c21164a4ca16c9f54 GIT binary patch literal 4480 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 T>H&T?1=3K_c~qrj_4@w-z}gZi literal 0 HcmV?d00001 diff --git a/public/tinymce/langs/zh_CN.js b/public/tinymce/langs/zh_CN.js new file mode 100644 index 00000000..89b106c2 --- /dev/null +++ b/public/tinymce/langs/zh_CN.js @@ -0,0 +1,419 @@ +tinymce.addI18n('zh_CN',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u9500", +"Cut": "\u526a\u5207", +"Copy": "\u590d\u5236", +"Paste": "\u7c98\u8d34", +"Select all": "\u5168\u9009", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u786e\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u7f51\u683c\u7ebf", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u5212\u7ebf", +"Strikethrough": "\u5220\u9664\u7ebf", +"Superscript": "\u4e0a\u6807", +"Subscript": "\u4e0b\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u8fb9\u5bf9\u9f50", +"Align center": "\u4e2d\u95f4\u5bf9\u9f50", +"Align right": "\u53f3\u8fb9\u5bf9\u9f50", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Close": "\u5173\u95ed", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"Headers": "\u6807\u9898", +"Header 1": "\u6807\u98981", +"Header 2": "\u6807\u98982", +"Header 3": "\u6807\u98983", +"Header 4": "\u6807\u98984", +"Header 5": "\u6807\u98985", +"Header 6": "\u6807\u98986", +"Headings": "\u6807\u9898", +"Heading 1": "\u6807\u98981", +"Heading 2": "\u6807\u98982", +"Heading 3": "\u6807\u98983", +"Heading 4": "\u6807\u98984", +"Heading 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u7801", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u533a\u5757", +"Inline": "\u6587\u672c", +"Blocks": "\u57fa\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Fonts": "\u5b57\u4f53", +"Font Sizes": "\u5b57\u53f7", +"Class": "\u7c7b\u578b", +"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"OR": "\u6216", +"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", +"Upload": "\u4e0a\u4f20", +"Block": "\u5757", +"Align": "\u5bf9\u9f50", +"Default": "\u9ed8\u8ba4", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Square": "\u65b9\u5757", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Anchor...": "\u951a\u70b9...", +"Name": "\u540d\u79f0", +"Id": "\u6807\u8bc6\u7b26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character...": "\u7279\u6b8a\u5b57\u7b26...", +"Source code": "\u6e90\u4ee3\u7801", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"Language": "\u8bed\u8a00", +"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Color Picker": "\u9009\u8272\u5668", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", +"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Description": "\u63cf\u8ff0", +"Robots": "\u673a\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7f16\u7801", +"Fullscreen": "\u5168\u5c4f", +"Action": "\u64cd\u4f5c", +"Shortcut": "\u5feb\u6377\u952e", +"Help": "\u5e2e\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", +"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", +"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", +"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", +"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", +"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u63d2\u4ef6", +"Handy Shortcuts": "\u5feb\u6377\u952e", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Source": "\u5730\u5740", +"Dimensions": "\u5927\u5c0f", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Style": "\u6837\u5f0f", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Border": "\u8fb9\u6846", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image...": "\u56fe\u7247...", +"Image list": "\u56fe\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Image options": "\u56fe\u7247\u9009\u9879", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7f29\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u9510\u5316", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Gamma": "\u4f3d\u9a6c\u503c", +"Invert": "\u53cd\u8f6c", +"Apply": "\u5e94\u7528", +"Back": "\u540e\u9000", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Url": "\u5730\u5740", +"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", +"Current window": "\u5f53\u524d\u7a97\u53e3", +"None": "\u65e0", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Anchors": "\u951a\u70b9", +"Link...": "\u94fe\u63a5...", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"Link list": "\u94fe\u63a5\u5217\u8868", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", +"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Embed": "\u5185\u5d4c", +"Media...": "\u591a\u5a92\u4f53...", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print...": "\u6253\u5370...", +"Save": "\u4fdd\u5b58", +"Find": "\u67e5\u627e", +"Replace with": "\u66ff\u6362\u4e3a", +"Replace": "\u66ff\u6362", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Previous": "\u4e0a\u4e00\u4e2a", +"Next": "\u4e0b\u4e00\u4e2a", +"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Find whole words only": "\u5168\u5b57\u5339\u914d", +"Spell check": "\u62fc\u5199\u68c0\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Delete table": "\u5220\u9664\u8868\u683c", +"Cell": "\u5355\u5143\u683c", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Delete row": "\u5220\u9664\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Cut row": "\u526a\u5207\u884c", +"Copy row": "\u590d\u5236\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Delete column": "\u5220\u9664\u5217", +"Cols": "\u5217", +"Rows": "\u884c", +"Width": "\u5bbd", +"Height": "\u9ad8", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Show caption": "\u663e\u793a\u6807\u9898", +"Left": "\u5de6\u5bf9\u9f50", +"Center": "\u5c45\u4e2d", +"Right": "\u53f3\u5bf9\u9f50", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Scope": "\u8303\u56f4", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Row group": "\u884c\u7ec4", +"Column group": "\u5217\u7ec4", +"Row type": "\u884c\u7c7b\u578b", +"Header": "\u8868\u5934", +"Body": "\u8868\u4f53", +"Footer": "\u8868\u5c3e", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Insert template...": "\u63d2\u5165\u6a21\u677f...", +"Templates": "\u6a21\u677f", +"Template": "\u6a21\u677f", +"Text color": "\u6587\u5b57\u989c\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Remove color": "\u79fb\u9664\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Word count": "\u5b57\u6570", +"Count": "\u8ba1\u6570", +"Document": "\u6587\u6863", +"Selection": "\u9009\u62e9", +"Words": "\u5355\u8bcd", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"{0} words": "{0} \u5b57", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Insert": "\u63d2\u5165", +"View": "\u89c6\u56fe", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531{0}\u9a71\u52a8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Image title": "\u56fe\u7247\u6807\u9898", +"Border width": "\u8fb9\u6846\u5bbd\u5ea6", +"Border style": "\u8fb9\u6846\u6837\u5f0f", +"Error": "\u9519\u8bef", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", +"System Font": "\u7cfb\u7edf\u5b57\u4f53", +"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", +"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", +"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", +"example": "\u793a\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8d27\u5e01", +"Text": "\u6587\u5b57", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66", +"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", +"Symbols": "\u7b26\u53f7", +"Arrows": "\u7bad\u5934", +"User Defined": "\u81ea\u5b9a\u4e49", +"dollar sign": "\u7f8e\u5143\u7b26\u53f7", +"currency sign": "\u8d27\u5e01\u7b26\u53f7", +"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", +"colon sign": "\u5192\u53f7", +"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", +"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", +"lira sign": "\u91cc\u62c9\u7b26\u53f7", +"mill sign": "\u5bc6\u5c14\u7b26\u53f7", +"naira sign": "\u5948\u62c9\u7b26\u53f7", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", +"rupee sign": "\u5362\u6bd4\u7b26\u53f7", +"won sign": "\u97e9\u5143\u7b26\u53f7", +"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", +"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", +"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", +"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", +"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", +"peso sign": "\u6bd4\u7d22\u7b26\u53f7", +"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", +"austral sign": "\u6fb3\u5143\u7b26\u53f7", +"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", +"cedi sign": "\u585e\u5730\u7b26\u53f7", +"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", +"spesmilo sign": "spesmilo\u7b26\u53f7", +"tenge sign": "\u575a\u6208\u7b26\u53f7", +"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", +"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", +"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", +"ruble sign": "\u5362\u5e03\u7b26\u53f7", +"yen character": "\u65e5\u5143\u5b57\u6837", +"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", +"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", +"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", +"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", +"People": "\u4eba\u7c7b", +"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", +"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", +"Activity": "\u6d3b\u52a8", +"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u5e1c", +"Characters": "\u5b57\u7b26", +"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", +"{0} characters": "{0} \u4e2a\u5b57\u7b26", +"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", +"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u989c\u8272\u6837\u672c", +"Turquoise": "\u9752\u7eff\u8272", +"Green": "\u7eff\u8272", +"Blue": "\u84dd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6d77\u519b\u84dd", +"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", +"Dark Green": "\u6df1\u7eff\u8272", +"Medium Blue": "\u4e2d\u84dd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u6df1\u84dd\u8272", +"Yellow": "\u9ec4\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7ea2\u8272", +"Light Gray": "\u6d45\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6697\u9ec4\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6df1\u7ea2\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Light Green": "\u6d45\u7eff\u8272", +"Light Yellow": "\u6d45\u9ec4\u8272", +"Light Red": "\u6d45\u7ea2\u8272", +"Light Purple": "\u6d45\u7d2b\u8272", +"Light Blue": "\u6d45\u84dd\u8272", +"Dark Purple": "\u6df1\u7d2b\u8272", +"Dark Blue": "\u6df1\u84dd\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", +"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", +"history": "\u5386\u53f2", +"styles": "\u6837\u5f0f", +"formatting": "\u683c\u5f0f\u5316", +"alignment": "\u5bf9\u9f50", +"indentation": "\u7f29\u8fdb", +"permanent pen": "\u8bb0\u53f7\u7b14", +"comments": "\u5907\u6ce8", +"Format Painter": "\u683c\u5f0f\u5237", +"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6", +"Capitalization": "\u5927\u5199", +"lowercase": "\u5c0f\u5199", +"UPPERCASE": "\u5927\u5199", +"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199", +"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027", +"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...", +"Font": "\u5b57\u4f53", +"Size": "\u5b57\u53f7", +"More...": "\u66f4\u591a...", +"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00", +"Select...": "\u9009\u62e9...", +"Preferences": "\u9996\u9009\u9879", +"Yes": "\u662f", +"No": "\u5426", +"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15", +"Version": "\u7248\u672c", +"Anchor": "\u951a\u70b9", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Code sample": "\u4ee3\u7801\u793a\u4f8b", +"Color": "\u989c\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Image": "\u56fe\u7247", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"Link": "\u94fe\u63a5", +"Poster": "\u5c01\u9762", +"Media": "\u5a92\u4f53", +"Print": "\u6253\u5370", +"Prev": "\u4e0a\u4e00\u4e2a", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Caption": "\u6807\u9898", +"Insert template": "\u63d2\u5165\u6a21\u677f" +}); \ No newline at end of file diff --git a/public/tinymce/skins/content/dark/content.css b/public/tinymce/skins/content/dark/content.css new file mode 100644 index 00000000..bae7923f --- /dev/null +++ b/public/tinymce/skins/content/dark/content.css @@ -0,0 +1,72 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + background-color: #2f3742; + color: #dfe0e4; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem; +} +a { + color: #4099ff; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #6d737b; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #8a8f97; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #6d737b; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #6d737b; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #6d737b; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #6d737b; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/public/tinymce/skins/content/dark/content.min.css b/public/tinymce/skins/content/dark/content.min.css new file mode 100644 index 00000000..07d40c26 --- /dev/null +++ b/public/tinymce/skins/content/dark/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem} diff --git a/public/tinymce/skins/content/default/content.css b/public/tinymce/skins/content/default/content.css new file mode 100644 index 00000000..dd6a5c1c --- /dev/null +++ b/public/tinymce/skins/content/default/content.css @@ -0,0 +1,67 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #999; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #e8e8e8; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/public/tinymce/skins/content/default/content.min.css b/public/tinymce/skins/content/default/content.min.css new file mode 100644 index 00000000..29cd987e --- /dev/null +++ b/public/tinymce/skins/content/default/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/public/tinymce/skins/content/document/content.css b/public/tinymce/skins/content/document/content.css new file mode 100644 index 00000000..75f637a1 --- /dev/null +++ b/public/tinymce/skins/content/document/content.css @@ -0,0 +1,72 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +@media screen { + html { + background: #f4f4f4; + min-height: 100%; + } +} +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} +@media screen { + body { + background-color: #fff; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + margin: 1rem auto 0; + max-width: 820px; + min-height: calc(100vh - 1rem); + padding: 4rem 6rem 6rem 6rem; + } +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure figcaption { + color: #999; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/public/tinymce/skins/content/document/content.min.css b/public/tinymce/skins/content/document/content.min.css new file mode 100644 index 00000000..a1feef4c --- /dev/null +++ b/public/tinymce/skins/content/document/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/public/tinymce/skins/content/writer/content.css b/public/tinymce/skins/content/writer/content.css new file mode 100644 index 00000000..ceee3599 --- /dev/null +++ b/public/tinymce/skins/content/writer/content.css @@ -0,0 +1,68 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem auto; + max-width: 900px; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #999; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #e8e8e8; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/public/tinymce/skins/content/writer/content.min.css b/public/tinymce/skins/content/writer/content.min.css new file mode 100644 index 00000000..0d8f5d34 --- /dev/null +++ b/public/tinymce/skins/content/writer/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/public/tinymce/skins/ui/oxide-dark/content.css b/public/tinymce/skins/ui/oxide-dark/content.css new file mode 100644 index 00000000..a6871c8c --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.css @@ -0,0 +1,714 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * Dracula Theme originally by Zeno Rocha [@zenorocha] + * https://draculatheme.com/ + * + * Ported for PrismJS by Albert Vallverdu [@byverdu] + */ +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #282a36; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #6272a4; +} +.token.punctuation { + color: #f8f8f2; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #ff79c6; +} +.token.boolean, +.token.number { + color: #bd93f9; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #50fa7b; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #f1fa8c; +} +.token.keyword { + color: #8be9fd; +} +.token.regex, +.token.important { + color: #ffb86c; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 10000; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #4099ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #4099ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #4099ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #4099ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #4099ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid transparent; + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: lighten; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #4099ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.inline.css b/public/tinymce/skins/ui/oxide-dark/content.inline.css new file mode 100644 index 00000000..df6ed08b --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 10000; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.inline.min.css b/public/tinymce/skins/ui/oxide-dark/content.inline.min.css new file mode 100644 index 00000000..0a3d965c --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/public/tinymce/skins/ui/oxide-dark/content.min.css b/public/tinymce/skins/ui/oxide-dark/content.min.css new file mode 100644 index 00000000..07067404 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#50fa7b}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#f1fa8c}.token.keyword{color:#8be9fd}.token.important,.token.regex{color:#ffb86c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #4099ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #4099ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #4099ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #4099ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #4099ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#4099ff}.mce-content-body .mce-edit-focus{outline:3px solid #4099ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid transparent;bottom:-1px;content:'';left:-1px;mix-blend-mode:lighten;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#4099ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide-dark/content.mobile.css b/public/tinymce/skins/ui/oxide-dark/content.mobile.css new file mode 100644 index 00000000..4bdb8bab --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css b/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css new file mode 100644 index 00000000..35f7dc08 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff b/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e3be038a607cb7c2544ed8ae3d6621f77bf4c38 GIT binary patch literal 4624 zcmb7IeQaFC5#QN&AGUL{efE7g{=BM1W-|RaVdWQe^e?BC`eGz4^i8S3PQw?Hhd_eQHxTkckXZB zdzU((wCVGko!Qyh+1c6InRotvZ%+>+hNrBQtrFOI4t*}DZ$7=>Sr=uD3c$ZlKuKBQ z8~ervCczs9SOk2!>AAqrz+v$CC}f1JfYPDSqx->|V$6{ekbe8M#Bh3Gkg?)-Fdi3B zeB$}UFqn*$pv&q7*net~hsUOlfG7Ho2zaowY%JPRytMvu{&xRPm(h_~w##F>vqE&a5-ssH##mlfAk}44^ zXRJKd!Ifw&ce{$Y9BAg5c>e>p_Z;t!=P{izddGWie?aHLdKL3Cn9rG=d2vt;esWqH zoD}uAoi3Z~4+LABvADt+so4~t%VlyIJ{O3tm$NC+(!yenQD%NVr*btG$T3+_WX=LH z#1M2ZNEtrO+-x;l2i>M^5o%GQ@s?N+gw*19H@G~vl3Q5Zf*t6jjW0GOTmAmlWYgSS zJeiEo%~LA-FW|YAd_Em$OE#@dw)y*#@p!UtnWa);V1HY3ZBw!>(3gY{iFFa_c6iW9 zIQ@xck^{xu9_o;UyQH#ba@y?L$xW?8J35?$p1z46ZjIctZ8QCKCa29bMC1-t@pT>S zTUT1WMjQz-75d)5zJxv~@Yd)bY)ejQBx_XQiaMJ z>$5`NO3?L*ND{UQeF8%xl)$_>w9tmQpfEebzedazFeh#~d}suN+vzsqLiW~@TLhoe zk1%xEcxP2ZL)FuoXeYzb-J5goljDxPL2@@#RW)d&X#&6QO5U=04_628@ONSvtgpha zDqqmoVep`A4<+PK$V>K+T}}{8Rj+Q|UAzCtl!Fh)uXJg{x$}HMJH7LcBLzj-r{h;< zzote8Id%pcAyE;87D<8glyaFeq#k)OEDB%yA ze%CeZ!?4TEs#pj+%14DBZHn8jxaF2as6}p3+!6p-&@I>5lbP3&N$svcIF-`0R5(o2 zh7la++|;-euckH44a4BAwB++#-cZ z)kFyC=eUS-4D0t}H8LdZY!JD^sW@F85io)%=8HU)ouhEeo-K_dJ3BV+8fo0JXIjlP zZt0H`0=Yv~I|PpRZ)r5_iAYmY9V=wT@BsoN9<3vftB|}TOH;|yNk_e7(2-?y{&cSK zG=E5Nz^Ko4>KxcbY!Q13!=HBS$lM96_+0y3M1yWTAt2u5C;6MWMXbRN?RI{$eHnAx z&t=-PSjZ>Qe2V2-YGs1YWemAq zVHdG{9V$QvsY~Cgq-L*PZqMPGv|px$)K~3<%+fBtG{oIRPL_7ye$-(`C=tS)^xC}% zue73qiF&{nXJ*>-@668G!`IrAeB;ad09shzt{O?7omLE_X@H|#ozGt&64 zb-&_lLkZI8TzigPZvUr=4g2-8M6M8b9EQLgoPswYg)d)j&%gZHJO!2>(?;I*8d>aG z#oS295Kcq{uD4R2@VEG($}WWiF-6YK)kjqks%o_U{CIAVX2;tX7o|unkew5?Gn3(| zOePS^{$(;Xi4ph;`KO#;k+vaLt8n5@doi+OEvH&?*+3(WgqkT9-$b0fTHm;)r=NmR zJnJ9o>UvNR(JMoIdRBf{%kd}jmZ)b)#4>dnDfq0G(?~S%d zv50QeMR$Kzd*S$AEXdp5Fhqe0Pz zZ!oS2e!i-tWEJ2^YoVo}V7S0tV7CujimbVJtVNb#yB&<-f&xpSb@m2=wBZ|qU-_^; z?C{lk+;tlxk&Sh3Pwh(D7~kNh`O=~TMWuRUu^0=9)`CYEVwhvGWUt4Wd3`6*H)Zs>LLYQcC#*~B78EfTt7RQ*l)b{v zqntLNsC`h&zZCY{x*}gfPU4at;nfileU3>zeyLdO7;;lFIft~ zsm6#wb5Jjtv;_VxleU0<%cQON-O*ywHt`@C4fn-Y83}=|hJPOpN>1H%C#7)9etg_yG)$ div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #000000; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.5); + border-color: #207ab7; + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.5); + border-color: rgba(255, 165, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.5); + border-color: rgba(204, 0, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.5); + border-color: rgba(120, 171, 70, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #3d546f; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #3d546f; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #3d546f; + background-image: none; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #2b3b4e; + background-image: none; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #fff; +} +.tox .tox-button--naked[disabled] { + background-color: #3d546f; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #2b3b4e; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #fff; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(255, 255, 255, 0.2); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #1a1a1a; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #333333; + color: #fff; + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #fff; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #2b3b4e; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #4a5562; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #fff; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #2b3b4e; + border: 1px solid #1a1a1a; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-icon-rtl { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg { + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #4a5562; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #2b3b4e; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #fff; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; +} +.tox .tox-comment__body { + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(255, 255, 255, 0.5); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #2b3b4e; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(43, 59, 78, 0), #2b3b4e); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #2b3b4e; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #fff; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #2b3b4e; + box-shadow: 0 0 8px 8px #2b3b4e; + color: #fff; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #2b3b4e; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-user__name { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #222f3e; +} +.tox .tox-dialog { + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(42, 55, 70, 0.15), 0 0 40px 1px rgba(42, 55, 70, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #2b3b4e; + border-bottom: none; + color: #fff; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #fff; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #fff; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #fff; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #fff; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #2b3b4e; + border-top: 1px solid #000000; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #000000; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #000000; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(255, 255, 255, 0.5); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #000000; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(42, 55, 70, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #2b3b4e; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(255, 255, 255, 0.5); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #222f3e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #fff; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #fff; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + left: 0; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + position: fixed; + top: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; + z-index: 1200; +} +.tox-shadowhost.tox-fullscreen { + z-index: 1200; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #000000; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: #fff; + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #000000; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn--active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #fff; +} +.tox .tox-notification--success p { + color: #fff; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #fff; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #fff; +} +.tox .tox-notification--error p { + color: #fff; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #fff; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #fff; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #fff; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #fff; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #fff; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #fff; +} +.tox .tox-notification--info p { + color: #fff; +} +.tox .tox-notification--info a { + color: #fff; +} +.tox .tox-notification--info svg { + fill: #fff; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #fff; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar { + flex-wrap: nowrap; +} +.tox .tox-pop__dialog { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #222f3e transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #000000 transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #222f3e transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #000000 transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #222f3e transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #000000 transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #222f3e; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #000000; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #222f3e; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #000000; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(255, 255, 255, 0.5); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #222f3e; + border-top: 1px solid #000000; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: #fff; + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: #fff; +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #4a5562; + border-radius: 1px; + box-shadow: 0 0 0 2px #4a5562; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #fff; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #4a5562; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:hover svg { + fill: #fff; +} +.tox .tox-tbtn:active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:active svg { + fill: #fff; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #fff; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #4a5562 inset; +} +.tox .tox-split-button:focus { + background: #4a5562; + box-shadow: none; + color: #fff; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #222f3e; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #000000; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #000000; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox[dir=rtl] .tox-tbtn__icon-rtl svg { + transform: rotateY(180deg); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #3d546f; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(42, 55, 70, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #3d546f; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #3d546f; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #3d546f; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #3d546f; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #000000; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #000000; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.min.css b/public/tinymce/skins/ui/oxide-dark/skin.min.css new file mode 100644 index 00000000..8d4e9ec9 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#2a3746;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #000;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #000;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#000;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.5);border-color:#207ab7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.5);border-color:rgba(255,165,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.5);border-color:rgba(204,0,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.5);border-color:rgba(120,171,70,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.8)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:hover:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:active:not(:disabled){background-color:#2b3b4e;background-image:none;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#fff}.tox .tox-button--naked[disabled]{background-color:#3d546f;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:focus:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:active:not(:disabled){background-color:#2b3b4e;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#fff}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(255,255,255,.2)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(255,255,255,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#1a1a1a;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#333;color:#fff;cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#fff;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#2b3b4e;color:#fff}.tox .tox-collection--list .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#4a5562;color:#fff}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(255,255,255,.5);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#fff}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#2b3b4e;border:1px solid #1a1a1a;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #000}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #000}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#4a5562}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#2b3b4e;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#fff;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(255,255,255,.5);font-size:12px}.tox .tox-comment__body{color:#fff;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(255,255,255,.5);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#2b3b4e;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(43,59,78,0),#2b3b4e);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#2b3b4e;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#fff;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#2b3b4e;box-shadow:0 0 8px 8px #2b3b4e;color:#fff;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#2b3b4e;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(255,255,255,.5)}.tox .tox-user__name{color:rgba(255,255,255,.5);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(34,47,62,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#222f3e}.tox .tox-dialog{background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(42,55,70,.15),0 0 40px 1px rgba(42,55,70,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#2b3b4e;border-bottom:none;color:#fff;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#fff;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(255,255,255,.5);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#fff}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#fff;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#fff;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#2b3b4e;border-top:1px solid #000;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(34,47,62,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #000}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #000;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(255,255,255,.5);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #000}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(42,55,70,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #2b3b4e;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(255,255,255,.5);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#222f3e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#fff}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #000}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#fff}.tox .tox-notification--success p{color:#fff}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#fff}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#fff}.tox .tox-notification--error p{color:#fff}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#fff}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#fff}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#fff}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#fff}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#fff}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#fff}.tox .tox-notification--info p{color:#fff}.tox .tox-notification--info a{color:#fff}.tox .tox-notification--info svg{fill:#fff}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#fff;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar{flex-wrap:nowrap}.tox .tox-pop__dialog{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#222f3e transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#000 transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #222f3e transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #000 transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #222f3e transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #000 transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #222f3e;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #000;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#222f3e;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #000;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(255,255,255,.5);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#222f3e;border-top:1px solid #000;color:#fff;display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#fff;text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:#fff}.tox .tox-statusbar__resize-handle:focus svg{background-color:#4a5562;border-radius:1px;box-shadow:0 0 0 2px #4a5562}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(34,47,62,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#fff}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#4a5562;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:hover svg{fill:#fff}.tox .tox-tbtn:active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:active svg{fill:#fff}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#fff}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #4a5562 inset}.tox .tox-split-button:focus{background:#4a5562;box-shadow:none;color:#fff}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-toolbar-overlord{background-color:#222f3e}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #000;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #000}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #000}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #000}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#3d546f;border-radius:3px;box-shadow:0 2px 4px rgba(42,55,70,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #3d546f;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #3d546f;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #3d546f;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #3d546f;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #000;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #000;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.mobile.css b/public/tinymce/skins/ui/oxide-dark/skin.mobile.css new file mode 100644 index 00000000..875721a2 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css b/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css new file mode 100644 index 00000000..3a45cacf --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css new file mode 100644 index 00000000..715978b5 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + left: 0; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + position: fixed; + top: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; + z-index: 1200; +} +.tox-shadowhost.tox-fullscreen { + z-index: 1200; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css new file mode 100644 index 00000000..9ba6e02c --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/public/tinymce/skins/ui/oxide/content.css b/public/tinymce/skins/ui/oxide/content.css new file mode 100644 index 00000000..efae400b --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.css @@ -0,0 +1,732 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 10000; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide/content.inline.css b/public/tinymce/skins/ui/oxide/content.inline.css new file mode 100644 index 00000000..df6ed08b --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 10000; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/public/tinymce/skins/ui/oxide/content.inline.min.css b/public/tinymce/skins/ui/oxide/content.inline.min.css new file mode 100644 index 00000000..0a3d965c --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/public/tinymce/skins/ui/oxide/content.min.css b/public/tinymce/skins/ui/oxide/content.min.css new file mode 100644 index 00000000..40b3378d --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide/content.mobile.css b/public/tinymce/skins/ui/oxide/content.mobile.css new file mode 100644 index 00000000..4bdb8bab --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide/content.mobile.min.css b/public/tinymce/skins/ui/oxide/content.mobile.min.css new file mode 100644 index 00000000..35f7dc08 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff b/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e3be038a607cb7c2544ed8ae3d6621f77bf4c38 GIT binary patch literal 4624 zcmb7IeQaFC5#QN&AGUL{efE7g{=BM1W-|RaVdWQe^e?BC`eGz4^i8S3PQw?Hhd_eQHxTkckXZB zdzU((wCVGko!Qyh+1c6InRotvZ%+>+hNrBQtrFOI4t*}DZ$7=>Sr=uD3c$ZlKuKBQ z8~ervCczs9SOk2!>AAqrz+v$CC}f1JfYPDSqx->|V$6{ekbe8M#Bh3Gkg?)-Fdi3B zeB$}UFqn*$pv&q7*net~hsUOlfG7Ho2zaowY%JPRytMvu{&xRPm(h_~w##F>vqE&a5-ssH##mlfAk}44^ zXRJKd!Ifw&ce{$Y9BAg5c>e>p_Z;t!=P{izddGWie?aHLdKL3Cn9rG=d2vt;esWqH zoD}uAoi3Z~4+LABvADt+so4~t%VlyIJ{O3tm$NC+(!yenQD%NVr*btG$T3+_WX=LH z#1M2ZNEtrO+-x;l2i>M^5o%GQ@s?N+gw*19H@G~vl3Q5Zf*t6jjW0GOTmAmlWYgSS zJeiEo%~LA-FW|YAd_Em$OE#@dw)y*#@p!UtnWa);V1HY3ZBw!>(3gY{iFFa_c6iW9 zIQ@xck^{xu9_o;UyQH#ba@y?L$xW?8J35?$p1z46ZjIctZ8QCKCa29bMC1-t@pT>S zTUT1WMjQz-75d)5zJxv~@Yd)bY)ejQBx_XQiaMJ z>$5`NO3?L*ND{UQeF8%xl)$_>w9tmQpfEebzedazFeh#~d}suN+vzsqLiW~@TLhoe zk1%xEcxP2ZL)FuoXeYzb-J5goljDxPL2@@#RW)d&X#&6QO5U=04_628@ONSvtgpha zDqqmoVep`A4<+PK$V>K+T}}{8Rj+Q|UAzCtl!Fh)uXJg{x$}HMJH7LcBLzj-r{h;< zzote8Id%pcAyE;87D<8glyaFeq#k)OEDB%yA ze%CeZ!?4TEs#pj+%14DBZHn8jxaF2as6}p3+!6p-&@I>5lbP3&N$svcIF-`0R5(o2 zh7la++|;-euckH44a4BAwB++#-cZ z)kFyC=eUS-4D0t}H8LdZY!JD^sW@F85io)%=8HU)ouhEeo-K_dJ3BV+8fo0JXIjlP zZt0H`0=Yv~I|PpRZ)r5_iAYmY9V=wT@BsoN9<3vftB|}TOH;|yNk_e7(2-?y{&cSK zG=E5Nz^Ko4>KxcbY!Q13!=HBS$lM96_+0y3M1yWTAt2u5C;6MWMXbRN?RI{$eHnAx z&t=-PSjZ>Qe2V2-YGs1YWemAq zVHdG{9V$QvsY~Cgq-L*PZqMPGv|px$)K~3<%+fBtG{oIRPL_7ye$-(`C=tS)^xC}% zue73qiF&{nXJ*>-@668G!`IrAeB;ad09shzt{O?7omLE_X@H|#ozGt&64 zb-&_lLkZI8TzigPZvUr=4g2-8M6M8b9EQLgoPswYg)d)j&%gZHJO!2>(?;I*8d>aG z#oS295Kcq{uD4R2@VEG($}WWiF-6YK)kjqks%o_U{CIAVX2;tX7o|unkew5?Gn3(| zOePS^{$(;Xi4ph;`KO#;k+vaLt8n5@doi+OEvH&?*+3(WgqkT9-$b0fTHm;)r=NmR zJnJ9o>UvNR(JMoIdRBf{%kd}jmZ)b)#4>dnDfq0G(?~S%d zv50QeMR$Kzd*S$AEXdp5Fhqe0Pz zZ!oS2e!i-tWEJ2^YoVo}V7S0tV7CujimbVJtVNb#yB&<-f&xpSb@m2=wBZ|qU-_^; z?C{lk+;tlxk&Sh3Pwh(D7~kNh`O=~TMWuRUu^0=9)`CYEVwhvGWUt4Wd3`6*H)Zs>LLYQcC#*~B78EfTt7RQ*l)b{v zqntLNsC`h&zZCY{x*}gfPU4at;nfileU3>zeyLdO7;;lFIft~ zsm6#wb5Jjtv;_VxleU0<%cQON-O*ywHt`@C4fn-Y83}=|hJPOpN>1H%C#7)9etg_yG)$ div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #cccccc; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.1); + border-color: rgba(32, 122, 183, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: rgba(32, 122, 183, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.1); + border-color: rgba(255, 165, 0, 0.5); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.5); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.1); + border-color: rgba(204, 0, 0, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.1); + border-color: rgba(120, 171, 70, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #f0f0f0; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #f0f0f0; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #f0f0f0; + background-image: none; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #d6d6d6; + background-image: none; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked[disabled] { + background-color: #f0f0f0; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #d6d6d6; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #222f3e; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(34, 47, 62, 0.3); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #cccccc; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #e6e6e6; + color: rgba(34, 47, 62, 0.7); + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #222f3e; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #fff; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #dee0e2; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #222f3e; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-icon-rtl { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg { + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #dee0e2; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #fff; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #222f3e; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; +} +.tox .tox-comment__body { + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(34, 47, 62, 0.7); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #fff; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(255, 255, 255, 0), #fff); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #fff; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #222f3e; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #fff; + box-shadow: 0 0 8px 8px #fff; + color: #222f3e; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #fff; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-user__name { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #fff; +} +.tox .tox-dialog { + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #fff; + border-bottom: none; + color: #222f3e; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #222f3e; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #222f3e; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #222f3e; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #222f3e; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #cccccc; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #cccccc; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(34, 47, 62, 0.7); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #cccccc; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(34, 47, 62, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #fff; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #222f3e; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #222f3e; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + left: 0; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + position: fixed; + top: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; + z-index: 1200; +} +.tox-shadowhost.tox-fullscreen { + z-index: 1200; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #cccccc; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #cccccc; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn--active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #222f3e; +} +.tox .tox-notification--success p { + color: #222f3e; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #222f3e; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #222f3e; +} +.tox .tox-notification--error p { + color: #222f3e; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #222f3e; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #222f3e; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #222f3e; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #222f3e; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #222f3e; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #222f3e; +} +.tox .tox-notification--info p { + color: #222f3e; +} +.tox .tox-notification--info a { + color: #222f3e; +} +.tox .tox-notification--info svg { + fill: #222f3e; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #222f3e; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar { + flex-wrap: nowrap; +} +.tox .tox-pop__dialog { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #fff transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #cccccc transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #fff transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #cccccc transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #fff transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #cccccc transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #fff; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #cccccc; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #fff; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #cccccc; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(34, 47, 62, 0.7); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + color: rgba(34, 47, 62, 0.7); + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: rgba(34, 47, 62, 0.7); + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #dee0e2; + border-radius: 1px; + box-shadow: 0 0 0 2px #dee0e2; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #222f3e; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #dee0e2; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:hover svg { + fill: #222f3e; +} +.tox .tox-tbtn:active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:active svg { + fill: #222f3e; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #222f3e; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #dee0e2 inset; +} +.tox .tox-split-button:focus { + background: #dee0e2; + box-shadow: none; + color: #222f3e; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #fff; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #cccccc; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #cccccc; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox[dir=rtl] .tox-tbtn__icon-rtl svg { + transform: rotateY(180deg); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #222f3e; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #222f3e; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #222f3e; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #222f3e; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #222f3e; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #cccccc; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #cccccc; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/public/tinymce/skins/ui/oxide/skin.min.css b/public/tinymce/skins/ui/oxide/skin.min.css new file mode 100644 index 00000000..2a00fac8 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar{flex-wrap:nowrap}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/public/tinymce/skins/ui/oxide/skin.mobile.css b/public/tinymce/skins/ui/oxide/skin.mobile.css new file mode 100644 index 00000000..875721a2 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/public/tinymce/skins/ui/oxide/skin.mobile.min.css b/public/tinymce/skins/ui/oxide/skin.mobile.min.css new file mode 100644 index 00000000..3a45cacf --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/public/tinymce/skins/ui/oxide/skin.shadowdom.css b/public/tinymce/skins/ui/oxide/skin.shadowdom.css new file mode 100644 index 00000000..715978b5 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + left: 0; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + position: fixed; + top: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; + z-index: 1200; +} +.tox-shadowhost.tox-fullscreen { + z-index: 1200; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css b/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css new file mode 100644 index 00000000..9ba6e02c --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/scss.template.hbs b/scss.template.hbs new file mode 100644 index 00000000..7821aed7 --- /dev/null +++ b/scss.template.hbs @@ -0,0 +1,66 @@ +{ + // Default options + 'functions': true, + 'variableNameTransforms': ['dasherize'] +} + +{{#block "sprites"}} +{{#each sprites}} +${{../spritesheet_info.strings.name}}-sprite-{{strings.name}}: ({{px.x}}, {{px.y}}, {{px.offset_x}}, {{px.offset_y}}, {{px.width}}, {{px.height}}, {{px.total_width}}, {{px.total_height}}, '{{{escaped_image}}}', '{{name}}'); +{{/each}} + +${{spritesheet_info.strings.name}}-sprites: ( +{{#each sprites}} + {{strings.name}}: ${{../spritesheet_info.strings.name}}-sprite-{{strings.name}}, +{{/each}} +); +{{/block}} + +{{#block "sprite-functions"}} +{{#if options.functions}} +@mixin {{spritesheet_info.strings.name}}-sprite-width($sprite) { + width: nth($sprite, 5); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-height($sprite) { + height: nth($sprite, 6); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-position($sprite) { + $sprite-offset-x: nth($sprite, 3); + $sprite-offset-y: nth($sprite, 4); + background-position: $sprite-offset-x $sprite-offset-y; +} + +@mixin {{spritesheet_info.strings.name}}-sprite-size($sprite) { + background-size: nth($sprite, 7) nth($sprite, 8); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-image($sprite) { + $sprite-image: nth($sprite, 9); + background-image: url(#{$sprite-image}); +} + +@mixin {{spritesheet_info.strings.name}}-sprite($name) { + @include {{spritesheet_info.strings.name}}-sprite-image(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-position(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-size(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-width(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-height(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + background-repeat: no-repeat; +} +{{/if}} +{{/block}} + +{{#block "spritesheet-functions"}} +{{#if options.functions}} +@mixin all-{{spritesheet_info.strings.name}}-sprites() { + @each $key, $val in ${{spritesheet_info.strings.name}}-sprites { + $sprite-name: nth($val, 10); + .{{spritesheet_info.strings.name}}-#{$sprite-name}-sprites { + @include {{spritesheet_info.strings.name}}-sprite($key); + } + } +} +{{/if}} +{{/block}} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 00000000..581c620c --- /dev/null +++ b/src/App.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/api/index.js b/src/api/index.js new file mode 100644 index 00000000..65bcbfb0 --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,95 @@ +import axios from 'axios' +// import Qs from 'qs' +import router from '@/router/index' +import store from '@/store/index' +import { ElMessage } from 'element-plus' + +const toLogin = () => { + router.push({ + path: '/login', + query: { + redirect: router.currentRoute.fullPath + } + }) +} + +const api = axios.create({ + baseURL: import.meta.env.DEV ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL, + timeout: 10000, + responseType: 'json' +}) + +api.interceptors.request.use( + request => { + /** + * 全局拦截请求发送前提交的参数 + * 以下代码为示例,在登录状态下,分别对 post 和 get 请求加上 token 参数 + */ + if (request.method == 'post') { + if (request.data instanceof FormData) { + if (store.getters['token/isLogin']) { + // 如果是 FormData 类型(上传图片) + request.data.append('token', store.state.token.token) + } + } else { + // 带上 token + if (request.data == undefined) { + request.data = {} + } + if (store.getters['token/isLogin']) { + request.data.token = store.state.token.token + } + // request.data = Qs.stringify(request.data) + } + } else { + // 带上 token + if (request.params == undefined) { + request.params = {} + } + if (store.getters['token/isLogin']) { + request.params.token = store.state.token.token + } + } + return request + } +) + +api.interceptors.response.use( + response => { + /** + * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示 + * 假设返回数据格式为:{ status: 1, error: '', data: '' } + * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录 + * 请求出错时 error 会返回错误信息 + */ + if (response.data.status === 1) { + if (response.data.error === '') { + // 请求成功并且没有报错 + return Promise.resolve(response.data) + } else { + // 这里做错误提示 + // ElMessage.error(options) + return Promise.reject(response.data) + } + } else { + toLogin() + } + }, + error => { + let message = error.message + if (message == 'Network Error') { + message = '后端网络故障' + } else if (message.includes('timeout')) { + message = '接口请求超时' + } else if (message.includes('Request failed with status code')) { + message = '接口' + message.substr(message.length - 3) + '异常' + } + ElMessage({ + message, + type: 'error' + }) + return Promise.reject(error) + } +) + +export default api diff --git a/src/assets/icons/404.svg b/src/assets/icons/404.svg new file mode 100644 index 00000000..9044899d --- /dev/null +++ b/src/assets/icons/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/captcha.svg b/src/assets/icons/captcha.svg new file mode 100644 index 00000000..7d77e50f --- /dev/null +++ b/src/assets/icons/captcha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-crown.svg b/src/assets/icons/example-crown.svg new file mode 100644 index 00000000..2e27e3bf --- /dev/null +++ b/src/assets/icons/example-crown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-emotion-laugh-line.svg b/src/assets/icons/example-emotion-laugh-line.svg new file mode 100644 index 00000000..e7e6ea2f --- /dev/null +++ b/src/assets/icons/example-emotion-laugh-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-emotion-line.svg b/src/assets/icons/example-emotion-line.svg new file mode 100644 index 00000000..6572a838 --- /dev/null +++ b/src/assets/icons/example-emotion-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-emotion-unhappy-line.svg b/src/assets/icons/example-emotion-unhappy-line.svg new file mode 100644 index 00000000..7cbb3773 --- /dev/null +++ b/src/assets/icons/example-emotion-unhappy-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-star.svg b/src/assets/icons/example-star.svg new file mode 100644 index 00000000..c9683720 --- /dev/null +++ b/src/assets/icons/example-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example-vip.svg b/src/assets/icons/example-vip.svg new file mode 100644 index 00000000..6e112d56 --- /dev/null +++ b/src/assets/icons/example-vip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/eye-open.svg b/src/assets/icons/eye-open.svg new file mode 100644 index 00000000..b80fd2b6 --- /dev/null +++ b/src/assets/icons/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/eye.svg b/src/assets/icons/eye.svg new file mode 100644 index 00000000..16ed2d87 --- /dev/null +++ b/src/assets/icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fixed-right-buy.svg b/src/assets/icons/fixed-right-buy.svg new file mode 100644 index 00000000..923984d6 --- /dev/null +++ b/src/assets/icons/fixed-right-buy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fixed-right-chat.svg b/src/assets/icons/fixed-right-chat.svg new file mode 100644 index 00000000..37b6cbce --- /dev/null +++ b/src/assets/icons/fixed-right-chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fixed-right-code.svg b/src/assets/icons/fixed-right-code.svg new file mode 100644 index 00000000..6e0f1481 --- /dev/null +++ b/src/assets/icons/fixed-right-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fixed-right-doc.svg b/src/assets/icons/fixed-right-doc.svg new file mode 100644 index 00000000..0ad61471 --- /dev/null +++ b/src/assets/icons/fixed-right-doc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fixed-right-qq.svg b/src/assets/icons/fixed-right-qq.svg new file mode 100644 index 00000000..969c4612 --- /dev/null +++ b/src/assets/icons/fixed-right-qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fullscreen-exit.svg b/src/assets/icons/fullscreen-exit.svg new file mode 100644 index 00000000..ea412f9b --- /dev/null +++ b/src/assets/icons/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fullscreen.svg b/src/assets/icons/fullscreen.svg new file mode 100644 index 00000000..e1f6b07b --- /dev/null +++ b/src/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/image-load-fail.svg b/src/assets/icons/image-load-fail.svg new file mode 100644 index 00000000..66a1a865 --- /dev/null +++ b/src/assets/icons/image-load-fail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/password.svg b/src/assets/icons/password.svg new file mode 100644 index 00000000..e291d85d --- /dev/null +++ b/src/assets/icons/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/pro.svg b/src/assets/icons/pro.svg new file mode 100644 index 00000000..35ba55fa --- /dev/null +++ b/src/assets/icons/pro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/search-down.svg b/src/assets/icons/search-down.svg new file mode 100644 index 00000000..ebc50186 --- /dev/null +++ b/src/assets/icons/search-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/search-enter.svg b/src/assets/icons/search-enter.svg new file mode 100644 index 00000000..710cc0ee --- /dev/null +++ b/src/assets/icons/search-enter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/search-up.svg b/src/assets/icons/search-up.svg new file mode 100644 index 00000000..000ed07d --- /dev/null +++ b/src/assets/icons/search-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg new file mode 100644 index 00000000..5a884a4b --- /dev/null +++ b/src/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-breadcrumb.svg b/src/assets/icons/sidebar-breadcrumb.svg new file mode 100644 index 00000000..69469eec --- /dev/null +++ b/src/assets/icons/sidebar-breadcrumb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-component.svg b/src/assets/icons/sidebar-component.svg new file mode 100644 index 00000000..1a5a45ae --- /dev/null +++ b/src/assets/icons/sidebar-component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-default.svg b/src/assets/icons/sidebar-default.svg new file mode 100644 index 00000000..cd686a91 --- /dev/null +++ b/src/assets/icons/sidebar-default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-element.svg b/src/assets/icons/sidebar-element.svg new file mode 100644 index 00000000..6965ced0 --- /dev/null +++ b/src/assets/icons/sidebar-element.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-external-link.svg b/src/assets/icons/sidebar-external-link.svg new file mode 100644 index 00000000..a70b6b76 --- /dev/null +++ b/src/assets/icons/sidebar-external-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-keep-alive.svg b/src/assets/icons/sidebar-keep-alive.svg new file mode 100644 index 00000000..adf95ebc --- /dev/null +++ b/src/assets/icons/sidebar-keep-alive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-menu.svg b/src/assets/icons/sidebar-menu.svg new file mode 100644 index 00000000..ced1a685 --- /dev/null +++ b/src/assets/icons/sidebar-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-mock.svg b/src/assets/icons/sidebar-mock.svg new file mode 100644 index 00000000..724f5642 --- /dev/null +++ b/src/assets/icons/sidebar-mock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-permission.svg b/src/assets/icons/sidebar-permission.svg new file mode 100644 index 00000000..2f812c4f --- /dev/null +++ b/src/assets/icons/sidebar-permission.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/sidebar-videos.svg b/src/assets/icons/sidebar-videos.svg new file mode 100644 index 00000000..1dc80344 --- /dev/null +++ b/src/assets/icons/sidebar-videos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/toolbar-collapse.svg b/src/assets/icons/toolbar-collapse.svg new file mode 100644 index 00000000..dd767331 --- /dev/null +++ b/src/assets/icons/toolbar-collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/toolbar-reload.svg b/src/assets/icons/toolbar-reload.svg new file mode 100644 index 00000000..c2abcedc --- /dev/null +++ b/src/assets/icons/toolbar-reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/toolbar-theme.svg b/src/assets/icons/toolbar-theme.svg new file mode 100644 index 00000000..6c34a303 --- /dev/null +++ b/src/assets/icons/toolbar-theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/user.svg b/src/assets/icons/user.svg new file mode 100644 index 00000000..0ba0716a --- /dev/null +++ b/src/assets/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/login-banner.jpg b/src/assets/images/login-banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f209d3fcbd3c5ae85170f6b87333c0f1c406ff42 GIT binary patch literal 55159 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/login-bg.jpg b/src/assets/images/login-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f713cba9896e9103dd448b333e32fb25a5474056 GIT binary patch literal 47813 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 z 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 Ic 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 Z{{!PU5Q>fwHIx7V002ovPDHLkV1m&cnydf- literal 0 HcmV?d00001 diff --git a/src/assets/sprites/example/feedback.png b/src/assets/sprites/example/feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..065b55dd9fcd25abe9933df9d76189c1f0f94baa GIT binary patch literal 3181 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 TtdB-a00000NkvXXu0mjfpYJ8d literal 0 HcmV?d00001 diff --git a/src/assets/sprites/example/payment.png b/src/assets/sprites/example/payment.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2f680a11fa05046bc69afc7b7dd5e54f359211 GIT binary patch literal 4487 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 Z|396ADPl}*`oaJJ002ovPDHLkV1mRdm7M?p literal 0 HcmV?d00001 diff --git a/src/assets/styles/globals.scss b/src/assets/styles/globals.scss new file mode 100644 index 00000000..c0969623 --- /dev/null +++ b/src/assets/styles/globals.scss @@ -0,0 +1,86 @@ +// 全局样式 +::-webkit-scrollbar { + width: 13px; + height: 13px; +} +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.4); + background-clip: padding-box; + border: 3px solid transparent; + border-radius: 7px; +} +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} +::-webkit-scrollbar-track { + background-color: transparent; +} +::-webkit-scrollbar-track:hover { + background-color: #f8fafc; +} +html, +body { + height: 100%; +} +body { + margin: 0; + color: #333; + box-sizing: border-box; + font-family: Lato, PingFang SC, Microsoft YaHei, sans-serif; + -webkit-tap-highlight-color: transparent; + &.hidden { + overflow: hidden; + } +} +* { + box-sizing: inherit; +} +// 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] +[data-fixed-calc-width] { + position: fixed; + left: 50%; + right: 0; + width: calc(100% - #{$g-main-sidebar-width} - #{$g-sub-sidebar-width}); +} +[data-sidebar-no-collapse] { + [data-fixed-calc-width] { + transform: translateX(-50%) translateX(division($g-main-sidebar-width, 2)) translateX(division($g-sub-sidebar-width, 2)); + } + &[data-menu-mode=head], + &[data-menu-mode=single] { + [data-fixed-calc-width] { + width: calc(100% - #{$g-sub-sidebar-width}); + transform: translateX(-50%) translateX(division($g-sub-sidebar-width, 2)); + } + } +} +[data-sidebar-collapse] { + [data-fixed-calc-width] { + width: calc(100% - #{$g-main-sidebar-width} - 64px); + transform: translateX(-50%) translateX(division($g-main-sidebar-width, 2)) translateX(32px); + } + &[data-menu-mode=head], + &[data-menu-mode=single] { + [data-fixed-calc-width] { + width: calc(100% - 64px); + transform: translateX(-50%) translateX(32px); + } + } +} +[data-mode=mobile] { + [data-fixed-calc-width] { + width: 100% !important; + transform: translateX(-50%) !important; + } +} +// textarea 字体跟随系统 +textarea { + font-family: inherit; +} +// 列表页全局样式 +.el-table.list-table { + margin: 20px 0; + .el-button + .el-dropdown { + margin-left: 10px; + } +} diff --git a/src/assets/styles/resources/layout.scss b/src/assets/styles/resources/layout.scss new file mode 100644 index 00000000..bbc73509 --- /dev/null +++ b/src/assets/styles/resources/layout.scss @@ -0,0 +1,15 @@ +// 全局变量 + +// 头部宽度(默认自适应宽度,可固定宽度,固定宽度后为居中显示) +$g-header-width: 100%; +// 头部高度 +$g-header-height: 70px; +// 侧边栏宽度 +$g-main-sidebar-width: 70px; +$g-sub-sidebar-width: 220px; +// 侧边栏Logo高度 +$g-sidebar-logo-height: 50px; +// 标签栏高度 +$g-tabbar-height: 40px; +// 顶部导航栏高度 +$g-topbar-height: 50px; diff --git a/src/assets/styles/resources/themes.scss b/src/assets/styles/resources/themes.scss new file mode 100644 index 00000000..7c976487 --- /dev/null +++ b/src/assets/styles/resources/themes.scss @@ -0,0 +1,68 @@ +// 【主区域】 +// 背景色 +$g-main-bg: #f0f2f5; +// 【头部】 +// 背景色 +$g-header-bg: #222b45; +// 文字颜色 +$g-header-color: #fff; +// 导航文字颜色 +$g-header-menu-color: #ccc; +// 导航鼠标悬浮文字颜色 +$g-header-menu-hover-color: #fff; +// 导航鼠标悬浮背景色 +$g-header-menu-hover-bg: #334067; +// 导航选中文字颜色 +$g-header-menu-active-color: #fff; +// 导航选中背景色 +$g-header-menu-active-bg: #334067; +// 【主侧边栏】 +// 背景色 +$g-main-sidebar-bg: #222b45; +// 菜单文字颜色 +$g-main-sidebar-menu-color: #ccc; +// 菜单鼠标悬浮文字颜色 +$g-main-sidebar-menu-hover-color: #fff; +// 菜单鼠标悬浮背景色 +$g-main-sidebar-menu-hover-bg: #334067; +// 菜单选中文字颜色 +$g-main-sidebar-menu-active-color: #fff; +// 菜单选中背景色 +$g-main-sidebar-menu-active-bg: #334067; +// 【次侧边栏】 +// 背景色 +$g-sub-sidebar-bg: #fafafa; +// 菜单背景色 +$g-sub-sidebar-menu-bg: darken(#fafafa, 7); +// 菜单文字颜色 +$g-sub-sidebar-menu-color: #37414b; +// 菜单鼠标悬浮文字颜色 +$g-sub-sidebar-menu-hover-color: #37414b; +// 菜单鼠标悬浮背景色 +$g-sub-sidebar-menu-hover-bg: darken(#fafafa, 10); +// 菜单选中文字颜色 +$g-sub-sidebar-menu-active-color: #e7f4ff; +// 菜单选中背景色 +$g-sub-sidebar-menu-active-bg: #5482ee; +// 【导航标记】 +// 背景色 +$g-badge-bg: #f56c6c; +// 文字颜色 +$g-badge-color: #fff; +// 边框颜色 +$g-badge-border-color:#fff; +// 【标签栏】 +// 背景色 +$g-tabbar-bg: #f0f2f5; +// 分割线颜色 +$g-tabbar-dividers-bg: #a9adb0; +// 标签文字颜色 +$g-tabbar-tab-color: #999; +// 标签鼠标悬浮文字颜色 +$g-tabbar-tab-hover-color: #999; +// 标签鼠标悬浮背景色 +$g-tabbar-tab-hover-bg: #dee1e6; +// 标签选中文字颜色 +$g-tabbar-tab-active-color: #97a8be; +// 标签选中背景色 +$g-tabbar-tab-active-bg: #fff; diff --git a/src/assets/styles/resources/utils.scss b/src/assets/styles/resources/utils.scss new file mode 100644 index 00000000..29424a54 --- /dev/null +++ b/src/assets/styles/resources/utils.scss @@ -0,0 +1,57 @@ +@use 'sass:math'; + +// @mixin 通过 @include 调用使用 +// % 通过 @extend 调用使用 +@function division($a, $b) { + @return math.div($a, $b); +} + +// 文字超出隐藏,默认为单行超出隐藏,可设置多行 +@mixin text-overflow($line: 1, $fixed-width: true) { + @if ($line==1 and $fixed-width==true) { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + @else { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $line; + overflow: hidden; + } +} + +// 定位居中,默认水平居中,可选择垂直居中,或者水平垂直都居中 +@mixin position-center($type: x) { + position: absolute; + @if ($type==x) { + left: 50%; + transform: translateX(-50%); + } + @if ($type==y) { + top: 50%; + transform: translateY(-50%); + } + @if ($type==xy) { + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + } +} + +// 文字两端对齐 +%justify-align { + text-align: justify; + text-align-last: justify; +} + +// 清除浮动 +%clearfix { + zoom: 1; + &::before, + &::after { + content: ''; + display: block; + clear: both; + } +} diff --git a/src/assets/styles/resources/variables.scss b/src/assets/styles/resources/variables.scss new file mode 100644 index 00000000..d314af3c --- /dev/null +++ b/src/assets/styles/resources/variables.scss @@ -0,0 +1 @@ +// 全局变量 diff --git a/src/components/AbsoluteContainer/index.vue b/src/components/AbsoluteContainer/index.vue new file mode 100644 index 00000000..846d5535 --- /dev/null +++ b/src/components/AbsoluteContainer/index.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Auth/index.vue b/src/components/Auth/index.vue new file mode 100644 index 00000000..b508ea19 --- /dev/null +++ b/src/components/Auth/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/components/AuthAll/index.vue b/src/components/AuthAll/index.vue new file mode 100644 index 00000000..2aa834eb --- /dev/null +++ b/src/components/AuthAll/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/components/BatchActionBar/index.vue b/src/components/BatchActionBar/index.vue new file mode 100644 index 00000000..d580a5d7 --- /dev/null +++ b/src/components/BatchActionBar/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/components/CascaderArea/index.vue b/src/components/CascaderArea/index.vue new file mode 100644 index 00000000..6722d236 --- /dev/null +++ b/src/components/CascaderArea/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/components/Copyright/index.vue b/src/components/Copyright/index.vue new file mode 100644 index 00000000..6fcb8709 --- /dev/null +++ b/src/components/Copyright/index.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue new file mode 100644 index 00000000..a9fc9043 --- /dev/null +++ b/src/components/Editor/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue new file mode 100644 index 00000000..c1af6114 --- /dev/null +++ b/src/components/FileUpload/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/components/FixedActionBar/index.vue b/src/components/FixedActionBar/index.vue new file mode 100644 index 00000000..f9df51fc --- /dev/null +++ b/src/components/FixedActionBar/index.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue new file mode 100644 index 00000000..b8bb04b8 --- /dev/null +++ b/src/components/ImagePreview/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue new file mode 100644 index 00000000..0365aa0a --- /dev/null +++ b/src/components/ImageUpload/index.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/components/ImagesUpload/index.vue b/src/components/ImagesUpload/index.vue new file mode 100644 index 00000000..0d614ceb --- /dev/null +++ b/src/components/ImagesUpload/index.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/src/components/PageHeader/index.vue b/src/components/PageHeader/index.vue new file mode 100644 index 00000000..a26df720 --- /dev/null +++ b/src/components/PageHeader/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/PageMain/index.vue b/src/components/PageMain/index.vue new file mode 100644 index 00000000..ce814615 --- /dev/null +++ b/src/components/PageMain/index.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/components/Result/index.vue b/src/components/Result/index.vue new file mode 100644 index 00000000..bff30e1f --- /dev/null +++ b/src/components/Result/index.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/components/SearchBar/index.vue b/src/components/SearchBar/index.vue new file mode 100644 index 00000000..bcef5624 --- /dev/null +++ b/src/components/SearchBar/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue new file mode 100644 index 00000000..d459e750 --- /dev/null +++ b/src/components/SvgIcon/index.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/Trend/index.vue b/src/components/Trend/index.vue new file mode 100644 index 00000000..8f7727bc --- /dev/null +++ b/src/components/Trend/index.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/registerGlobalComponent.js b/src/components/registerGlobalComponent.js new file mode 100644 index 00000000..908c9e20 --- /dev/null +++ b/src/components/registerGlobalComponent.js @@ -0,0 +1,7 @@ +export default function registerGlobalComponent(app) { + const componentsContext = import.meta.globEager('./**/index.vue') + for (const path in componentsContext) { + const component = componentsContext[path].default + app.component(component.name, component) + } +} diff --git a/src/layout/components/BuyIt/index.vue b/src/layout/components/BuyIt/index.vue new file mode 100644 index 00000000..8a97fb6a --- /dev/null +++ b/src/layout/components/BuyIt/index.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/layout/components/Header/index.vue b/src/layout/components/Header/index.vue new file mode 100644 index 00000000..a45a3130 --- /dev/null +++ b/src/layout/components/Header/index.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/layout/components/Logo/index.vue b/src/layout/components/Logo/index.vue new file mode 100644 index 00000000..3eab0f42 --- /dev/null +++ b/src/layout/components/Logo/index.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/layout/components/MainSidebar/index.vue b/src/layout/components/MainSidebar/index.vue new file mode 100644 index 00000000..1dd1969a --- /dev/null +++ b/src/layout/components/MainSidebar/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/layout/components/Search/index.vue b/src/layout/components/Search/index.vue new file mode 100644 index 00000000..a0962f8a --- /dev/null +++ b/src/layout/components/Search/index.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/src/layout/components/SidebarItem/index.vue b/src/layout/components/SidebarItem/index.vue new file mode 100644 index 00000000..b6707ae2 --- /dev/null +++ b/src/layout/components/SidebarItem/index.vue @@ -0,0 +1,269 @@ + + + + + + + diff --git a/src/layout/components/SubSidebar/index.vue b/src/layout/components/SubSidebar/index.vue new file mode 100644 index 00000000..7bf70128 --- /dev/null +++ b/src/layout/components/SubSidebar/index.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/layout/components/ThemeSetting/index.vue b/src/layout/components/ThemeSetting/index.vue new file mode 100644 index 00000000..62a4ec82 --- /dev/null +++ b/src/layout/components/ThemeSetting/index.vue @@ -0,0 +1,417 @@ + + + + + diff --git a/src/layout/components/Topbar/index.vue b/src/layout/components/Topbar/index.vue new file mode 100644 index 00000000..2e081f58 --- /dev/null +++ b/src/layout/components/Topbar/index.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/layout/components/UserMenu/index.vue b/src/layout/components/UserMenu/index.vue new file mode 100644 index 00000000..87cf8d69 --- /dev/null +++ b/src/layout/components/UserMenu/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/layout/index.vue b/src/layout/index.vue new file mode 100644 index 00000000..e549ffdd --- /dev/null +++ b/src/layout/index.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 00000000..a567ba76 --- /dev/null +++ b/src/main.js @@ -0,0 +1,34 @@ +import { createApp } from 'vue' +import App from './App.vue' +const app = createApp(App) + +import store from './store' +app.use(store) + +import router from './router' +app.use(router) + +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +app.use(ElementPlus, { + size: store.state.settings.elementSize +}) + +import globalProperties from '@/util/global.properties' +globalProperties(app) + +// 自定义指令 +import directive from '@/util/directive' +directive(app) + +// 全局组件自动注册 +import registerGlobalComponent from '@/components/registerGlobalComponent' +registerGlobalComponent(app) + +// 加载 svg 图标 +import 'vite-plugin-svg-icons/register' + +// 全局样式 +import '@/assets/styles/globals.scss' + +app.mount('#app') diff --git a/src/mixins/pagination.js b/src/mixins/pagination.js new file mode 100644 index 00000000..f7e2309a --- /dev/null +++ b/src/mixins/pagination.js @@ -0,0 +1,48 @@ +export default { + data() { + return { + loading: false, + sort: null, + order: null, + pagination: { + page: 1, + size: 10, + total: 0, + sizes: [10, 20, 50, 100], + layout: 'total, sizes, ->, prev, pager, next, jumper' + } + } + }, + methods: { + getParams(params = {}) { + const baseParams = { + from: (this.pagination.page - 1) * this.pagination.size, + limit: this.pagination.size + } + if (this.sort && this.order) { + baseParams.sort = this.sort + baseParams.order = this.order + } + Object.assign(baseParams, params) + return baseParams + }, + onSizeChange(size) { + this.pagination.size = size + this.getDataList() + }, + onCurrentChange(page) { + this.pagination.page = page + this.getDataList() + }, + onSortChange(params) { + if (params.order) { + this.sort = params.prop + this.order = params.order === 'ascending' ? 'asc' : 'desc' + } else { + this.sort = null + this.order = null + } + this.getDataList() + } + } +} diff --git a/src/mock/member.js b/src/mock/member.js new file mode 100644 index 00000000..b515e2ae --- /dev/null +++ b/src/mock/member.js @@ -0,0 +1,43 @@ +export default [ + { + url: '/mock/member/login', + method: 'post', + response: option => { + return { + error: '', + status: 1, + data: { + account: option.body.account, + token: '@string', + failure_time: Date.parse(new Date()) / 1000 + 24 * 60 * 60 + } + } + } + }, + { + url: '/mock/member/permission', + method: 'get', + response: option => { + let permissions = [] + if (option.query.account == 'admin') { + permissions = [ + 'permission.browse', + 'permission.create', + 'permission.edit', + 'permission.remove' + ] + } else if (option.query.account == 'test') { + permissions = [ + 'permission.browse' + ] + } + return { + error: '', + status: 1, + data: { + permissions + } + } + } + } +] diff --git a/src/mock/route.js b/src/mock/route.js new file mode 100644 index 00000000..051e2a91 --- /dev/null +++ b/src/mock/route.js @@ -0,0 +1,86 @@ +export default [ + { + url: '/mock/route/list', + method: 'get', + response: () => { + return { + error: '', + status: 1, + data: [ + { + meta: { + title: '演示', + icon: 'sidebar-default' + }, + children: [ + { + path: '/multilevel_menu_example', + component: 'Layout', + redirect: '/multilevel_menu_example/page', + name: 'multilevelMenuExample', + meta: { + title: '多级导航', + icon: 'sidebar-menu' + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample1', + component: 'multilevel_menu_example/page.vue', + meta: { + title: '导航1' + } + }, + { + path: 'level2', + name: 'multilevelMenuExample2', + redirect: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2' + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample2-1', + component: 'multilevel_menu_example/level2/page.vue', + meta: { + title: '导航2-1' + } + }, + { + path: 'level3', + name: 'multilevelMenuExample2-2', + redirect: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2' + }, + children: [ + { + path: 'page1', + name: 'multilevelMenuExample2-2-1', + component: 'multilevel_menu_example/level2/level3/page1.vue', + meta: { + title: '导航2-2-1' + } + }, + { + path: 'page2', + name: 'multilevelMenuExample2-2-2', + component: 'multilevel_menu_example/level2/level3/page2.vue', + meta: { + title: '导航2-2-2' + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + } + } +] diff --git a/src/mockProdServer.js b/src/mockProdServer.js new file mode 100644 index 00000000..84271fa8 --- /dev/null +++ b/src/mockProdServer.js @@ -0,0 +1,11 @@ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer' + +const mocks = [] +const mockContext = import.meta.globEager('./mock/*.js') +Object.keys(mockContext).forEach(v => { + mocks.push(...mockContext[v].default) +}) + +export function setupProdMockServer() { + createProdMockServer(mocks) +} diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 00000000..6139c0c2 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,255 @@ +import { createRouter, createWebHashHistory } from 'vue-router' +import store from '@/store' +import NProgress from 'nprogress' +import 'nprogress/nprogress.css' // progress bar style +import path from 'path-browserify' + +// 固定路由 +const constantRoutes = [ + { + path: '/login', + name: 'login', + component: () => import('@/views/login.vue'), + meta: { + title: '登录' + } + }, + { + path: '/', + component: () => import('@/layout/index.vue'), + redirect: '/dashboard', + children: [ + { + path: 'dashboard', + name: 'dashboard', + component: () => import('@/views/index.vue'), + meta: { + title: () => store.state.settings.dashboardTitle + } + }, + { + path: 'personal/setting', + name: 'personalSetting', + component: () => import('@/views/personal/setting.vue'), + meta: { + title: '个人设置', + breadcrumbNeste: [ + { title: '个人设置', path: '/personal/setting' } + ] + } + }, + { + path: 'personal/edit/password', + name: 'personalEditPassword', + component: () => import('@/views/personal/edit.password.vue'), + meta: { + title: '修改密码', + breadcrumbNeste: [ + { title: '修改密码', path: '/personal/edit/password' } + ] + } + }, + { + path: 'reload', + name: 'reload', + component: () => import('@/views/reload.vue') + } + ] + } +] + +import MultilevelMenuExample from './modules/multilevel.menu.example' +import BreadcrumbExample from './modules/breadcrumb.example' +import KeepAliveExample from './modules/keep.alive.example' +import ComponentBasicExample from './modules/component.basic.example' +import ComponentExtendExample from './modules/component.extend.example' +import PermissionExample from './modules/permission.example' +import MockExample from './modules/mock.example' +import ExternalLinkExample from './modules/external.link.example' +import VideosExample from './modules/videos.example' + +// 动态路由(异步路由、导航栏路由) +const asyncRoutes = [ + { + meta: { + title: '演示', + icon: 'sidebar-default' + }, + children: [ + MultilevelMenuExample, + BreadcrumbExample, + KeepAliveExample, + ComponentBasicExample, + ComponentExtendExample, + PermissionExample, + MockExample, + ExternalLinkExample + ] + }, + { + meta: { + title: '教程', + icon: 'sidebar-videos' + }, + children: [ + ...VideosExample + ] + } +] + +const lastRoute = { + path: '/:pathMatch(.*)*', + component: () => import('@/views/404.vue'), + meta: { + title: '找不到页面' + } +} + +const router = createRouter({ + history: createWebHashHistory(), + routes: constantRoutes +}) + +router.beforeEach(async(to, from, next) => { + store.state.settings.enableProgress && NProgress.start() + // 已经登录,但还没根据权限动态生成并挂载路由 + if (store.getters['user/isLogin'] && !store.state.menu.isGenerate) { + let accessRoutes = [] + if (!store.state.settings.enableBackendReturnRoute) { + accessRoutes = await store.dispatch('menu/generateRoutesAtFront', { + asyncRoutes, + currentPath: to.path + }) + } else { + accessRoutes = await store.dispatch('menu/generateRoutesAtBack', { + currentPath: to.path + }) + } + accessRoutes.push(lastRoute) + let removeRoutes = [] + accessRoutes.forEach(route => { + removeRoutes.push(router.addRoute(route)) + }) + // 记录的 accessRoutes 路由数据,在登出时会使用到,不使用 router.removeRoute 是考虑配置的路由可能不一定有设置 name ,则通过调用 router.addRoute() 返回的回调进行删除 + store.commit('menu/setCurrentRemoveRoutes', removeRoutes) + next({ ...to, replace: true }) + } else { + if (store.state.menu.isGenerate && store.state.settings.menuMode !== 'single') { + store.commit('menu/setHeaderActived', to.path) + } + if (store.getters['user/isLogin']) { + if (to.name) { + if (to.matched.length !== 0) { + // 如果已登录状态下,进入登录页会强制跳转到控制台页面 + if (to.name == 'login') { + next({ + name: 'dashboard', + replace: true + }) + } else if (!store.state.settings.enableDashboard && to.name == 'dashboard') { + // 如果未开启控制台页面,则默认进入侧边栏导航第一个模块 + if (store.getters['menu/sidebarRoutes'].length > 0) { + // 此处没有使用 store.getters['menu/sidebarRoutes'][0].path 直接进行跳转是因为会有个隐性 bug ,即当父级路由如果设置了 redirect ,而 redirect 对应的嵌套子路由由于没有权限导致没有被注册,此时则会无限进入 404 页面 + let getDeepestPath = (routes, rootPath = '') => { + let retnPath + if (routes.children) { + if ( + routes.children.some(item => { + return item.meta.sidebar != false + }) + ) { + for (let i = 0; i < routes.children.length; i++) { + if (routes.children[i].meta.sidebar != false) { + retnPath = getDeepestPath(routes.children[i], path.resolve(rootPath, routes.path)) + break + } + } + } else { + retnPath = getDeepestPath(routes.children[0], path.resolve(rootPath, routes.path)) + } + } else { + retnPath = path.resolve(rootPath, routes.path) + } + return retnPath + } + next({ + path: getDeepestPath(store.getters['menu/sidebarRoutes'][0]), + replace: true + }) + } else { + next() + } + } else { + next() + } + } else { + // 如果是通过 name 跳转,并且 name 对应的路由没有权限时,需要做这步处理,手动指向到 404 页面 + next({ + path: '/404' + }) + } + } else { + next() + } + } else { + if (to.name != 'login') { + next({ + name: 'login', + query: { + redirect: to.fullPath + } + }) + } else { + next() + } + } + } +}) + +router.afterEach((to, from) => { + store.state.settings.enableProgress && NProgress.done() + // 设置页面 title + to.meta.title && store.commit('settings/setTitle', typeof to.meta.title === 'function' ? to.meta.title() : to.meta.title) + // 判断当前页面是否开启缓存,如果开启,则将当前页面的 name 信息存入 keep-alive 全局状态 + if (to.meta.cache) { + let componentName = to.matched[to.matched.length - 1].components.default.name + if (componentName) { + to.matched.forEach(item => { + if (item.components.default.name && item.components.default.name != 'Layout') { + store.commit('keepAlive/add', item.components.default.name) + } + }) + } else { + console.warn('该页面组件未设置组件名,会导致缓存失效,请检查') + } + } + // 判断离开页面是否开启缓存,如果开启,则根据缓存规则判断是否需要清空 keep-alive 全局状态里离开页面的 name 信息 + if (from.meta.cache) { + let componentName = from.matched[from.matched.length - 1].components.default.name + // 通过 meta.cache 判断针对哪些页面进行缓存 + switch (typeof from.meta.cache) { + case 'string': + if (from.meta.cache != to.name) { + store.commit('keepAlive/remove', componentName) + } + break + case 'object': + if (!from.meta.cache.includes(to.name)) { + store.commit('keepAlive/remove', componentName) + } + break + } + // 如果进入的是 reload 页面,则也将离开页面的缓存清空 + if (to.name == 'reload') { + store.commit('keepAlive/remove', componentName) + } + } + // 百度统计代码 + if (import.meta.env.MODE == 'example') { + if (window._hmt) { + window._hmt.push(['_trackPageview', location.pathname + '#' + to.fullPath]) + } + } +}) + +export default router diff --git a/src/router/modules/breadcrumb.example.js b/src/router/modules/breadcrumb.example.js new file mode 100644 index 00000000..a81d9cd1 --- /dev/null +++ b/src/router/modules/breadcrumb.example.js @@ -0,0 +1,61 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/breadcrumb_example', + component: Layout, + redirect: '/breadcrumb_example/list1', + name: 'breadcrumbExample', + meta: { + title: '面包屑导航', + icon: 'sidebar-breadcrumb' + }, + children: [ + { + path: 'list1', + name: 'breadcrumbExampleList1', + component: () => import('@/views/breadcrumb_example/list1.vue'), + meta: { + title: '列表1(平级模式)' + } + }, + { + path: 'detail1', + name: 'breadcrumbExampleDetail1', + component: () => import('@/views/breadcrumb_example/detail1.vue'), + meta: { + title: '详情1', + sidebar: false, + activeMenu: '/breadcrumb_example/list1' + } + }, + { + path: 'list2', + name: 'breadcrumbExampleList2', + redirect: '/breadcrumb_example/list2', + meta: { + title: '列表2(层级模式)' + }, + children: [ + { + path: '', + component: () => import('@/views/breadcrumb_example/list2.vue'), + meta: { + title: '列表2(层级模式)', + sidebar: false, + breadcrumb: false + } + }, + { + path: 'detail2', + name: 'breadcrumbExampleDetail2', + component: () => import('@/views/breadcrumb_example/detail2.vue'), + meta: { + title: '详情2', + sidebar: false, + activeMenu: '/breadcrumb_example/list2' + } + } + ] + } + ] +} diff --git a/src/router/modules/component.basic.example.js b/src/router/modules/component.basic.example.js new file mode 100644 index 00000000..f9426b68 --- /dev/null +++ b/src/router/modules/component.basic.example.js @@ -0,0 +1,126 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/component_basic_example', + component: Layout, + redirect: '/component_basic_example/icon', + name: 'componentBasicExample', + meta: { + title: '基础组件(部分)', + icon: 'sidebar-element' + }, + children: [ + { + path: 'icon', + name: 'componentBasicExampleIcon', + component: () => import('@/views/component_basic_example/icon.vue'), + meta: { + title: '图标' + } + }, + { + path: 'button', + name: 'componentBasicExampleButton', + component: () => import('@/views/component_basic_example/button.vue'), + meta: { + title: '按钮' + } + }, + { + path: 'link', + name: 'componentBasicExampleLink', + component: () => import('@/views/component_basic_example/link.vue'), + meta: { + title: '文字链接' + } + }, + { + path: 'radio', + name: 'componentBasicExampleRadio', + component: () => import('@/views/component_basic_example/radio.vue'), + meta: { + title: '单选框' + } + }, + { + path: 'checkbox', + name: 'componentBasicExampleCheckbox', + component: () => import('@/views/component_basic_example/checkbox.vue'), + meta: { + title: '多选框' + } + }, + { + path: 'input', + name: 'componentBasicExampleInput', + component: () => import('@/views/component_basic_example/input.vue'), + meta: { + title: '输入框' + } + }, + { + path: 'inputnumber', + name: 'componentBasicExampleInputnumber', + component: () => import('@/views/component_basic_example/inputnumber.vue'), + meta: { + title: '计数器' + } + }, + { + path: 'select', + name: 'componentBasicExampleSelect', + component: () => import('@/views/component_basic_example/select.vue'), + meta: { + title: '选择器' + } + }, + { + path: 'switch', + name: 'componentBasicExampleSwitch', + component: () => import('@/views/component_basic_example/switch.vue'), + meta: { + title: '开关' + } + }, + { + path: 'slider', + name: 'componentBasicExampleSlider', + component: () => import('@/views/component_basic_example/slider.vue'), + meta: { + title: '滑块' + } + }, + { + path: 'timepicker', + name: 'componentBasicExampleTimepicker', + component: () => import('@/views/component_basic_example/timepicker.vue'), + meta: { + title: '时间选择器' + } + }, + { + path: 'datepicker', + name: 'componentBasicExampleDatepicker', + component: () => import('@/views/component_basic_example/datepicker.vue'), + meta: { + title: '日期选择器' + } + }, + { + path: 'datetimepicker', + name: 'componentBasicExampleDatetimepicker', + component: () => import('@/views/component_basic_example/datetimepicker.vue'), + meta: { + title: '日期时间选择器' + } + }, + { + path: 'rate', + name: 'componentBasicExampleRate', + component: () => import('@/views/component_basic_example/rate.vue'), + meta: { + title: '评分' + } + } + ] +} diff --git a/src/router/modules/component.extend.example.js b/src/router/modules/component.extend.example.js new file mode 100644 index 00000000..1dbb44ab --- /dev/null +++ b/src/router/modules/component.extend.example.js @@ -0,0 +1,118 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/component_extend_example', + component: Layout, + redirect: '/component_extend_example/pageheader', + name: 'componentExtendExample', + meta: { + title: '扩展组件', + icon: 'sidebar-component' + }, + children: [ + { + path: 'svg', + name: 'componentExtendExampleSvg', + component: () => import('@/views/component_extend_example/svg.vue'), + meta: { + title: 'SVG Icon' + } + }, + { + path: 'pageheader', + name: 'componentExtendExamplePageheader', + component: () => import('@/views/component_extend_example/pageheader.vue'), + meta: { + title: '页头' + } + }, + { + path: 'pagemain', + name: 'componentExtendExamplePagemain', + component: () => import('@/views/component_extend_example/pagemain.vue'), + meta: { + title: '内容块' + } + }, + { + path: 'result', + name: 'componentExtendExampleResult', + component: () => import('@/views/component_extend_example/result.vue'), + meta: { + title: '处理结果' + } + }, + { + path: 'actionbar', + name: 'componentExtendExampleActionbar', + component: () => import('@/views/component_extend_example/actionbar.vue'), + meta: { + title: '固定底部操作栏' + } + }, + { + path: 'searchbar', + name: 'componentExtendExampleSearchbar', + component: () => import('@/views/component_extend_example/searchbar.vue'), + meta: { + title: '搜索面板' + } + }, + { + path: 'batchactionbar', + name: 'componentExtendExampleBatchactionbar', + component: () => import('@/views/component_extend_example/batchactionbar.vue'), + meta: { + title: '批量操作栏' + } + }, + { + path: 'tableautoheight', + name: 'componentExtendExampleTableautoheight', + component: () => import('@/views/component_extend_example/table.autoheight.vue'), + meta: { + title: '表格自适应' + } + }, + { + path: 'upload', + name: 'componentExtendExampleUpload', + component: () => import('@/views/component_extend_example/upload.vue'), + meta: { + title: '上传' + } + }, + { + path: 'imagepreview', + name: 'componentExtendExampleImagePreview', + component: () => import('@/views/component_extend_example/image.preview.vue'), + meta: { + title: '图片预览' + } + }, + { + path: 'trend', + name: 'componentExtendExampleTrend', + component: () => import('@/views/component_extend_example/trend.vue'), + meta: { + title: '趋势标记' + } + }, + { + path: 'area', + name: 'componentExtendExampleArea', + component: () => import('@/views/component_extend_example/area.vue'), + meta: { + title: '省市区联动' + } + }, + { + path: 'editor', + name: 'componentExtendExampleEditor', + component: () => import('@/views/component_extend_example/editor.vue'), + meta: { + title: '编辑器' + } + } + ] +} diff --git a/src/router/modules/external.link.example.js b/src/router/modules/external.link.example.js new file mode 100644 index 00000000..1ae9ce61 --- /dev/null +++ b/src/router/modules/external.link.example.js @@ -0,0 +1,26 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/link', + component: Layout, + redirect: '/link/iframe', + name: 'externalLinkExample', + meta: { + title: '外链', + icon: 'sidebar-external-link' + }, + children: [ + { + path: 'https://gitee.com/hooray/fantastic-admin', + meta: { + title: 'Gitee 仓库' + } + }, + { + path: 'https://github.com/hooray/fantastic-admin', + meta: { + title: 'Github 仓库' + } + } + ] +} diff --git a/src/router/modules/keep.alive.example.js b/src/router/modules/keep.alive.example.js new file mode 100644 index 00000000..bb5dc359 --- /dev/null +++ b/src/router/modules/keep.alive.example.js @@ -0,0 +1,99 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/keep_alive_example', + component: Layout, + redirect: '/keep_alive_example/page', + name: 'keepAliveExample', + meta: { + title: '页面缓存', + icon: 'sidebar-keep-alive' + }, + children: [ + { + path: 'page', + name: 'keepAliveExamplePage', + component: () => import('@/views/keep_alive_example/page.vue'), + meta: { + title: '二级路由缓存' + } + }, + { + path: 'detail', + name: 'keepAliveExampleDetail', + component: () => import('@/views/keep_alive_example/detail.vue'), + meta: { + title: '同级路由', + sidebar: false, + activeMenu: '/keep_alive_example/page' + } + }, + { + path: 'detail2', + redirect: '/keep_alive_example/detail2', + meta: { + title: '下级路由', + sidebar: false + }, + children: [ + { + path: '', + name: 'keepAliveExampleDetail2', + component: () => import('@/views/keep_alive_example/detail.vue'), + meta: { + title: '下级路由', + activeMenu: '/keep_alive_example/page' + } + }, + { + path: 'detail3', + redirect: '/keep_alive_example/detail2/detail3', + meta: { + title: '下下级路由', + sidebar: false + }, + children: [ + { + path: '', + name: 'keepAliveExampleDetail3', + component: () => import('@/views/keep_alive_example/detail.vue'), + meta: { + title: '下下级路由', + activeMenu: '/keep_alive_example/page' + } + } + ] + } + ] + }, + { + path: 'nested', + name: 'keepAliveExampleNested1', + component: () => import('@/views/keep_alive_example/nested/nested.vue'), + meta: { + title: '路由多级缓存(1)' + }, + children: [ + { + path: 'nested', + name: 'keepAliveExampleNested2', + component: () => import('@/views/keep_alive_example/nested/nested/nested.vue'), + meta: { + title: '路由多级缓存(1-1)' + }, + children: [ + { + path: 'test', + name: 'keepAliveExampleNestedTest', + component: () => import('@/views/keep_alive_example/nested/nested/nested/index.vue'), + meta: { + title: '测试页面(1-1-1)', + cache: true + } + } + ] + } + ] + } + ] +} diff --git a/src/router/modules/mock.example.js b/src/router/modules/mock.example.js new file mode 100644 index 00000000..2736a867 --- /dev/null +++ b/src/router/modules/mock.example.js @@ -0,0 +1,25 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/mock_example', + component: Layout, + redirect: '/mock_example/index', + name: 'mockExample', + meta: { + title: 'Mock', + icon: 'sidebar-mock' + }, + children: [ + { + path: 'index', + name: 'mockExampleIndex', + component: () => import('@/views/mock_example/index.vue'), + meta: { + title: 'Mock', + sidebar: false, + breadcrumb: false, + activeMenu: '/mock_example' + } + } + ] +} diff --git a/src/router/modules/multilevel.menu.example.js b/src/router/modules/multilevel.menu.example.js new file mode 100644 index 00000000..6f632ccd --- /dev/null +++ b/src/router/modules/multilevel.menu.example.js @@ -0,0 +1,66 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/multilevel_menu_example', + component: Layout, + redirect: '/multilevel_menu_example/page', + name: 'multilevelMenuExample', + meta: { + title: '多级导航', + icon: 'sidebar-menu' + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample1', + component: () => import('@/views/multilevel_menu_example/page.vue'), + meta: { + title: '导航1' + } + }, + { + path: 'level2', + name: 'multilevelMenuExample2', + redirect: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2' + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample2-1', + component: () => import('@/views/multilevel_menu_example/level2/page.vue'), + meta: { + title: '导航2-1' + } + }, + { + path: 'level3', + name: 'multilevelMenuExample2-2', + redirect: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2' + }, + children: [ + { + path: 'page1', + name: 'multilevelMenuExample2-2-1', + component: () => import('@/views/multilevel_menu_example/level2/level3/page1.vue'), + meta: { + title: '导航2-2-1' + } + }, + { + path: 'page2', + name: 'multilevelMenuExample2-2-2', + component: () => import('@/views/multilevel_menu_example/level2/level3/page2.vue'), + meta: { + title: '导航2-2-2' + } + } + ] + } + ] + } + ] +} diff --git a/src/router/modules/permission.example.js b/src/router/modules/permission.example.js new file mode 100644 index 00000000..7a2b18af --- /dev/null +++ b/src/router/modules/permission.example.js @@ -0,0 +1,26 @@ +const Layout = () => import('@/layout/index.vue') + +export default { + path: '/permission_example', + component: Layout, + redirect: '/permission_example/index', + name: 'permissionExample', + meta: { + title: '权限验证', + icon: 'sidebar-permission' + }, + children: [ + { + path: 'index', + name: 'permissionExampleIndex', + component: () => import('@/views/permission_example/index.vue'), + meta: { + title: '权限验证', + auth: ['permission.browse'], + sidebar: false, + breadcrumb: false, + activeMenu: '/permission_example' + } + } + ] +} diff --git a/src/router/modules/videos.example.js b/src/router/modules/videos.example.js new file mode 100644 index 00000000..7fbfb349 --- /dev/null +++ b/src/router/modules/videos.example.js @@ -0,0 +1,24 @@ +const Layout = () => import('@/layout/index.vue') + +export default [ + { + path: '/videos_example/coming/soon', + component: Layout, + meta: { + title: '即将推出' + }, + children: [ + { + path: '', + name: 'videosExampleVideoComingSoon', + component: () => import('@/views/videos_example/coming.soon.vue'), + meta: { + title: '即将推出', + sidebar: false, + breadcrumb: false, + activeMenu: '/videos_example/coming/soon' + } + } + ] + } +] diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 00000000..f20a9ad7 --- /dev/null +++ b/src/settings.js @@ -0,0 +1,66 @@ +let globalSettings = { + /** + * 是否开启权限功能,权限功能提供以下鉴权支持: + * 1、路由鉴权 + * 2、鉴权组件:、 + * 3、鉴权指令:v-auth、v-auth-all + * 4、鉴权函数:this.$auth()、this.$authAll() + */ + enablePermission: false, + /** + * 导航栏模式 + * side 侧边栏模式(含主导航) + * head 顶部模式 + * single 侧边栏模式(无主导航) + */ + menuMode: 'side', + // Element 组件默认尺寸,支持:large、medium、small、mini + elementSize: 'large', + // 是否开启侧边栏展开收起按钮 + enableSidebarCollapse: false, + // 侧边栏是否收起 + sidebarCollapse: false, + // 切换侧边栏同时跳转页面 + switchSidebarAndPageJump: false, + // 顶栏(顶部导航栏和标签栏)是否固定 + topbarFixed: true, + // 是否开启面包屑导航 + enableBreadcrumb: true, + // 是否显示底部版权信息,同时在路由 meta 对象里可以单独设置某个路由是否显示底部版权信息 + showCopyright: true, + // 版权信息配置,格式为:Copyright © [dates] , All Rights Reserved + copyrightDates: '2020-2021', + copyrightCompany: 'Fantastic-admin', + copyrightWebsite: 'https://hooray.github.io/fantastic-admin', + // 是否开启导航搜索 + enableNavSearch: true, + // 是否开启移动端适配,开启后当页面宽度小于 992px 时自动切换为移动端展示 + enableMobileAdaptation: true, + // 是否开启全屏 + enableFullscreen: false, + // 是否开启页面刷新 + enablePageReload: false, + // 是否开启载入进度条 + enableProgress: true, + // 是否开启动态标题 + enableDynamicTitle: false, + // 是否开启控制台 + enableDashboard: true, + // 控制台名称 + dashboardTitle: '控制台', + // 是否开启后端返回路由数据 + enableBackendReturnRoute: false, + // 是否开启主题配置(建议在生产环境关闭) + enableThemeSetting: true +} + +// 演示&开发环境开启全部功能(这部分代码可删除,仅方便作者打包演示环境) +if (import.meta.env.VITE_APP_MODE === 'example' || import.meta.env.MODE === 'development') { + globalSettings.enablePermission = true + globalSettings.enableSidebarCollapse = true + globalSettings.enableFullscreen = true + globalSettings.enablePageReload = true + globalSettings.enableDynamicTitle = true +} + +export default globalSettings diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 00000000..d780b5f4 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,13 @@ +import { createStore, createLogger } from 'vuex' + +const modules = {} +const modulesContext = import.meta.globEager('./modules/*.js') +for (const path in modulesContext) { + modules[path.slice(10, -3)] = modulesContext[path].default +} + +export default createStore({ + modules: modules, + strict: !import.meta.env.PROD, + plugins: !import.meta.env.PROD ? [createLogger()] : [] +}) diff --git a/src/store/modules/keepAlive.js b/src/store/modules/keepAlive.js new file mode 100644 index 00000000..139f096b --- /dev/null +++ b/src/store/modules/keepAlive.js @@ -0,0 +1,41 @@ +const state = () => ({ + list: [] +}) + +const getters = {} + +const actions = {} + +const mutations = { + add(state, name) { + if (typeof name === 'string') { + !state.list.includes(name) && state.list.push(name) + } else { + name.map(v => { + v && !state.list.includes(v) && state.list.push(v) + }) + } + }, + remove(state, name) { + if (typeof name === 'string') { + state.list = state.list.filter(v => { + return v != name + }) + } else { + state.list = state.list.filter(v => { + return !name.includes(v) + }) + } + }, + clean(state) { + state.list = [] + } +} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/src/store/modules/menu.js b/src/store/modules/menu.js new file mode 100644 index 00000000..edc045fa --- /dev/null +++ b/src/store/modules/menu.js @@ -0,0 +1,247 @@ +import { deepClone } from '@/util' +import api from '@/api' + +function hasPermission(permissions, route) { + let isAuth = false + if (route.meta && route.meta.auth) { + isAuth = permissions.some(auth => { + if (typeof route.meta.auth == 'string') { + return route.meta.auth === auth + } else { + return route.meta.auth.some(routeAuth => { + return routeAuth === auth + }) + } + }) + } else { + isAuth = true + } + return isAuth +} + +function filterAsyncRoutes(routes, permissions) { + const res = [] + routes.forEach(route => { + const tmp = { ...route } + if (hasPermission(permissions, tmp)) { + if (tmp.children) { + tmp.children = filterAsyncRoutes(tmp.children, permissions) + tmp.children.length && res.push(tmp) + } else { + res.push(tmp) + } + } + }) + return res +} + +function formatBackRoutes(routes, views = import.meta.glob('../../views/**/*.vue')) { + return routes.map(route => { + switch (route.component) { + case 'Layout': + route.component = () => import('@/layout/index.vue') + break + default: + if (route.component) { + route.component = views[`../../views/${route.component}`] + } + } + if (route.children) { + route.children = formatBackRoutes(route.children, views) + } + return route + }) +} + +// 将多层嵌套路由处理成平级 +function flatAsyncRoutes(routes, breadcrumb, baseUrl = '') { + let res = [] + routes.forEach(route => { + const tmp = { ...route } + if (tmp.children) { + let childrenBaseUrl = '' + if (baseUrl == '') { + childrenBaseUrl = tmp.path + } else if (tmp.path != '') { + childrenBaseUrl = `${baseUrl}/${tmp.path}` + } + let childrenBreadcrumb = deepClone(breadcrumb) + if (route.meta.breadcrumb !== false) { + childrenBreadcrumb.push({ + path: childrenBaseUrl, + title: route.meta.title + }) + } + let tmpRoute = deepClone(route) + tmpRoute.path = childrenBaseUrl + tmpRoute.meta.breadcrumbNeste = childrenBreadcrumb + delete tmpRoute.children + res.push(tmpRoute) + let childrenRoutes = flatAsyncRoutes(tmp.children, childrenBreadcrumb, childrenBaseUrl) + childrenRoutes.map(item => { + // 如果 path 一样则覆盖,因为子路由的 path 可能设置为空,导致和父路由一样,直接注册会提示路由重复 + if (res.some(v => v.path == item.path)) { + res.forEach((v, i) => { + if (v.path == item.path) { + res[i] = item + } + }) + } else { + res.push(item) + } + }) + } else { + if (baseUrl != '') { + if (tmp.path != '') { + tmp.path = `${baseUrl}/${tmp.path}` + } else { + tmp.path = baseUrl + } + } + // 处理面包屑导航 + let tmpBreadcrumb = deepClone(breadcrumb) + if (tmp.meta.breadcrumb !== false) { + tmpBreadcrumb.push({ + path: tmp.path, + title: tmp.meta.title + }) + } + tmp.meta.breadcrumbNeste = tmpBreadcrumb + res.push(tmp) + } + }) + return res +} + +const state = () => ({ + isGenerate: false, + routes: [], + headerActived: 0, + currentRemoveRoutes: [] +}) + +const getters = { + // 由于 getter 的结果不会被缓存,导致导航栏切换时有明显的延迟,该问题会在 Vue 3.2 版本中修复,详看 https://github.com/vuejs/vuex/pull/1883 + routes: (state, getters, rootState) => { + let routes + if (rootState.settings.menuMode === 'single') { + routes = [{children: []}] + state.routes.map(item => { + routes[0].children.push(...item.children) + }) + } else { + routes = state.routes + } + return routes + }, + sidebarRoutes: (state, getters) => { + return getters.routes.length > 0 ? getters.routes[state.headerActived].children : [] + } +} + +const actions = { + // 根据权限动态生成路由(前端生成) + generateRoutesAtFront({rootState, dispatch, commit}, data) { + // eslint-disable-next-line no-async-promise-executor + return new Promise(async resolve => { + let accessedRoutes + // 如果权限功能开启,则需要对路由数据进行筛选过滤 + if (rootState.settings.enablePermission) { + const permissions = await dispatch('user/getPermissions', null, { root: true }) + accessedRoutes = filterAsyncRoutes(data.asyncRoutes, permissions) + } else { + accessedRoutes = data.asyncRoutes + } + commit('setRoutes', accessedRoutes) + commit('setHeaderActived', data.currentPath) + let routes = [] + accessedRoutes.map(item => { + routes.push(...item.children) + }) + // 将三级及以上路由数据拍平成二级 + routes.map(item => { + if (item.children) { + item.children = flatAsyncRoutes(item.children, [{ + path: item.path, + title: item.meta.title + }]) + } + }) + resolve(routes) + }) + }, + // 生成路由(后端获取) + generateRoutesAtBack({ commit }, data) { + return new Promise(resolve => { + api.get('route/list', { + baseURL: '/mock/' + }).then(res => { + let accessedRoutes = formatBackRoutes(res.data) + commit('setRoutes', accessedRoutes) + commit('setHeaderActived', data.currentPath) + let routes = [] + accessedRoutes.map(item => { + routes.push(...item.children) + }) + // 将三级及以上路由数据拍平成二级 + routes.map(item => { + if (item.children) { + item.children = flatAsyncRoutes(item.children, [{ + path: item.path, + title: item.meta.title + }]) + } + }) + resolve(routes) + }) + }) + } +} + +const mutations = { + invalidRoutes(state) { + state.isGenerate = false + state.headerActived = 0 + }, + setRoutes(state, routes) { + state.isGenerate = true + let newRoutes = deepClone(routes) + state.routes = newRoutes.filter(item => { + return item.children.length != 0 + }) + }, + // 根据路由判断属于哪个头部导航 + setHeaderActived(state, path) { + state.routes.map((item, index) => { + if ( + item.children.some(r => { + return path.indexOf(r.path + '/') === 0 || path == r.path + }) + ) { + state.headerActived = index + } + }) + }, + // 切换头部导航 + switchHeaderActived(state, index) { + state.headerActived = index + }, + // 记录 accessRoutes 路由,用于登出时删除路由 + setCurrentRemoveRoutes(state, routes) { + state.currentRemoveRoutes = routes + }, + // 清空动态路由 + removeRoutes(state) { + state.currentRemoveRoutes.forEach(removeRoute => { + removeRoute() + }) + } +} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js new file mode 100644 index 00000000..9f28d537 --- /dev/null +++ b/src/store/modules/settings.js @@ -0,0 +1,54 @@ +/** + * 存放全局公用状态 + */ +import settings from '@/settings' + +const state = () => ({ + ...settings, + // 侧边栏是否收起(用于记录 pc 模式下最后的状态) + sidebarCollapseLastStatus: settings.sidebarCollapse, + // 主页面是否最大化 + mainPageMaximizeStatus: false, + // 显示模式,支持:mobile、pc + mode: 'pc', + // 页面标题 + title: '' +}) + +const getters = {} + +const actions = {} + +const mutations = { + // 设置访问模式,页面宽度小于 992px 时切换为移动端展示 + setMode(state, width) { + if (state.enableMobileAdaptation && width < 992) { + state.mode = 'mobile' + } else { + state.mode = 'pc' + } + }, + // 设置网页标题 + setTitle(state, title) { + state.title = title + }, + // 切换侧边栏导航展开/收起 + toggleSidebarCollapse(state) { + state.sidebarCollapse = !state.sidebarCollapse + if (state.mode == 'pc') { + state.sidebarCollapseLastStatus = !state.sidebarCollapseLastStatus + } + }, + // 更新主题配置 + updateThemeSetting(state, data) { + Object.assign(state, data) + } +} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 00000000..3f8d458f --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,88 @@ +import api from '@/api' + +const state = () => ({ + account: localStorage.account || '', + token: localStorage.token || '', + failure_time: localStorage.failure_time || '', + permissions: [] +}) + +const getters = { + isLogin: state => { + let retn = false + if (state.token) { + let unix = Date.parse(new Date()) + if (unix < state.failure_time * 1000) { + retn = true + } + } + return retn + } +} + +const actions = { + login({commit}, data) { + return new Promise((resolve, reject) => { + // 通过 mock 进行登录 + api.post('member/login', data, { + baseURL: '/mock/' + }).then(res => { + commit('setUserData', res.data) + resolve() + }).catch(error => { + reject(error) + }) + }) + }, + logout({commit}) { + commit('removeUserData') + commit('menu/invalidRoutes', null, {root: true}) + commit('tabbar/clean', null, {root: true}) + commit('menu/removeRoutes', null, {root: true}) + }, + // 获取我的权限 + getPermissions({state, commit}) { + return new Promise(resolve => { + // 通过 mock 获取权限 + api.get('member/permission', { + baseURL: '/mock/', + params: { + account: state.account + } + }).then(res => { + commit('setPermissions', res.data.permissions) + resolve(res.data.permissions) + }) + }) + } +} + +const mutations = { + setUserData(state, data) { + localStorage.setItem('account', data.account) + localStorage.setItem('token', data.token) + localStorage.setItem('failure_time', data.failure_time) + state.account = data.account + state.token = data.token + state.failure_time = data.failure_time + }, + removeUserData(state) { + localStorage.removeItem('account') + localStorage.removeItem('token') + localStorage.removeItem('failure_time') + state.account = '' + state.token = '' + state.failure_time = '' + }, + setPermissions(state, permissions) { + state.permissions = permissions + } +} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/src/util/area.js b/src/util/area.js new file mode 100644 index 00000000..904b9744 --- /dev/null +++ b/src/util/area.js @@ -0,0 +1,14010 @@ +const area = [ + { + 'name': '北京市', + 'code': '110000', + 'region': 'north', + 'provinceLevelCity': true, + 'children': [ + { + 'name': '市辖区', + 'code': '110100', + 'children': [ + { + 'name': '东城区', + 'code': '110101' + }, + { + 'name': '西城区', + 'code': '110102' + }, + { + 'name': '朝阳区', + 'code': '110105' + }, + { + 'name': '丰台区', + 'code': '110106' + }, + { + 'name': '石景山区', + 'code': '110107' + }, + { + 'name': '海淀区', + 'code': '110108' + }, + { + 'name': '门头沟区', + 'code': '110109' + }, + { + 'name': '房山区', + 'code': '110111' + }, + { + 'name': '通州区', + 'code': '110112' + }, + { + 'name': '顺义区', + 'code': '110113' + }, + { + 'name': '昌平区', + 'code': '110114' + }, + { + 'name': '大兴区', + 'code': '110115' + }, + { + 'name': '怀柔区', + 'code': '110116' + }, + { + 'name': '平谷区', + 'code': '110117' + }, + { + 'name': '密云区', + 'code': '110118' + }, + { + 'name': '延庆区', + 'code': '110119' + } + ] + } + ] + }, + { + 'name': '天津市', + 'code': '120000', + 'region': 'north', + 'provinceLevelCity': true, + 'children': [ + { + 'name': '市辖区', + 'code': '120100', + 'children': [ + { + 'name': '和平区', + 'code': '120101' + }, + { + 'name': '河东区', + 'code': '120102' + }, + { + 'name': '河西区', + 'code': '120103' + }, + { + 'name': '南开区', + 'code': '120104' + }, + { + 'name': '河北区', + 'code': '120105' + }, + { + 'name': '红桥区', + 'code': '120106' + }, + { + 'name': '东丽区', + 'code': '120110' + }, + { + 'name': '西青区', + 'code': '120111' + }, + { + 'name': '津南区', + 'code': '120112' + }, + { + 'name': '北辰区', + 'code': '120113' + }, + { + 'name': '武清区', + 'code': '120114' + }, + { + 'name': '宝坻区', + 'code': '120115' + }, + { + 'name': '滨海新区', + 'code': '120116' + }, + { + 'name': '宁河区', + 'code': '120117' + }, + { + 'name': '静海区', + 'code': '120118' + }, + { + 'name': '蓟州区', + 'code': '120119' + } + ] + } + ] + }, + { + 'name': '河北省', + 'code': '130000', + 'region': 'north', + 'children': [ + { + 'name': '石家庄市', + 'code': '130100', + 'children': [ + { + 'name': '长安区', + 'code': '130102' + }, + { + 'name': '桥西区', + 'code': '130104' + }, + { + 'name': '新华区', + 'code': '130105' + }, + { + 'name': '井陉矿区', + 'code': '130107' + }, + { + 'name': '裕华区', + 'code': '130108' + }, + { + 'name': '藁城区', + 'code': '130109' + }, + { + 'name': '鹿泉区', + 'code': '130110' + }, + { + 'name': '栾城区', + 'code': '130111' + }, + { + 'name': '井陉县', + 'code': '130121' + }, + { + 'name': '正定县', + 'code': '130123' + }, + { + 'name': '行唐县', + 'code': '130125' + }, + { + 'name': '灵寿县', + 'code': '130126' + }, + { + 'name': '高邑县', + 'code': '130127' + }, + { + 'name': '深泽县', + 'code': '130128' + }, + { + 'name': '赞皇县', + 'code': '130129' + }, + { + 'name': '无极县', + 'code': '130130' + }, + { + 'name': '平山县', + 'code': '130131' + }, + { + 'name': '元氏县', + 'code': '130132' + }, + { + 'name': '赵县', + 'code': '130133' + }, + { + 'name': '辛集市', + 'code': '130181' + }, + { + 'name': '晋州市', + 'code': '130183' + }, + { + 'name': '新乐市', + 'code': '130184' + } + ] + }, + { + 'name': '唐山市', + 'code': '130200', + 'children': [ + { + 'name': '路南区', + 'code': '130202' + }, + { + 'name': '路北区', + 'code': '130203' + }, + { + 'name': '古冶区', + 'code': '130204' + }, + { + 'name': '开平区', + 'code': '130205' + }, + { + 'name': '丰南区', + 'code': '130207' + }, + { + 'name': '丰润区', + 'code': '130208' + }, + { + 'name': '曹妃甸区', + 'code': '130209' + }, + { + 'name': '滦南县', + 'code': '130224' + }, + { + 'name': '乐亭县', + 'code': '130225' + }, + { + 'name': '迁西县', + 'code': '130227' + }, + { + 'name': '玉田县', + 'code': '130229' + }, + { + 'name': '遵化市', + 'code': '130281' + }, + { + 'name': '迁安市', + 'code': '130283' + }, + { + 'name': '滦州市', + 'code': '130284' + } + ] + }, + { + 'name': '秦皇岛市', + 'code': '130300', + 'children': [ + { + 'name': '海港区', + 'code': '130302' + }, + { + 'name': '山海关区', + 'code': '130303' + }, + { + 'name': '北戴河区', + 'code': '130304' + }, + { + 'name': '抚宁区', + 'code': '130306' + }, + { + 'name': '青龙满族自治县', + 'code': '130321' + }, + { + 'name': '昌黎县', + 'code': '130322' + }, + { + 'name': '卢龙县', + 'code': '130324' + } + ] + }, + { + 'name': '邯郸市', + 'code': '130400', + 'children': [ + { + 'name': '邯山区', + 'code': '130402' + }, + { + 'name': '丛台区', + 'code': '130403' + }, + { + 'name': '复兴区', + 'code': '130404' + }, + { + 'name': '峰峰矿区', + 'code': '130406' + }, + { + 'name': '肥乡区', + 'code': '130407' + }, + { + 'name': '永年区', + 'code': '130408' + }, + { + 'name': '临漳县', + 'code': '130423' + }, + { + 'name': '成安县', + 'code': '130424' + }, + { + 'name': '大名县', + 'code': '130425' + }, + { + 'name': '涉县', + 'code': '130426' + }, + { + 'name': '磁县', + 'code': '130427' + }, + { + 'name': '邱县', + 'code': '130430' + }, + { + 'name': '鸡泽县', + 'code': '130431' + }, + { + 'name': '广平县', + 'code': '130432' + }, + { + 'name': '馆陶县', + 'code': '130433' + }, + { + 'name': '魏县', + 'code': '130434' + }, + { + 'name': '曲周县', + 'code': '130435' + }, + { + 'name': '武安市', + 'code': '130481' + } + ] + }, + { + 'name': '邢台市', + 'code': '130500', + 'children': [ + { + 'name': '桥东区', + 'code': '130502' + }, + { + 'name': '桥西区', + 'code': '130503' + }, + { + 'name': '邢台县', + 'code': '130521' + }, + { + 'name': '临城县', + 'code': '130522' + }, + { + 'name': '内丘县', + 'code': '130523' + }, + { + 'name': '柏乡县', + 'code': '130524' + }, + { + 'name': '隆尧县', + 'code': '130525' + }, + { + 'name': '任县', + 'code': '130526' + }, + { + 'name': '南和县', + 'code': '130527' + }, + { + 'name': '宁晋县', + 'code': '130528' + }, + { + 'name': '巨鹿县', + 'code': '130529' + }, + { + 'name': '新河县', + 'code': '130530' + }, + { + 'name': '广宗县', + 'code': '130531' + }, + { + 'name': '平乡县', + 'code': '130532' + }, + { + 'name': '威县', + 'code': '130533' + }, + { + 'name': '清河县', + 'code': '130534' + }, + { + 'name': '临西县', + 'code': '130535' + }, + { + 'name': '南宫市', + 'code': '130581' + }, + { + 'name': '沙河市', + 'code': '130582' + } + ] + }, + { + 'name': '保定市', + 'code': '130600', + 'children': [ + { + 'name': '竞秀区', + 'code': '130602' + }, + { + 'name': '莲池区', + 'code': '130606' + }, + { + 'name': '满城区', + 'code': '130607' + }, + { + 'name': '清苑区', + 'code': '130608' + }, + { + 'name': '徐水区', + 'code': '130609' + }, + { + 'name': '涞水县', + 'code': '130623' + }, + { + 'name': '阜平县', + 'code': '130624' + }, + { + 'name': '定兴县', + 'code': '130626' + }, + { + 'name': '唐县', + 'code': '130627' + }, + { + 'name': '高阳县', + 'code': '130628' + }, + { + 'name': '容城县', + 'code': '130629' + }, + { + 'name': '涞源县', + 'code': '130630' + }, + { + 'name': '望都县', + 'code': '130631' + }, + { + 'name': '安新县', + 'code': '130632' + }, + { + 'name': '易县', + 'code': '130633' + }, + { + 'name': '曲阳县', + 'code': '130634' + }, + { + 'name': '蠡县', + 'code': '130635' + }, + { + 'name': '顺平县', + 'code': '130636' + }, + { + 'name': '博野县', + 'code': '130637' + }, + { + 'name': '雄县', + 'code': '130638' + }, + { + 'name': '涿州市', + 'code': '130681' + }, + { + 'name': '定州市', + 'code': '130682' + }, + { + 'name': '安国市', + 'code': '130683' + }, + { + 'name': '高碑店市', + 'code': '130684' + } + ] + }, + { + 'name': '张家口市', + 'code': '130700', + 'children': [ + { + 'name': '桥东区', + 'code': '130702' + }, + { + 'name': '桥西区', + 'code': '130703' + }, + { + 'name': '宣化区', + 'code': '130705' + }, + { + 'name': '下花园区', + 'code': '130706' + }, + { + 'name': '万全区', + 'code': '130708' + }, + { + 'name': '崇礼区', + 'code': '130709' + }, + { + 'name': '张北县', + 'code': '130722' + }, + { + 'name': '康保县', + 'code': '130723' + }, + { + 'name': '沽源县', + 'code': '130724' + }, + { + 'name': '尚义县', + 'code': '130725' + }, + { + 'name': '蔚县', + 'code': '130726' + }, + { + 'name': '阳原县', + 'code': '130727' + }, + { + 'name': '怀安县', + 'code': '130728' + }, + { + 'name': '怀来县', + 'code': '130730' + }, + { + 'name': '涿鹿县', + 'code': '130731' + }, + { + 'name': '赤城县', + 'code': '130732' + } + ] + }, + { + 'name': '承德市', + 'code': '130800', + 'children': [ + { + 'name': '双桥区', + 'code': '130802' + }, + { + 'name': '双滦区', + 'code': '130803' + }, + { + 'name': '鹰手营子矿区', + 'code': '130804' + }, + { + 'name': '承德县', + 'code': '130821' + }, + { + 'name': '兴隆县', + 'code': '130822' + }, + { + 'name': '滦平县', + 'code': '130824' + }, + { + 'name': '隆化县', + 'code': '130825' + }, + { + 'name': '丰宁满族自治县', + 'code': '130826' + }, + { + 'name': '宽城满族自治县', + 'code': '130827' + }, + { + 'name': '围场满族蒙古族自治县', + 'code': '130828' + }, + { + 'name': '平泉市', + 'code': '130881' + } + ] + }, + { + 'name': '沧州市', + 'code': '130900', + 'children': [ + { + 'name': '新华区', + 'code': '130902' + }, + { + 'name': '运河区', + 'code': '130903' + }, + { + 'name': '沧县', + 'code': '130921' + }, + { + 'name': '青县', + 'code': '130922' + }, + { + 'name': '东光县', + 'code': '130923' + }, + { + 'name': '海兴县', + 'code': '130924' + }, + { + 'name': '盐山县', + 'code': '130925' + }, + { + 'name': '肃宁县', + 'code': '130926' + }, + { + 'name': '南皮县', + 'code': '130927' + }, + { + 'name': '吴桥县', + 'code': '130928' + }, + { + 'name': '献县', + 'code': '130929' + }, + { + 'name': '孟村回族自治县', + 'code': '130930' + }, + { + 'name': '泊头市', + 'code': '130981' + }, + { + 'name': '任丘市', + 'code': '130982' + }, + { + 'name': '黄骅市', + 'code': '130983' + }, + { + 'name': '河间市', + 'code': '130984' + } + ] + }, + { + 'name': '廊坊市', + 'code': '131000', + 'children': [ + { + 'name': '安次区', + 'code': '131002' + }, + { + 'name': '广阳区', + 'code': '131003' + }, + { + 'name': '固安县', + 'code': '131022' + }, + { + 'name': '永清县', + 'code': '131023' + }, + { + 'name': '香河县', + 'code': '131024' + }, + { + 'name': '大城县', + 'code': '131025' + }, + { + 'name': '文安县', + 'code': '131026' + }, + { + 'name': '大厂回族自治县', + 'code': '131028' + }, + { + 'name': '霸州市', + 'code': '131081' + }, + { + 'name': '三河市', + 'code': '131082' + } + ] + }, + { + 'name': '衡水市', + 'code': '131100', + 'children': [ + { + 'name': '桃城区', + 'code': '131102' + }, + { + 'name': '冀州区', + 'code': '131103' + }, + { + 'name': '枣强县', + 'code': '131121' + }, + { + 'name': '武邑县', + 'code': '131122' + }, + { + 'name': '武强县', + 'code': '131123' + }, + { + 'name': '饶阳县', + 'code': '131124' + }, + { + 'name': '安平县', + 'code': '131125' + }, + { + 'name': '故城县', + 'code': '131126' + }, + { + 'name': '景县', + 'code': '131127' + }, + { + 'name': '阜城县', + 'code': '131128' + }, + { + 'name': '深州市', + 'code': '131182' + } + ] + } + ] + }, + { + 'name': '山西省', + 'code': '140000', + 'region': 'north', + 'children': [ + { + 'name': '太原市', + 'code': '140100', + 'children': [ + { + 'name': '小店区', + 'code': '140105' + }, + { + 'name': '迎泽区', + 'code': '140106' + }, + { + 'name': '杏花岭区', + 'code': '140107' + }, + { + 'name': '尖草坪区', + 'code': '140108' + }, + { + 'name': '万柏林区', + 'code': '140109' + }, + { + 'name': '晋源区', + 'code': '140110' + }, + { + 'name': '清徐县', + 'code': '140121' + }, + { + 'name': '阳曲县', + 'code': '140122' + }, + { + 'name': '娄烦县', + 'code': '140123' + }, + { + 'name': '古交市', + 'code': '140181' + } + ] + }, + { + 'name': '大同市', + 'code': '140200', + 'children': [ + { + 'name': '新荣区', + 'code': '140212' + }, + { + 'name': '平城区', + 'code': '140213' + }, + { + 'name': '云冈区', + 'code': '140214' + }, + { + 'name': '云州区', + 'code': '140215' + }, + { + 'name': '阳高县', + 'code': '140221' + }, + { + 'name': '天镇县', + 'code': '140222' + }, + { + 'name': '广灵县', + 'code': '140223' + }, + { + 'name': '灵丘县', + 'code': '140224' + }, + { + 'name': '浑源县', + 'code': '140225' + }, + { + 'name': '左云县', + 'code': '140226' + } + ] + }, + { + 'name': '阳泉市', + 'code': '140300', + 'children': [ + { + 'name': '城区', + 'code': '140302' + }, + { + 'name': '矿区', + 'code': '140303' + }, + { + 'name': '郊区', + 'code': '140311' + }, + { + 'name': '平定县', + 'code': '140321' + }, + { + 'name': '盂县', + 'code': '140322' + } + ] + }, + { + 'name': '长治市', + 'code': '140400', + 'children': [ + { + 'name': '潞州区', + 'code': '140403' + }, + { + 'name': '上党区', + 'code': '140404' + }, + { + 'name': '屯留区', + 'code': '140405' + }, + { + 'name': '潞城区', + 'code': '140406' + }, + { + 'name': '襄垣县', + 'code': '140423' + }, + { + 'name': '平顺县', + 'code': '140425' + }, + { + 'name': '黎城县', + 'code': '140426' + }, + { + 'name': '壶关县', + 'code': '140427' + }, + { + 'name': '长子县', + 'code': '140428' + }, + { + 'name': '武乡县', + 'code': '140429' + }, + { + 'name': '沁县', + 'code': '140430' + }, + { + 'name': '沁源县', + 'code': '140431' + } + ] + }, + { + 'name': '晋城市', + 'code': '140500', + 'children': [ + { + 'name': '城区', + 'code': '140502' + }, + { + 'name': '沁水县', + 'code': '140521' + }, + { + 'name': '阳城县', + 'code': '140522' + }, + { + 'name': '陵川县', + 'code': '140524' + }, + { + 'name': '泽州县', + 'code': '140525' + }, + { + 'name': '高平市', + 'code': '140581' + } + ] + }, + { + 'name': '朔州市', + 'code': '140600', + 'children': [ + { + 'name': '朔城区', + 'code': '140602' + }, + { + 'name': '平鲁区', + 'code': '140603' + }, + { + 'name': '山阴县', + 'code': '140621' + }, + { + 'name': '应县', + 'code': '140622' + }, + { + 'name': '右玉县', + 'code': '140623' + }, + { + 'name': '怀仁市', + 'code': '140681' + } + ] + }, + { + 'name': '晋中市', + 'code': '140700', + 'children': [ + { + 'name': '榆次区', + 'code': '140702' + }, + { + 'name': '榆社县', + 'code': '140721' + }, + { + 'name': '左权县', + 'code': '140722' + }, + { + 'name': '和顺县', + 'code': '140723' + }, + { + 'name': '昔阳县', + 'code': '140724' + }, + { + 'name': '寿阳县', + 'code': '140725' + }, + { + 'name': '太谷县', + 'code': '140726' + }, + { + 'name': '祁县', + 'code': '140727' + }, + { + 'name': '平遥县', + 'code': '140728' + }, + { + 'name': '灵石县', + 'code': '140729' + }, + { + 'name': '介休市', + 'code': '140781' + } + ] + }, + { + 'name': '运城市', + 'code': '140800', + 'children': [ + { + 'name': '盐湖区', + 'code': '140802' + }, + { + 'name': '临猗县', + 'code': '140821' + }, + { + 'name': '万荣县', + 'code': '140822' + }, + { + 'name': '闻喜县', + 'code': '140823' + }, + { + 'name': '稷山县', + 'code': '140824' + }, + { + 'name': '新绛县', + 'code': '140825' + }, + { + 'name': '绛县', + 'code': '140826' + }, + { + 'name': '垣曲县', + 'code': '140827' + }, + { + 'name': '夏县', + 'code': '140828' + }, + { + 'name': '平陆县', + 'code': '140829' + }, + { + 'name': '芮城县', + 'code': '140830' + }, + { + 'name': '永济市', + 'code': '140881' + }, + { + 'name': '河津市', + 'code': '140882' + } + ] + }, + { + 'name': '忻州市', + 'code': '140900', + 'children': [ + { + 'name': '忻府区', + 'code': '140902' + }, + { + 'name': '定襄县', + 'code': '140921' + }, + { + 'name': '五台县', + 'code': '140922' + }, + { + 'name': '代县', + 'code': '140923' + }, + { + 'name': '繁峙县', + 'code': '140924' + }, + { + 'name': '宁武县', + 'code': '140925' + }, + { + 'name': '静乐县', + 'code': '140926' + }, + { + 'name': '神池县', + 'code': '140927' + }, + { + 'name': '五寨县', + 'code': '140928' + }, + { + 'name': '岢岚县', + 'code': '140929' + }, + { + 'name': '河曲县', + 'code': '140930' + }, + { + 'name': '保德县', + 'code': '140931' + }, + { + 'name': '偏关县', + 'code': '140932' + }, + { + 'name': '原平市', + 'code': '140981' + } + ] + }, + { + 'name': '临汾市', + 'code': '141000', + 'children': [ + { + 'name': '尧都区', + 'code': '141002' + }, + { + 'name': '曲沃县', + 'code': '141021' + }, + { + 'name': '翼城县', + 'code': '141022' + }, + { + 'name': '襄汾县', + 'code': '141023' + }, + { + 'name': '洪洞县', + 'code': '141024' + }, + { + 'name': '古县', + 'code': '141025' + }, + { + 'name': '安泽县', + 'code': '141026' + }, + { + 'name': '浮山县', + 'code': '141027' + }, + { + 'name': '吉县', + 'code': '141028' + }, + { + 'name': '乡宁县', + 'code': '141029' + }, + { + 'name': '大宁县', + 'code': '141030' + }, + { + 'name': '隰县', + 'code': '141031' + }, + { + 'name': '永和县', + 'code': '141032' + }, + { + 'name': '蒲县', + 'code': '141033' + }, + { + 'name': '汾西县', + 'code': '141034' + }, + { + 'name': '侯马市', + 'code': '141081' + }, + { + 'name': '霍州市', + 'code': '141082' + } + ] + }, + { + 'name': '吕梁市', + 'code': '141100', + 'children': [ + { + 'name': '离石区', + 'code': '141102' + }, + { + 'name': '文水县', + 'code': '141121' + }, + { + 'name': '交城县', + 'code': '141122' + }, + { + 'name': '兴县', + 'code': '141123' + }, + { + 'name': '临县', + 'code': '141124' + }, + { + 'name': '柳林县', + 'code': '141125' + }, + { + 'name': '石楼县', + 'code': '141126' + }, + { + 'name': '岚县', + 'code': '141127' + }, + { + 'name': '方山县', + 'code': '141128' + }, + { + 'name': '中阳县', + 'code': '141129' + }, + { + 'name': '交口县', + 'code': '141130' + }, + { + 'name': '孝义市', + 'code': '141181' + }, + { + 'name': '汾阳市', + 'code': '141182' + } + ] + } + ] + }, + { + 'name': '内蒙古自治区', + 'code': '150000', + 'region': 'north', + 'autonomousRegion': true, + 'children': [ + { + 'name': '呼和浩特市', + 'code': '150100', + 'children': [ + { + 'name': '新城区', + 'code': '150102' + }, + { + 'name': '回民区', + 'code': '150103' + }, + { + 'name': '玉泉区', + 'code': '150104' + }, + { + 'name': '赛罕区', + 'code': '150105' + }, + { + 'name': '土默特左旗', + 'code': '150121' + }, + { + 'name': '托克托县', + 'code': '150122' + }, + { + 'name': '和林格尔县', + 'code': '150123' + }, + { + 'name': '清水河县', + 'code': '150124' + }, + { + 'name': '武川县', + 'code': '150125' + } + ] + }, + { + 'name': '包头市', + 'code': '150200', + 'children': [ + { + 'name': '东河区', + 'code': '150202' + }, + { + 'name': '昆都仑区', + 'code': '150203' + }, + { + 'name': '青山区', + 'code': '150204' + }, + { + 'name': '石拐区', + 'code': '150205' + }, + { + 'name': '白云鄂博矿区', + 'code': '150206' + }, + { + 'name': '九原区', + 'code': '150207' + }, + { + 'name': '土默特右旗', + 'code': '150221' + }, + { + 'name': '固阳县', + 'code': '150222' + }, + { + 'name': '达尔罕茂明安联合旗', + 'code': '150223' + } + ] + }, + { + 'name': '乌海市', + 'code': '150300', + 'children': [ + { + 'name': '海勃湾区', + 'code': '150302' + }, + { + 'name': '海南区', + 'code': '150303' + }, + { + 'name': '乌达区', + 'code': '150304' + } + ] + }, + { + 'name': '赤峰市', + 'code': '150400', + 'children': [ + { + 'name': '红山区', + 'code': '150402' + }, + { + 'name': '元宝山区', + 'code': '150403' + }, + { + 'name': '松山区', + 'code': '150404' + }, + { + 'name': '阿鲁科尔沁旗', + 'code': '150421' + }, + { + 'name': '巴林左旗', + 'code': '150422' + }, + { + 'name': '巴林右旗', + 'code': '150423' + }, + { + 'name': '林西县', + 'code': '150424' + }, + { + 'name': '克什克腾旗', + 'code': '150425' + }, + { + 'name': '翁牛特旗', + 'code': '150426' + }, + { + 'name': '喀喇沁旗', + 'code': '150428' + }, + { + 'name': '宁城县', + 'code': '150429' + }, + { + 'name': '敖汉旗', + 'code': '150430' + } + ] + }, + { + 'name': '通辽市', + 'code': '150500', + 'children': [ + { + 'name': '科尔沁区', + 'code': '150502' + }, + { + 'name': '科尔沁左翼中旗', + 'code': '150521' + }, + { + 'name': '科尔沁左翼后旗', + 'code': '150522' + }, + { + 'name': '开鲁县', + 'code': '150523' + }, + { + 'name': '库伦旗', + 'code': '150524' + }, + { + 'name': '奈曼旗', + 'code': '150525' + }, + { + 'name': '扎鲁特旗', + 'code': '150526' + }, + { + 'name': '霍林郭勒市', + 'code': '150581' + } + ] + }, + { + 'name': '鄂尔多斯市', + 'code': '150600', + 'children': [ + { + 'name': '东胜区', + 'code': '150602' + }, + { + 'name': '康巴什区', + 'code': '150603' + }, + { + 'name': '达拉特旗', + 'code': '150621' + }, + { + 'name': '准格尔旗', + 'code': '150622' + }, + { + 'name': '鄂托克前旗', + 'code': '150623' + }, + { + 'name': '鄂托克旗', + 'code': '150624' + }, + { + 'name': '杭锦旗', + 'code': '150625' + }, + { + 'name': '乌审旗', + 'code': '150626' + }, + { + 'name': '伊金霍洛旗', + 'code': '150627' + } + ] + }, + { + 'name': '呼伦贝尔市', + 'code': '150700', + 'children': [ + { + 'name': '海拉尔区', + 'code': '150702' + }, + { + 'name': '扎赉诺尔区', + 'code': '150703' + }, + { + 'name': '阿荣旗', + 'code': '150721' + }, + { + 'name': '莫力达瓦达斡尔族自治旗', + 'code': '150722' + }, + { + 'name': '鄂伦春自治旗', + 'code': '150723' + }, + { + 'name': '鄂温克族自治旗', + 'code': '150724' + }, + { + 'name': '陈巴尔虎旗', + 'code': '150725' + }, + { + 'name': '新巴尔虎左旗', + 'code': '150726' + }, + { + 'name': '新巴尔虎右旗', + 'code': '150727' + }, + { + 'name': '满洲里市', + 'code': '150781' + }, + { + 'name': '牙克石市', + 'code': '150782' + }, + { + 'name': '扎兰屯市', + 'code': '150783' + }, + { + 'name': '额尔古纳市', + 'code': '150784' + }, + { + 'name': '根河市', + 'code': '150785' + } + ] + }, + { + 'name': '巴彦淖尔市', + 'code': '150800', + 'children': [ + { + 'name': '临河区', + 'code': '150802' + }, + { + 'name': '五原县', + 'code': '150821' + }, + { + 'name': '磴口县', + 'code': '150822' + }, + { + 'name': '乌拉特前旗', + 'code': '150823' + }, + { + 'name': '乌拉特中旗', + 'code': '150824' + }, + { + 'name': '乌拉特后旗', + 'code': '150825' + }, + { + 'name': '杭锦后旗', + 'code': '150826' + } + ] + }, + { + 'name': '乌兰察布市', + 'code': '150900', + 'children': [ + { + 'name': '集宁区', + 'code': '150902' + }, + { + 'name': '卓资县', + 'code': '150921' + }, + { + 'name': '化德县', + 'code': '150922' + }, + { + 'name': '商都县', + 'code': '150923' + }, + { + 'name': '兴和县', + 'code': '150924' + }, + { + 'name': '凉城县', + 'code': '150925' + }, + { + 'name': '察哈尔右翼前旗', + 'code': '150926' + }, + { + 'name': '察哈尔右翼中旗', + 'code': '150927' + }, + { + 'name': '察哈尔右翼后旗', + 'code': '150928' + }, + { + 'name': '四子王旗', + 'code': '150929' + }, + { + 'name': '丰镇市', + 'code': '150981' + } + ] + }, + { + 'name': '兴安盟', + 'code': '152200', + 'children': [ + { + 'name': '乌兰浩特市', + 'code': '152201' + }, + { + 'name': '阿尔山市', + 'code': '152202' + }, + { + 'name': '科尔沁右翼前旗', + 'code': '152221' + }, + { + 'name': '科尔沁右翼中旗', + 'code': '152222' + }, + { + 'name': '扎赉特旗', + 'code': '152223' + }, + { + 'name': '突泉县', + 'code': '152224' + } + ] + }, + { + 'name': '锡林郭勒盟', + 'code': '152500', + 'children': [ + { + 'name': '二连浩特市', + 'code': '152501' + }, + { + 'name': '锡林浩特市', + 'code': '152502' + }, + { + 'name': '阿巴嘎旗', + 'code': '152522' + }, + { + 'name': '苏尼特左旗', + 'code': '152523' + }, + { + 'name': '苏尼特右旗', + 'code': '152524' + }, + { + 'name': '东乌珠穆沁旗', + 'code': '152525' + }, + { + 'name': '西乌珠穆沁旗', + 'code': '152526' + }, + { + 'name': '太仆寺旗', + 'code': '152527' + }, + { + 'name': '镶黄旗', + 'code': '152528' + }, + { + 'name': '正镶白旗', + 'code': '152529' + }, + { + 'name': '正蓝旗', + 'code': '152530' + }, + { + 'name': '多伦县', + 'code': '152531' + } + ] + }, + { + 'name': '阿拉善盟', + 'code': '152900', + 'children': [ + { + 'name': '阿拉善左旗', + 'code': '152921' + }, + { + 'name': '阿拉善右旗', + 'code': '152922' + }, + { + 'name': '额济纳旗', + 'code': '152923' + } + ] + } + ] + }, + { + 'name': '辽宁省', + 'code': '210000', + 'region': 'northeast', + 'children': [ + { + 'name': '沈阳市', + 'code': '210100', + 'children': [ + { + 'name': '和平区', + 'code': '210102' + }, + { + 'name': '沈河区', + 'code': '210103' + }, + { + 'name': '大东区', + 'code': '210104' + }, + { + 'name': '皇姑区', + 'code': '210105' + }, + { + 'name': '铁西区', + 'code': '210106' + }, + { + 'name': '苏家屯区', + 'code': '210111' + }, + { + 'name': '浑南区', + 'code': '210112' + }, + { + 'name': '沈北新区', + 'code': '210113' + }, + { + 'name': '于洪区', + 'code': '210114' + }, + { + 'name': '辽中区', + 'code': '210115' + }, + { + 'name': '康平县', + 'code': '210123' + }, + { + 'name': '法库县', + 'code': '210124' + }, + { + 'name': '新民市', + 'code': '210181' + } + ] + }, + { + 'name': '大连市', + 'code': '210200', + 'children': [ + { + 'name': '中山区', + 'code': '210202' + }, + { + 'name': '西岗区', + 'code': '210203' + }, + { + 'name': '沙河口区', + 'code': '210204' + }, + { + 'name': '甘井子区', + 'code': '210211' + }, + { + 'name': '旅顺口区', + 'code': '210212' + }, + { + 'name': '金州区', + 'code': '210213' + }, + { + 'name': '普兰店区', + 'code': '210214' + }, + { + 'name': '长海县', + 'code': '210224' + }, + { + 'name': '瓦房店市', + 'code': '210281' + }, + { + 'name': '庄河市', + 'code': '210283' + } + ] + }, + { + 'name': '鞍山市', + 'code': '210300', + 'children': [ + { + 'name': '铁东区', + 'code': '210302' + }, + { + 'name': '铁西区', + 'code': '210303' + }, + { + 'name': '立山区', + 'code': '210304' + }, + { + 'name': '千山区', + 'code': '210311' + }, + { + 'name': '台安县', + 'code': '210321' + }, + { + 'name': '岫岩满族自治县', + 'code': '210323' + }, + { + 'name': '海城市', + 'code': '210381' + } + ] + }, + { + 'name': '抚顺市', + 'code': '210400', + 'children': [ + { + 'name': '新抚区', + 'code': '210402' + }, + { + 'name': '东洲区', + 'code': '210403' + }, + { + 'name': '望花区', + 'code': '210404' + }, + { + 'name': '顺城区', + 'code': '210411' + }, + { + 'name': '抚顺县', + 'code': '210421' + }, + { + 'name': '新宾满族自治县', + 'code': '210422' + }, + { + 'name': '清原满族自治县', + 'code': '210423' + } + ] + }, + { + 'name': '本溪市', + 'code': '210500', + 'children': [ + { + 'name': '平山区', + 'code': '210502' + }, + { + 'name': '溪湖区', + 'code': '210503' + }, + { + 'name': '明山区', + 'code': '210504' + }, + { + 'name': '南芬区', + 'code': '210505' + }, + { + 'name': '本溪满族自治县', + 'code': '210521' + }, + { + 'name': '桓仁满族自治县', + 'code': '210522' + } + ] + }, + { + 'name': '丹东市', + 'code': '210600', + 'children': [ + { + 'name': '元宝区', + 'code': '210602' + }, + { + 'name': '振兴区', + 'code': '210603' + }, + { + 'name': '振安区', + 'code': '210604' + }, + { + 'name': '宽甸满族自治县', + 'code': '210624' + }, + { + 'name': '东港市', + 'code': '210681' + }, + { + 'name': '凤城市', + 'code': '210682' + } + ] + }, + { + 'name': '锦州市', + 'code': '210700', + 'children': [ + { + 'name': '古塔区', + 'code': '210702' + }, + { + 'name': '凌河区', + 'code': '210703' + }, + { + 'name': '太和区', + 'code': '210711' + }, + { + 'name': '黑山县', + 'code': '210726' + }, + { + 'name': '义县', + 'code': '210727' + }, + { + 'name': '凌海市', + 'code': '210781' + }, + { + 'name': '北镇市', + 'code': '210782' + } + ] + }, + { + 'name': '营口市', + 'code': '210800', + 'children': [ + { + 'name': '站前区', + 'code': '210802' + }, + { + 'name': '西市区', + 'code': '210803' + }, + { + 'name': '鲅鱼圈区', + 'code': '210804' + }, + { + 'name': '老边区', + 'code': '210811' + }, + { + 'name': '盖州市', + 'code': '210881' + }, + { + 'name': '大石桥市', + 'code': '210882' + } + ] + }, + { + 'name': '阜新市', + 'code': '210900', + 'children': [ + { + 'name': '海州区', + 'code': '210902' + }, + { + 'name': '新邱区', + 'code': '210903' + }, + { + 'name': '太平区', + 'code': '210904' + }, + { + 'name': '清河门区', + 'code': '210905' + }, + { + 'name': '细河区', + 'code': '210911' + }, + { + 'name': '阜新蒙古族自治县', + 'code': '210921' + }, + { + 'name': '彰武县', + 'code': '210922' + } + ] + }, + { + 'name': '辽阳市', + 'code': '211000', + 'children': [ + { + 'name': '白塔区', + 'code': '211002' + }, + { + 'name': '文圣区', + 'code': '211003' + }, + { + 'name': '宏伟区', + 'code': '211004' + }, + { + 'name': '弓长岭区', + 'code': '211005' + }, + { + 'name': '太子河区', + 'code': '211011' + }, + { + 'name': '辽阳县', + 'code': '211021' + }, + { + 'name': '灯塔市', + 'code': '211081' + } + ] + }, + { + 'name': '盘锦市', + 'code': '211100', + 'children': [ + { + 'name': '双台子区', + 'code': '211102' + }, + { + 'name': '兴隆台区', + 'code': '211103' + }, + { + 'name': '大洼区', + 'code': '211104' + }, + { + 'name': '盘山县', + 'code': '211122' + } + ] + }, + { + 'name': '铁岭市', + 'code': '211200', + 'children': [ + { + 'name': '银州区', + 'code': '211202' + }, + { + 'name': '清河区', + 'code': '211204' + }, + { + 'name': '铁岭县', + 'code': '211221' + }, + { + 'name': '西丰县', + 'code': '211223' + }, + { + 'name': '昌图县', + 'code': '211224' + }, + { + 'name': '调兵山市', + 'code': '211281' + }, + { + 'name': '开原市', + 'code': '211282' + } + ] + }, + { + 'name': '朝阳市', + 'code': '211300', + 'children': [ + { + 'name': '双塔区', + 'code': '211302' + }, + { + 'name': '龙城区', + 'code': '211303' + }, + { + 'name': '朝阳县', + 'code': '211321' + }, + { + 'name': '建平县', + 'code': '211322' + }, + { + 'name': '喀喇沁左翼蒙古族自治县', + 'code': '211324' + }, + { + 'name': '北票市', + 'code': '211381' + }, + { + 'name': '凌源市', + 'code': '211382' + } + ] + }, + { + 'name': '葫芦岛市', + 'code': '211400', + 'children': [ + { + 'name': '连山区', + 'code': '211402' + }, + { + 'name': '龙港区', + 'code': '211403' + }, + { + 'name': '南票区', + 'code': '211404' + }, + { + 'name': '绥中县', + 'code': '211421' + }, + { + 'name': '建昌县', + 'code': '211422' + }, + { + 'name': '兴城市', + 'code': '211481' + } + ] + } + ] + }, + { + 'name': '吉林省', + 'code': '220000', + 'region': 'northeast', + 'children': [ + { + 'name': '长春市', + 'code': '220100', + 'children': [ + { + 'name': '南关区', + 'code': '220102' + }, + { + 'name': '宽城区', + 'code': '220103' + }, + { + 'name': '朝阳区', + 'code': '220104' + }, + { + 'name': '二道区', + 'code': '220105' + }, + { + 'name': '绿园区', + 'code': '220106' + }, + { + 'name': '双阳区', + 'code': '220112' + }, + { + 'name': '九台区', + 'code': '220113' + }, + { + 'name': '农安县', + 'code': '220122' + }, + { + 'name': '榆树市', + 'code': '220182' + }, + { + 'name': '德惠市', + 'code': '220183' + } + ] + }, + { + 'name': '吉林市', + 'code': '220200', + 'children': [ + { + 'name': '昌邑区', + 'code': '220202' + }, + { + 'name': '龙潭区', + 'code': '220203' + }, + { + 'name': '船营区', + 'code': '220204' + }, + { + 'name': '丰满区', + 'code': '220211' + }, + { + 'name': '永吉县', + 'code': '220221' + }, + { + 'name': '蛟河市', + 'code': '220281' + }, + { + 'name': '桦甸市', + 'code': '220282' + }, + { + 'name': '舒兰市', + 'code': '220283' + }, + { + 'name': '磐石市', + 'code': '220284' + } + ] + }, + { + 'name': '四平市', + 'code': '220300', + 'children': [ + { + 'name': '铁西区', + 'code': '220302' + }, + { + 'name': '铁东区', + 'code': '220303' + }, + { + 'name': '梨树县', + 'code': '220322' + }, + { + 'name': '伊通满族自治县', + 'code': '220323' + }, + { + 'name': '公主岭市', + 'code': '220381' + }, + { + 'name': '双辽市', + 'code': '220382' + } + ] + }, + { + 'name': '辽源市', + 'code': '220400', + 'children': [ + { + 'name': '龙山区', + 'code': '220402' + }, + { + 'name': '西安区', + 'code': '220403' + }, + { + 'name': '东丰县', + 'code': '220421' + }, + { + 'name': '东辽县', + 'code': '220422' + } + ] + }, + { + 'name': '通化市', + 'code': '220500', + 'children': [ + { + 'name': '东昌区', + 'code': '220502' + }, + { + 'name': '二道江区', + 'code': '220503' + }, + { + 'name': '通化县', + 'code': '220521' + }, + { + 'name': '辉南县', + 'code': '220523' + }, + { + 'name': '柳河县', + 'code': '220524' + }, + { + 'name': '梅河口市', + 'code': '220581' + }, + { + 'name': '集安市', + 'code': '220582' + } + ] + }, + { + 'name': '白山市', + 'code': '220600', + 'children': [ + { + 'name': '浑江区', + 'code': '220602' + }, + { + 'name': '江源区', + 'code': '220605' + }, + { + 'name': '抚松县', + 'code': '220621' + }, + { + 'name': '靖宇县', + 'code': '220622' + }, + { + 'name': '长白朝鲜族自治县', + 'code': '220623' + }, + { + 'name': '临江市', + 'code': '220681' + } + ] + }, + { + 'name': '松原市', + 'code': '220700', + 'children': [ + { + 'name': '宁江区', + 'code': '220702' + }, + { + 'name': '前郭尔罗斯蒙古族自治县', + 'code': '220721' + }, + { + 'name': '长岭县', + 'code': '220722' + }, + { + 'name': '乾安县', + 'code': '220723' + }, + { + 'name': '扶余市', + 'code': '220781' + } + ] + }, + { + 'name': '白城市', + 'code': '220800', + 'children': [ + { + 'name': '洮北区', + 'code': '220802' + }, + { + 'name': '镇赉县', + 'code': '220821' + }, + { + 'name': '通榆县', + 'code': '220822' + }, + { + 'name': '洮南市', + 'code': '220881' + }, + { + 'name': '大安市', + 'code': '220882' + } + ] + }, + { + 'name': '延边朝鲜族自治州', + 'code': '222400', + 'children': [ + { + 'name': '延吉市', + 'code': '222401' + }, + { + 'name': '图们市', + 'code': '222402' + }, + { + 'name': '敦化市', + 'code': '222403' + }, + { + 'name': '珲春市', + 'code': '222404' + }, + { + 'name': '龙井市', + 'code': '222405' + }, + { + 'name': '和龙市', + 'code': '222406' + }, + { + 'name': '汪清县', + 'code': '222424' + }, + { + 'name': '安图县', + 'code': '222426' + } + ] + } + ] + }, + { + 'name': '黑龙江省', + 'code': '230000', + 'region': 'northeast', + 'children': [ + { + 'name': '哈尔滨市', + 'code': '230100', + 'children': [ + { + 'name': '道里区', + 'code': '230102' + }, + { + 'name': '南岗区', + 'code': '230103' + }, + { + 'name': '道外区', + 'code': '230104' + }, + { + 'name': '平房区', + 'code': '230108' + }, + { + 'name': '松北区', + 'code': '230109' + }, + { + 'name': '香坊区', + 'code': '230110' + }, + { + 'name': '呼兰区', + 'code': '230111' + }, + { + 'name': '阿城区', + 'code': '230112' + }, + { + 'name': '双城区', + 'code': '230113' + }, + { + 'name': '依兰县', + 'code': '230123' + }, + { + 'name': '方正县', + 'code': '230124' + }, + { + 'name': '宾县', + 'code': '230125' + }, + { + 'name': '巴彦县', + 'code': '230126' + }, + { + 'name': '木兰县', + 'code': '230127' + }, + { + 'name': '通河县', + 'code': '230128' + }, + { + 'name': '延寿县', + 'code': '230129' + }, + { + 'name': '尚志市', + 'code': '230183' + }, + { + 'name': '五常市', + 'code': '230184' + } + ] + }, + { + 'name': '齐齐哈尔市', + 'code': '230200', + 'children': [ + { + 'name': '龙沙区', + 'code': '230202' + }, + { + 'name': '建华区', + 'code': '230203' + }, + { + 'name': '铁锋区', + 'code': '230204' + }, + { + 'name': '昂昂溪区', + 'code': '230205' + }, + { + 'name': '富拉尔基区', + 'code': '230206' + }, + { + 'name': '碾子山区', + 'code': '230207' + }, + { + 'name': '梅里斯达斡尔族区', + 'code': '230208' + }, + { + 'name': '龙江县', + 'code': '230221' + }, + { + 'name': '依安县', + 'code': '230223' + }, + { + 'name': '泰来县', + 'code': '230224' + }, + { + 'name': '甘南县', + 'code': '230225' + }, + { + 'name': '富裕县', + 'code': '230227' + }, + { + 'name': '克山县', + 'code': '230229' + }, + { + 'name': '克东县', + 'code': '230230' + }, + { + 'name': '拜泉县', + 'code': '230231' + }, + { + 'name': '讷河市', + 'code': '230281' + } + ] + }, + { + 'name': '鸡西市', + 'code': '230300', + 'children': [ + { + 'name': '鸡冠区', + 'code': '230302' + }, + { + 'name': '恒山区', + 'code': '230303' + }, + { + 'name': '滴道区', + 'code': '230304' + }, + { + 'name': '梨树区', + 'code': '230305' + }, + { + 'name': '城子河区', + 'code': '230306' + }, + { + 'name': '麻山区', + 'code': '230307' + }, + { + 'name': '鸡东县', + 'code': '230321' + }, + { + 'name': '虎林市', + 'code': '230381' + }, + { + 'name': '密山市', + 'code': '230382' + } + ] + }, + { + 'name': '鹤岗市', + 'code': '230400', + 'children': [ + { + 'name': '向阳区', + 'code': '230402' + }, + { + 'name': '工农区', + 'code': '230403' + }, + { + 'name': '南山区', + 'code': '230404' + }, + { + 'name': '兴安区', + 'code': '230405' + }, + { + 'name': '东山区', + 'code': '230406' + }, + { + 'name': '兴山区', + 'code': '230407' + }, + { + 'name': '萝北县', + 'code': '230421' + }, + { + 'name': '绥滨县', + 'code': '230422' + } + ] + }, + { + 'name': '双鸭山市', + 'code': '230500', + 'children': [ + { + 'name': '尖山区', + 'code': '230502' + }, + { + 'name': '岭东区', + 'code': '230503' + }, + { + 'name': '四方台区', + 'code': '230505' + }, + { + 'name': '宝山区', + 'code': '230506' + }, + { + 'name': '集贤县', + 'code': '230521' + }, + { + 'name': '友谊县', + 'code': '230522' + }, + { + 'name': '宝清县', + 'code': '230523' + }, + { + 'name': '饶河县', + 'code': '230524' + } + ] + }, + { + 'name': '大庆市', + 'code': '230600', + 'children': [ + { + 'name': '萨尔图区', + 'code': '230602' + }, + { + 'name': '龙凤区', + 'code': '230603' + }, + { + 'name': '让胡路区', + 'code': '230604' + }, + { + 'name': '红岗区', + 'code': '230605' + }, + { + 'name': '大同区', + 'code': '230606' + }, + { + 'name': '肇州县', + 'code': '230621' + }, + { + 'name': '肇源县', + 'code': '230622' + }, + { + 'name': '林甸县', + 'code': '230623' + }, + { + 'name': '杜尔伯特蒙古族自治县', + 'code': '230624' + } + ] + }, + { + 'name': '伊春市', + 'code': '230700', + 'children': [ + { + 'name': '伊春区', + 'code': '230702' + }, + { + 'name': '南岔区', + 'code': '230703' + }, + { + 'name': '友好区', + 'code': '230704' + }, + { + 'name': '西林区', + 'code': '230705' + }, + { + 'name': '翠峦区', + 'code': '230706' + }, + { + 'name': '新青区', + 'code': '230707' + }, + { + 'name': '美溪区', + 'code': '230708' + }, + { + 'name': '金山屯区', + 'code': '230709' + }, + { + 'name': '五营区', + 'code': '230710' + }, + { + 'name': '乌马河区', + 'code': '230711' + }, + { + 'name': '汤旺河区', + 'code': '230712' + }, + { + 'name': '带岭区', + 'code': '230713' + }, + { + 'name': '乌伊岭区', + 'code': '230714' + }, + { + 'name': '红星区', + 'code': '230715' + }, + { + 'name': '上甘岭区', + 'code': '230716' + }, + { + 'name': '嘉荫县', + 'code': '230722' + }, + { + 'name': '铁力市', + 'code': '230781' + } + ] + }, + { + 'name': '佳木斯市', + 'code': '230800', + 'children': [ + { + 'name': '向阳区', + 'code': '230803' + }, + { + 'name': '前进区', + 'code': '230804' + }, + { + 'name': '东风区', + 'code': '230805' + }, + { + 'name': '郊区', + 'code': '230811' + }, + { + 'name': '桦南县', + 'code': '230822' + }, + { + 'name': '桦川县', + 'code': '230826' + }, + { + 'name': '汤原县', + 'code': '230828' + }, + { + 'name': '同江市', + 'code': '230881' + }, + { + 'name': '富锦市', + 'code': '230882' + }, + { + 'name': '抚远市', + 'code': '230883' + } + ] + }, + { + 'name': '七台河市', + 'code': '230900', + 'children': [ + { + 'name': '新兴区', + 'code': '230902' + }, + { + 'name': '桃山区', + 'code': '230903' + }, + { + 'name': '茄子河区', + 'code': '230904' + }, + { + 'name': '勃利县', + 'code': '230921' + } + ] + }, + { + 'name': '牡丹江市', + 'code': '231000', + 'children': [ + { + 'name': '东安区', + 'code': '231002' + }, + { + 'name': '阳明区', + 'code': '231003' + }, + { + 'name': '爱民区', + 'code': '231004' + }, + { + 'name': '西安区', + 'code': '231005' + }, + { + 'name': '林口县', + 'code': '231025' + }, + { + 'name': '绥芬河市', + 'code': '231081' + }, + { + 'name': '海林市', + 'code': '231083' + }, + { + 'name': '宁安市', + 'code': '231084' + }, + { + 'name': '穆棱市', + 'code': '231085' + }, + { + 'name': '东宁市', + 'code': '231086' + } + ] + }, + { + 'name': '黑河市', + 'code': '231100', + 'children': [ + { + 'name': '爱辉区', + 'code': '231102' + }, + { + 'name': '嫩江县', + 'code': '231121' + }, + { + 'name': '逊克县', + 'code': '231123' + }, + { + 'name': '孙吴县', + 'code': '231124' + }, + { + 'name': '北安市', + 'code': '231181' + }, + { + 'name': '五大连池市', + 'code': '231182' + } + ] + }, + { + 'name': '绥化市', + 'code': '231200', + 'children': [ + { + 'name': '北林区', + 'code': '231202' + }, + { + 'name': '望奎县', + 'code': '231221' + }, + { + 'name': '兰西县', + 'code': '231222' + }, + { + 'name': '青冈县', + 'code': '231223' + }, + { + 'name': '庆安县', + 'code': '231224' + }, + { + 'name': '明水县', + 'code': '231225' + }, + { + 'name': '绥棱县', + 'code': '231226' + }, + { + 'name': '安达市', + 'code': '231281' + }, + { + 'name': '肇东市', + 'code': '231282' + }, + { + 'name': '海伦市', + 'code': '231283' + } + ] + }, + { + 'name': '大兴安岭地区', + 'code': '232700', + 'children': [ + { + 'name': '漠河市', + 'code': '232701' + }, + { + 'name': '呼玛县', + 'code': '232721' + }, + { + 'name': '塔河县', + 'code': '232722' + } + ] + } + ] + }, + { + 'name': '上海市', + 'code': '310000', + 'region': 'east', + 'provinceLevelCity': true, + 'children': [ + { + 'name': '市辖区', + 'code': '310100', + 'children': [ + { + 'name': '黄浦区', + 'code': '310101' + }, + { + 'name': '徐汇区', + 'code': '310104' + }, + { + 'name': '长宁区', + 'code': '310105' + }, + { + 'name': '静安区', + 'code': '310106' + }, + { + 'name': '普陀区', + 'code': '310107' + }, + { + 'name': '虹口区', + 'code': '310109' + }, + { + 'name': '杨浦区', + 'code': '310110' + }, + { + 'name': '闵行区', + 'code': '310112' + }, + { + 'name': '宝山区', + 'code': '310113' + }, + { + 'name': '嘉定区', + 'code': '310114' + }, + { + 'name': '浦东新区', + 'code': '310115' + }, + { + 'name': '金山区', + 'code': '310116' + }, + { + 'name': '松江区', + 'code': '310117' + }, + { + 'name': '青浦区', + 'code': '310118' + }, + { + 'name': '奉贤区', + 'code': '310120' + }, + { + 'name': '崇明区', + 'code': '310151' + } + ] + } + ] + }, + { + 'name': '江苏省', + 'code': '320000', + 'region': 'east', + 'children': [ + { + 'name': '南京市', + 'code': '320100', + 'children': [ + { + 'name': '玄武区', + 'code': '320102' + }, + { + 'name': '秦淮区', + 'code': '320104' + }, + { + 'name': '建邺区', + 'code': '320105' + }, + { + 'name': '鼓楼区', + 'code': '320106' + }, + { + 'name': '浦口区', + 'code': '320111' + }, + { + 'name': '栖霞区', + 'code': '320113' + }, + { + 'name': '雨花台区', + 'code': '320114' + }, + { + 'name': '江宁区', + 'code': '320115' + }, + { + 'name': '六合区', + 'code': '320116' + }, + { + 'name': '溧水区', + 'code': '320117' + }, + { + 'name': '高淳区', + 'code': '320118' + } + ] + }, + { + 'name': '无锡市', + 'code': '320200', + 'children': [ + { + 'name': '锡山区', + 'code': '320205' + }, + { + 'name': '惠山区', + 'code': '320206' + }, + { + 'name': '滨湖区', + 'code': '320211' + }, + { + 'name': '梁溪区', + 'code': '320213' + }, + { + 'name': '新吴区', + 'code': '320214' + }, + { + 'name': '江阴市', + 'code': '320281' + }, + { + 'name': '宜兴市', + 'code': '320282' + } + ] + }, + { + 'name': '徐州市', + 'code': '320300', + 'children': [ + { + 'name': '鼓楼区', + 'code': '320302' + }, + { + 'name': '云龙区', + 'code': '320303' + }, + { + 'name': '贾汪区', + 'code': '320305' + }, + { + 'name': '泉山区', + 'code': '320311' + }, + { + 'name': '铜山区', + 'code': '320312' + }, + { + 'name': '丰县', + 'code': '320321' + }, + { + 'name': '沛县', + 'code': '320322' + }, + { + 'name': '睢宁县', + 'code': '320324' + }, + { + 'name': '新沂市', + 'code': '320381' + }, + { + 'name': '邳州市', + 'code': '320382' + } + ] + }, + { + 'name': '常州市', + 'code': '320400', + 'children': [ + { + 'name': '天宁区', + 'code': '320402' + }, + { + 'name': '钟楼区', + 'code': '320404' + }, + { + 'name': '新北区', + 'code': '320411' + }, + { + 'name': '武进区', + 'code': '320412' + }, + { + 'name': '金坛区', + 'code': '320413' + }, + { + 'name': '溧阳市', + 'code': '320481' + } + ] + }, + { + 'name': '苏州市', + 'code': '320500', + 'children': [ + { + 'name': '虎丘区', + 'code': '320505' + }, + { + 'name': '吴中区', + 'code': '320506' + }, + { + 'name': '相城区', + 'code': '320507' + }, + { + 'name': '姑苏区', + 'code': '320508' + }, + { + 'name': '吴江区', + 'code': '320509' + }, + { + 'name': '常熟市', + 'code': '320581' + }, + { + 'name': '张家港市', + 'code': '320582' + }, + { + 'name': '昆山市', + 'code': '320583' + }, + { + 'name': '太仓市', + 'code': '320585' + } + ] + }, + { + 'name': '南通市', + 'code': '320600', + 'children': [ + { + 'name': '崇川区', + 'code': '320602' + }, + { + 'name': '港闸区', + 'code': '320611' + }, + { + 'name': '通州区', + 'code': '320612' + }, + { + 'name': '如东县', + 'code': '320623' + }, + { + 'name': '启东市', + 'code': '320681' + }, + { + 'name': '如皋市', + 'code': '320682' + }, + { + 'name': '海门市', + 'code': '320684' + }, + { + 'name': '海安市', + 'code': '320685' + } + ] + }, + { + 'name': '连云港市', + 'code': '320700', + 'children': [ + { + 'name': '连云区', + 'code': '320703' + }, + { + 'name': '海州区', + 'code': '320706' + }, + { + 'name': '赣榆区', + 'code': '320707' + }, + { + 'name': '东海县', + 'code': '320722' + }, + { + 'name': '灌云县', + 'code': '320723' + }, + { + 'name': '灌南县', + 'code': '320724' + } + ] + }, + { + 'name': '淮安市', + 'code': '320800', + 'children': [ + { + 'name': '淮安区', + 'code': '320803' + }, + { + 'name': '淮阴区', + 'code': '320804' + }, + { + 'name': '清江浦区', + 'code': '320812' + }, + { + 'name': '洪泽区', + 'code': '320813' + }, + { + 'name': '涟水县', + 'code': '320826' + }, + { + 'name': '盱眙县', + 'code': '320830' + }, + { + 'name': '金湖县', + 'code': '320831' + } + ] + }, + { + 'name': '盐城市', + 'code': '320900', + 'children': [ + { + 'name': '亭湖区', + 'code': '320902' + }, + { + 'name': '盐都区', + 'code': '320903' + }, + { + 'name': '大丰区', + 'code': '320904' + }, + { + 'name': '响水县', + 'code': '320921' + }, + { + 'name': '滨海县', + 'code': '320922' + }, + { + 'name': '阜宁县', + 'code': '320923' + }, + { + 'name': '射阳县', + 'code': '320924' + }, + { + 'name': '建湖县', + 'code': '320925' + }, + { + 'name': '东台市', + 'code': '320981' + } + ] + }, + { + 'name': '扬州市', + 'code': '321000', + 'children': [ + { + 'name': '广陵区', + 'code': '321002' + }, + { + 'name': '邗江区', + 'code': '321003' + }, + { + 'name': '江都区', + 'code': '321012' + }, + { + 'name': '宝应县', + 'code': '321023' + }, + { + 'name': '仪征市', + 'code': '321081' + }, + { + 'name': '高邮市', + 'code': '321084' + } + ] + }, + { + 'name': '镇江市', + 'code': '321100', + 'children': [ + { + 'name': '京口区', + 'code': '321102' + }, + { + 'name': '润州区', + 'code': '321111' + }, + { + 'name': '丹徒区', + 'code': '321112' + }, + { + 'name': '丹阳市', + 'code': '321181' + }, + { + 'name': '扬中市', + 'code': '321182' + }, + { + 'name': '句容市', + 'code': '321183' + } + ] + }, + { + 'name': '泰州市', + 'code': '321200', + 'children': [ + { + 'name': '海陵区', + 'code': '321202' + }, + { + 'name': '高港区', + 'code': '321203' + }, + { + 'name': '姜堰区', + 'code': '321204' + }, + { + 'name': '兴化市', + 'code': '321281' + }, + { + 'name': '靖江市', + 'code': '321282' + }, + { + 'name': '泰兴市', + 'code': '321283' + } + ] + }, + { + 'name': '宿迁市', + 'code': '321300', + 'children': [ + { + 'name': '宿城区', + 'code': '321302' + }, + { + 'name': '宿豫区', + 'code': '321311' + }, + { + 'name': '沭阳县', + 'code': '321322' + }, + { + 'name': '泗阳县', + 'code': '321323' + }, + { + 'name': '泗洪县', + 'code': '321324' + } + ] + } + ] + }, + { + 'name': '浙江省', + 'code': '330000', + 'region': 'east', + 'children': [ + { + 'name': '杭州市', + 'code': '330100', + 'children': [ + { + 'name': '上城区', + 'code': '330102' + }, + { + 'name': '下城区', + 'code': '330103' + }, + { + 'name': '江干区', + 'code': '330104' + }, + { + 'name': '拱墅区', + 'code': '330105' + }, + { + 'name': '西湖区', + 'code': '330106' + }, + { + 'name': '滨江区', + 'code': '330108' + }, + { + 'name': '萧山区', + 'code': '330109' + }, + { + 'name': '余杭区', + 'code': '330110' + }, + { + 'name': '富阳区', + 'code': '330111' + }, + { + 'name': '临安区', + 'code': '330112' + }, + { + 'name': '桐庐县', + 'code': '330122' + }, + { + 'name': '淳安县', + 'code': '330127' + }, + { + 'name': '建德市', + 'code': '330182' + } + ] + }, + { + 'name': '宁波市', + 'code': '330200', + 'children': [ + { + 'name': '海曙区', + 'code': '330203' + }, + { + 'name': '江北区', + 'code': '330205' + }, + { + 'name': '北仑区', + 'code': '330206' + }, + { + 'name': '镇海区', + 'code': '330211' + }, + { + 'name': '鄞州区', + 'code': '330212' + }, + { + 'name': '奉化区', + 'code': '330213' + }, + { + 'name': '象山县', + 'code': '330225' + }, + { + 'name': '宁海县', + 'code': '330226' + }, + { + 'name': '余姚市', + 'code': '330281' + }, + { + 'name': '慈溪市', + 'code': '330282' + } + ] + }, + { + 'name': '温州市', + 'code': '330300', + 'children': [ + { + 'name': '鹿城区', + 'code': '330302' + }, + { + 'name': '龙湾区', + 'code': '330303' + }, + { + 'name': '瓯海区', + 'code': '330304' + }, + { + 'name': '洞头区', + 'code': '330305' + }, + { + 'name': '永嘉县', + 'code': '330324' + }, + { + 'name': '平阳县', + 'code': '330326' + }, + { + 'name': '苍南县', + 'code': '330327' + }, + { + 'name': '文成县', + 'code': '330328' + }, + { + 'name': '泰顺县', + 'code': '330329' + }, + { + 'name': '瑞安市', + 'code': '330381' + }, + { + 'name': '乐清市', + 'code': '330382' + } + ] + }, + { + 'name': '嘉兴市', + 'code': '330400', + 'children': [ + { + 'name': '南湖区', + 'code': '330402' + }, + { + 'name': '秀洲区', + 'code': '330411' + }, + { + 'name': '嘉善县', + 'code': '330421' + }, + { + 'name': '海盐县', + 'code': '330424' + }, + { + 'name': '海宁市', + 'code': '330481' + }, + { + 'name': '平湖市', + 'code': '330482' + }, + { + 'name': '桐乡市', + 'code': '330483' + } + ] + }, + { + 'name': '湖州市', + 'code': '330500', + 'children': [ + { + 'name': '吴兴区', + 'code': '330502' + }, + { + 'name': '南浔区', + 'code': '330503' + }, + { + 'name': '德清县', + 'code': '330521' + }, + { + 'name': '长兴县', + 'code': '330522' + }, + { + 'name': '安吉县', + 'code': '330523' + } + ] + }, + { + 'name': '绍兴市', + 'code': '330600', + 'children': [ + { + 'name': '越城区', + 'code': '330602' + }, + { + 'name': '柯桥区', + 'code': '330603' + }, + { + 'name': '上虞区', + 'code': '330604' + }, + { + 'name': '新昌县', + 'code': '330624' + }, + { + 'name': '诸暨市', + 'code': '330681' + }, + { + 'name': '嵊州市', + 'code': '330683' + } + ] + }, + { + 'name': '金华市', + 'code': '330700', + 'children': [ + { + 'name': '婺城区', + 'code': '330702' + }, + { + 'name': '金东区', + 'code': '330703' + }, + { + 'name': '武义县', + 'code': '330723' + }, + { + 'name': '浦江县', + 'code': '330726' + }, + { + 'name': '磐安县', + 'code': '330727' + }, + { + 'name': '兰溪市', + 'code': '330781' + }, + { + 'name': '义乌市', + 'code': '330782' + }, + { + 'name': '东阳市', + 'code': '330783' + }, + { + 'name': '永康市', + 'code': '330784' + } + ] + }, + { + 'name': '衢州市', + 'code': '330800', + 'children': [ + { + 'name': '柯城区', + 'code': '330802' + }, + { + 'name': '衢江区', + 'code': '330803' + }, + { + 'name': '常山县', + 'code': '330822' + }, + { + 'name': '开化县', + 'code': '330824' + }, + { + 'name': '龙游县', + 'code': '330825' + }, + { + 'name': '江山市', + 'code': '330881' + } + ] + }, + { + 'name': '舟山市', + 'code': '330900', + 'children': [ + { + 'name': '定海区', + 'code': '330902' + }, + { + 'name': '普陀区', + 'code': '330903' + }, + { + 'name': '岱山县', + 'code': '330921' + }, + { + 'name': '嵊泗县', + 'code': '330922' + } + ] + }, + { + 'name': '台州市', + 'code': '331000', + 'children': [ + { + 'name': '椒江区', + 'code': '331002' + }, + { + 'name': '黄岩区', + 'code': '331003' + }, + { + 'name': '路桥区', + 'code': '331004' + }, + { + 'name': '三门县', + 'code': '331022' + }, + { + 'name': '天台县', + 'code': '331023' + }, + { + 'name': '仙居县', + 'code': '331024' + }, + { + 'name': '温岭市', + 'code': '331081' + }, + { + 'name': '临海市', + 'code': '331082' + }, + { + 'name': '玉环市', + 'code': '331083' + } + ] + }, + { + 'name': '丽水市', + 'code': '331100', + 'children': [ + { + 'name': '莲都区', + 'code': '331102' + }, + { + 'name': '青田县', + 'code': '331121' + }, + { + 'name': '缙云县', + 'code': '331122' + }, + { + 'name': '遂昌县', + 'code': '331123' + }, + { + 'name': '松阳县', + 'code': '331124' + }, + { + 'name': '云和县', + 'code': '331125' + }, + { + 'name': '庆元县', + 'code': '331126' + }, + { + 'name': '景宁畲族自治县', + 'code': '331127' + }, + { + 'name': '龙泉市', + 'code': '331181' + } + ] + } + ] + }, + { + 'name': '安徽省', + 'code': '340000', + 'region': 'east', + 'children': [ + { + 'name': '合肥市', + 'code': '340100', + 'children': [ + { + 'name': '瑶海区', + 'code': '340102' + }, + { + 'name': '庐阳区', + 'code': '340103' + }, + { + 'name': '蜀山区', + 'code': '340104' + }, + { + 'name': '包河区', + 'code': '340111' + }, + { + 'name': '长丰县', + 'code': '340121' + }, + { + 'name': '肥东县', + 'code': '340122' + }, + { + 'name': '肥西县', + 'code': '340123' + }, + { + 'name': '庐江县', + 'code': '340124' + }, + { + 'name': '巢湖市', + 'code': '340181' + } + ] + }, + { + 'name': '芜湖市', + 'code': '340200', + 'children': [ + { + 'name': '镜湖区', + 'code': '340202' + }, + { + 'name': '弋江区', + 'code': '340203' + }, + { + 'name': '鸠江区', + 'code': '340207' + }, + { + 'name': '三山区', + 'code': '340208' + }, + { + 'name': '芜湖县', + 'code': '340221' + }, + { + 'name': '繁昌县', + 'code': '340222' + }, + { + 'name': '南陵县', + 'code': '340223' + }, + { + 'name': '无为县', + 'code': '340225' + } + ] + }, + { + 'name': '蚌埠市', + 'code': '340300', + 'children': [ + { + 'name': '龙子湖区', + 'code': '340302' + }, + { + 'name': '蚌山区', + 'code': '340303' + }, + { + 'name': '禹会区', + 'code': '340304' + }, + { + 'name': '淮上区', + 'code': '340311' + }, + { + 'name': '怀远县', + 'code': '340321' + }, + { + 'name': '五河县', + 'code': '340322' + }, + { + 'name': '固镇县', + 'code': '340323' + } + ] + }, + { + 'name': '淮南市', + 'code': '340400', + 'children': [ + { + 'name': '大通区', + 'code': '340402' + }, + { + 'name': '田家庵区', + 'code': '340403' + }, + { + 'name': '谢家集区', + 'code': '340404' + }, + { + 'name': '八公山区', + 'code': '340405' + }, + { + 'name': '潘集区', + 'code': '340406' + }, + { + 'name': '凤台县', + 'code': '340421' + }, + { + 'name': '寿县', + 'code': '340422' + } + ] + }, + { + 'name': '马鞍山市', + 'code': '340500', + 'children': [ + { + 'name': '花山区', + 'code': '340503' + }, + { + 'name': '雨山区', + 'code': '340504' + }, + { + 'name': '博望区', + 'code': '340506' + }, + { + 'name': '当涂县', + 'code': '340521' + }, + { + 'name': '含山县', + 'code': '340522' + }, + { + 'name': '和县', + 'code': '340523' + } + ] + }, + { + 'name': '淮北市', + 'code': '340600', + 'children': [ + { + 'name': '杜集区', + 'code': '340602' + }, + { + 'name': '相山区', + 'code': '340603' + }, + { + 'name': '烈山区', + 'code': '340604' + }, + { + 'name': '濉溪县', + 'code': '340621' + } + ] + }, + { + 'name': '铜陵市', + 'code': '340700', + 'children': [ + { + 'name': '铜官区', + 'code': '340705' + }, + { + 'name': '义安区', + 'code': '340706' + }, + { + 'name': '郊区', + 'code': '340711' + }, + { + 'name': '枞阳县', + 'code': '340722' + } + ] + }, + { + 'name': '安庆市', + 'code': '340800', + 'children': [ + { + 'name': '迎江区', + 'code': '340802' + }, + { + 'name': '大观区', + 'code': '340803' + }, + { + 'name': '宜秀区', + 'code': '340811' + }, + { + 'name': '怀宁县', + 'code': '340822' + }, + { + 'name': '太湖县', + 'code': '340825' + }, + { + 'name': '宿松县', + 'code': '340826' + }, + { + 'name': '望江县', + 'code': '340827' + }, + { + 'name': '岳西县', + 'code': '340828' + }, + { + 'name': '桐城市', + 'code': '340881' + }, + { + 'name': '潜山市', + 'code': '340882' + } + ] + }, + { + 'name': '黄山市', + 'code': '341000', + 'children': [ + { + 'name': '屯溪区', + 'code': '341002' + }, + { + 'name': '黄山区', + 'code': '341003' + }, + { + 'name': '徽州区', + 'code': '341004' + }, + { + 'name': '歙县', + 'code': '341021' + }, + { + 'name': '休宁县', + 'code': '341022' + }, + { + 'name': '黟县', + 'code': '341023' + }, + { + 'name': '祁门县', + 'code': '341024' + } + ] + }, + { + 'name': '滁州市', + 'code': '341100', + 'children': [ + { + 'name': '琅琊区', + 'code': '341102' + }, + { + 'name': '南谯区', + 'code': '341103' + }, + { + 'name': '来安县', + 'code': '341122' + }, + { + 'name': '全椒县', + 'code': '341124' + }, + { + 'name': '定远县', + 'code': '341125' + }, + { + 'name': '凤阳县', + 'code': '341126' + }, + { + 'name': '天长市', + 'code': '341181' + }, + { + 'name': '明光市', + 'code': '341182' + } + ] + }, + { + 'name': '阜阳市', + 'code': '341200', + 'children': [ + { + 'name': '颍州区', + 'code': '341202' + }, + { + 'name': '颍东区', + 'code': '341203' + }, + { + 'name': '颍泉区', + 'code': '341204' + }, + { + 'name': '临泉县', + 'code': '341221' + }, + { + 'name': '太和县', + 'code': '341222' + }, + { + 'name': '阜南县', + 'code': '341225' + }, + { + 'name': '颍上县', + 'code': '341226' + }, + { + 'name': '界首市', + 'code': '341282' + } + ] + }, + { + 'name': '宿州市', + 'code': '341300', + 'children': [ + { + 'name': '埇桥区', + 'code': '341302' + }, + { + 'name': '砀山县', + 'code': '341321' + }, + { + 'name': '萧县', + 'code': '341322' + }, + { + 'name': '灵璧县', + 'code': '341323' + }, + { + 'name': '泗县', + 'code': '341324' + } + ] + }, + { + 'name': '六安市', + 'code': '341500', + 'children': [ + { + 'name': '金安区', + 'code': '341502' + }, + { + 'name': '裕安区', + 'code': '341503' + }, + { + 'name': '叶集区', + 'code': '341504' + }, + { + 'name': '霍邱县', + 'code': '341522' + }, + { + 'name': '舒城县', + 'code': '341523' + }, + { + 'name': '金寨县', + 'code': '341524' + }, + { + 'name': '霍山县', + 'code': '341525' + } + ] + }, + { + 'name': '亳州市', + 'code': '341600', + 'children': [ + { + 'name': '谯城区', + 'code': '341602' + }, + { + 'name': '涡阳县', + 'code': '341621' + }, + { + 'name': '蒙城县', + 'code': '341622' + }, + { + 'name': '利辛县', + 'code': '341623' + } + ] + }, + { + 'name': '池州市', + 'code': '341700', + 'children': [ + { + 'name': '贵池区', + 'code': '341702' + }, + { + 'name': '东至县', + 'code': '341721' + }, + { + 'name': '石台县', + 'code': '341722' + }, + { + 'name': '青阳县', + 'code': '341723' + } + ] + }, + { + 'name': '宣城市', + 'code': '341800', + 'children': [ + { + 'name': '宣州区', + 'code': '341802' + }, + { + 'name': '郎溪县', + 'code': '341821' + }, + { + 'name': '广德县', + 'code': '341822' + }, + { + 'name': '泾县', + 'code': '341823' + }, + { + 'name': '绩溪县', + 'code': '341824' + }, + { + 'name': '旌德县', + 'code': '341825' + }, + { + 'name': '宁国市', + 'code': '341881' + } + ] + } + ] + }, + { + 'name': '福建省', + 'code': '350000', + 'region': 'east', + 'children': [ + { + 'name': '福州市', + 'code': '350100', + 'children': [ + { + 'name': '鼓楼区', + 'code': '350102' + }, + { + 'name': '台江区', + 'code': '350103' + }, + { + 'name': '仓山区', + 'code': '350104' + }, + { + 'name': '马尾区', + 'code': '350105' + }, + { + 'name': '晋安区', + 'code': '350111' + }, + { + 'name': '长乐区', + 'code': '350112' + }, + { + 'name': '闽侯县', + 'code': '350121' + }, + { + 'name': '连江县', + 'code': '350122' + }, + { + 'name': '罗源县', + 'code': '350123' + }, + { + 'name': '闽清县', + 'code': '350124' + }, + { + 'name': '永泰县', + 'code': '350125' + }, + { + 'name': '平潭县', + 'code': '350128' + }, + { + 'name': '福清市', + 'code': '350181' + } + ] + }, + { + 'name': '厦门市', + 'code': '350200', + 'children': [ + { + 'name': '思明区', + 'code': '350203' + }, + { + 'name': '海沧区', + 'code': '350205' + }, + { + 'name': '湖里区', + 'code': '350206' + }, + { + 'name': '集美区', + 'code': '350211' + }, + { + 'name': '同安区', + 'code': '350212' + }, + { + 'name': '翔安区', + 'code': '350213' + } + ] + }, + { + 'name': '莆田市', + 'code': '350300', + 'children': [ + { + 'name': '城厢区', + 'code': '350302' + }, + { + 'name': '涵江区', + 'code': '350303' + }, + { + 'name': '荔城区', + 'code': '350304' + }, + { + 'name': '秀屿区', + 'code': '350305' + }, + { + 'name': '仙游县', + 'code': '350322' + } + ] + }, + { + 'name': '三明市', + 'code': '350400', + 'children': [ + { + 'name': '梅列区', + 'code': '350402' + }, + { + 'name': '三元区', + 'code': '350403' + }, + { + 'name': '明溪县', + 'code': '350421' + }, + { + 'name': '清流县', + 'code': '350423' + }, + { + 'name': '宁化县', + 'code': '350424' + }, + { + 'name': '大田县', + 'code': '350425' + }, + { + 'name': '尤溪县', + 'code': '350426' + }, + { + 'name': '沙县', + 'code': '350427' + }, + { + 'name': '将乐县', + 'code': '350428' + }, + { + 'name': '泰宁县', + 'code': '350429' + }, + { + 'name': '建宁县', + 'code': '350430' + }, + { + 'name': '永安市', + 'code': '350481' + } + ] + }, + { + 'name': '泉州市', + 'code': '350500', + 'children': [ + { + 'name': '鲤城区', + 'code': '350502' + }, + { + 'name': '丰泽区', + 'code': '350503' + }, + { + 'name': '洛江区', + 'code': '350504' + }, + { + 'name': '泉港区', + 'code': '350505' + }, + { + 'name': '惠安县', + 'code': '350521' + }, + { + 'name': '安溪县', + 'code': '350524' + }, + { + 'name': '永春县', + 'code': '350525' + }, + { + 'name': '德化县', + 'code': '350526' + }, + { + 'name': '金门县', + 'code': '350527' + }, + { + 'name': '石狮市', + 'code': '350581' + }, + { + 'name': '晋江市', + 'code': '350582' + }, + { + 'name': '南安市', + 'code': '350583' + } + ] + }, + { + 'name': '漳州市', + 'code': '350600', + 'children': [ + { + 'name': '芗城区', + 'code': '350602' + }, + { + 'name': '龙文区', + 'code': '350603' + }, + { + 'name': '云霄县', + 'code': '350622' + }, + { + 'name': '漳浦县', + 'code': '350623' + }, + { + 'name': '诏安县', + 'code': '350624' + }, + { + 'name': '长泰县', + 'code': '350625' + }, + { + 'name': '东山县', + 'code': '350626' + }, + { + 'name': '南靖县', + 'code': '350627' + }, + { + 'name': '平和县', + 'code': '350628' + }, + { + 'name': '华安县', + 'code': '350629' + }, + { + 'name': '龙海市', + 'code': '350681' + } + ] + }, + { + 'name': '南平市', + 'code': '350700', + 'children': [ + { + 'name': '延平区', + 'code': '350702' + }, + { + 'name': '建阳区', + 'code': '350703' + }, + { + 'name': '顺昌县', + 'code': '350721' + }, + { + 'name': '浦城县', + 'code': '350722' + }, + { + 'name': '光泽县', + 'code': '350723' + }, + { + 'name': '松溪县', + 'code': '350724' + }, + { + 'name': '政和县', + 'code': '350725' + }, + { + 'name': '邵武市', + 'code': '350781' + }, + { + 'name': '武夷山市', + 'code': '350782' + }, + { + 'name': '建瓯市', + 'code': '350783' + } + ] + }, + { + 'name': '龙岩市', + 'code': '350800', + 'children': [ + { + 'name': '新罗区', + 'code': '350802' + }, + { + 'name': '永定区', + 'code': '350803' + }, + { + 'name': '长汀县', + 'code': '350821' + }, + { + 'name': '上杭县', + 'code': '350823' + }, + { + 'name': '武平县', + 'code': '350824' + }, + { + 'name': '连城县', + 'code': '350825' + }, + { + 'name': '漳平市', + 'code': '350881' + } + ] + }, + { + 'name': '宁德市', + 'code': '350900', + 'children': [ + { + 'name': '蕉城区', + 'code': '350902' + }, + { + 'name': '霞浦县', + 'code': '350921' + }, + { + 'name': '古田县', + 'code': '350922' + }, + { + 'name': '屏南县', + 'code': '350923' + }, + { + 'name': '寿宁县', + 'code': '350924' + }, + { + 'name': '周宁县', + 'code': '350925' + }, + { + 'name': '柘荣县', + 'code': '350926' + }, + { + 'name': '福安市', + 'code': '350981' + }, + { + 'name': '福鼎市', + 'code': '350982' + } + ] + } + ] + }, + { + 'name': '江西省', + 'code': '360000', + 'region': 'east', + 'children': [ + { + 'name': '南昌市', + 'code': '360100', + 'children': [ + { + 'name': '东湖区', + 'code': '360102' + }, + { + 'name': '西湖区', + 'code': '360103' + }, + { + 'name': '青云谱区', + 'code': '360104' + }, + { + 'name': '湾里区', + 'code': '360105' + }, + { + 'name': '青山湖区', + 'code': '360111' + }, + { + 'name': '新建区', + 'code': '360112' + }, + { + 'name': '南昌县', + 'code': '360121' + }, + { + 'name': '安义县', + 'code': '360123' + }, + { + 'name': '进贤县', + 'code': '360124' + } + ] + }, + { + 'name': '景德镇市', + 'code': '360200', + 'children': [ + { + 'name': '昌江区', + 'code': '360202' + }, + { + 'name': '珠山区', + 'code': '360203' + }, + { + 'name': '浮梁县', + 'code': '360222' + }, + { + 'name': '乐平市', + 'code': '360281' + } + ] + }, + { + 'name': '萍乡市', + 'code': '360300', + 'children': [ + { + 'name': '安源区', + 'code': '360302' + }, + { + 'name': '湘东区', + 'code': '360313' + }, + { + 'name': '莲花县', + 'code': '360321' + }, + { + 'name': '上栗县', + 'code': '360322' + }, + { + 'name': '芦溪县', + 'code': '360323' + } + ] + }, + { + 'name': '九江市', + 'code': '360400', + 'children': [ + { + 'name': '濂溪区', + 'code': '360402' + }, + { + 'name': '浔阳区', + 'code': '360403' + }, + { + 'name': '柴桑区', + 'code': '360404' + }, + { + 'name': '武宁县', + 'code': '360423' + }, + { + 'name': '修水县', + 'code': '360424' + }, + { + 'name': '永修县', + 'code': '360425' + }, + { + 'name': '德安县', + 'code': '360426' + }, + { + 'name': '都昌县', + 'code': '360428' + }, + { + 'name': '湖口县', + 'code': '360429' + }, + { + 'name': '彭泽县', + 'code': '360430' + }, + { + 'name': '瑞昌市', + 'code': '360481' + }, + { + 'name': '共青城市', + 'code': '360482' + }, + { + 'name': '庐山市', + 'code': '360483' + } + ] + }, + { + 'name': '新余市', + 'code': '360500', + 'children': [ + { + 'name': '渝水区', + 'code': '360502' + }, + { + 'name': '分宜县', + 'code': '360521' + } + ] + }, + { + 'name': '鹰潭市', + 'code': '360600', + 'children': [ + { + 'name': '月湖区', + 'code': '360602' + }, + { + 'name': '余江区', + 'code': '360603' + }, + { + 'name': '贵溪市', + 'code': '360681' + } + ] + }, + { + 'name': '赣州市', + 'code': '360700', + 'children': [ + { + 'name': '章贡区', + 'code': '360702' + }, + { + 'name': '南康区', + 'code': '360703' + }, + { + 'name': '赣县区', + 'code': '360704' + }, + { + 'name': '信丰县', + 'code': '360722' + }, + { + 'name': '大余县', + 'code': '360723' + }, + { + 'name': '上犹县', + 'code': '360724' + }, + { + 'name': '崇义县', + 'code': '360725' + }, + { + 'name': '安远县', + 'code': '360726' + }, + { + 'name': '龙南县', + 'code': '360727' + }, + { + 'name': '定南县', + 'code': '360728' + }, + { + 'name': '全南县', + 'code': '360729' + }, + { + 'name': '宁都县', + 'code': '360730' + }, + { + 'name': '于都县', + 'code': '360731' + }, + { + 'name': '兴国县', + 'code': '360732' + }, + { + 'name': '会昌县', + 'code': '360733' + }, + { + 'name': '寻乌县', + 'code': '360734' + }, + { + 'name': '石城县', + 'code': '360735' + }, + { + 'name': '瑞金市', + 'code': '360781' + } + ] + }, + { + 'name': '吉安市', + 'code': '360800', + 'children': [ + { + 'name': '吉州区', + 'code': '360802' + }, + { + 'name': '青原区', + 'code': '360803' + }, + { + 'name': '吉安县', + 'code': '360821' + }, + { + 'name': '吉水县', + 'code': '360822' + }, + { + 'name': '峡江县', + 'code': '360823' + }, + { + 'name': '新干县', + 'code': '360824' + }, + { + 'name': '永丰县', + 'code': '360825' + }, + { + 'name': '泰和县', + 'code': '360826' + }, + { + 'name': '遂川县', + 'code': '360827' + }, + { + 'name': '万安县', + 'code': '360828' + }, + { + 'name': '安福县', + 'code': '360829' + }, + { + 'name': '永新县', + 'code': '360830' + }, + { + 'name': '井冈山市', + 'code': '360881' + } + ] + }, + { + 'name': '宜春市', + 'code': '360900', + 'children': [ + { + 'name': '袁州区', + 'code': '360902' + }, + { + 'name': '奉新县', + 'code': '360921' + }, + { + 'name': '万载县', + 'code': '360922' + }, + { + 'name': '上高县', + 'code': '360923' + }, + { + 'name': '宜丰县', + 'code': '360924' + }, + { + 'name': '靖安县', + 'code': '360925' + }, + { + 'name': '铜鼓县', + 'code': '360926' + }, + { + 'name': '丰城市', + 'code': '360981' + }, + { + 'name': '樟树市', + 'code': '360982' + }, + { + 'name': '高安市', + 'code': '360983' + } + ] + }, + { + 'name': '抚州市', + 'code': '361000', + 'children': [ + { + 'name': '临川区', + 'code': '361002' + }, + { + 'name': '东乡区', + 'code': '361003' + }, + { + 'name': '南城县', + 'code': '361021' + }, + { + 'name': '黎川县', + 'code': '361022' + }, + { + 'name': '南丰县', + 'code': '361023' + }, + { + 'name': '崇仁县', + 'code': '361024' + }, + { + 'name': '乐安县', + 'code': '361025' + }, + { + 'name': '宜黄县', + 'code': '361026' + }, + { + 'name': '金溪县', + 'code': '361027' + }, + { + 'name': '资溪县', + 'code': '361028' + }, + { + 'name': '广昌县', + 'code': '361030' + } + ] + }, + { + 'name': '上饶市', + 'code': '361100', + 'children': [ + { + 'name': '信州区', + 'code': '361102' + }, + { + 'name': '广丰区', + 'code': '361103' + }, + { + 'name': '上饶县', + 'code': '361121' + }, + { + 'name': '玉山县', + 'code': '361123' + }, + { + 'name': '铅山县', + 'code': '361124' + }, + { + 'name': '横峰县', + 'code': '361125' + }, + { + 'name': '弋阳县', + 'code': '361126' + }, + { + 'name': '余干县', + 'code': '361127' + }, + { + 'name': '鄱阳县', + 'code': '361128' + }, + { + 'name': '万年县', + 'code': '361129' + }, + { + 'name': '婺源县', + 'code': '361130' + }, + { + 'name': '德兴市', + 'code': '361181' + } + ] + } + ] + }, + { + 'name': '山东省', + 'code': '370000', + 'region': 'east', + 'children': [ + { + 'name': '济南市', + 'code': '370100', + 'children': [ + { + 'name': '历下区', + 'code': '370102' + }, + { + 'name': '市中区', + 'code': '370103' + }, + { + 'name': '槐荫区', + 'code': '370104' + }, + { + 'name': '天桥区', + 'code': '370105' + }, + { + 'name': '历城区', + 'code': '370112' + }, + { + 'name': '长清区', + 'code': '370113' + }, + { + 'name': '章丘区', + 'code': '370114' + }, + { + 'name': '济阳区', + 'code': '370115' + }, + { + 'name': '莱芜区', + 'code': '370116' + }, + { + 'name': '钢城区', + 'code': '370117' + }, + { + 'name': '平阴县', + 'code': '370124' + }, + { + 'name': '商河县', + 'code': '370126' + } + ] + }, + { + 'name': '青岛市', + 'code': '370200', + 'children': [ + { + 'name': '市南区', + 'code': '370202' + }, + { + 'name': '市北区', + 'code': '370203' + }, + { + 'name': '黄岛区', + 'code': '370211' + }, + { + 'name': '崂山区', + 'code': '370212' + }, + { + 'name': '李沧区', + 'code': '370213' + }, + { + 'name': '城阳区', + 'code': '370214' + }, + { + 'name': '即墨区', + 'code': '370215' + }, + { + 'name': '胶州市', + 'code': '370281' + }, + { + 'name': '平度市', + 'code': '370283' + }, + { + 'name': '莱西市', + 'code': '370285' + } + ] + }, + { + 'name': '淄博市', + 'code': '370300', + 'children': [ + { + 'name': '淄川区', + 'code': '370302' + }, + { + 'name': '张店区', + 'code': '370303' + }, + { + 'name': '博山区', + 'code': '370304' + }, + { + 'name': '临淄区', + 'code': '370305' + }, + { + 'name': '周村区', + 'code': '370306' + }, + { + 'name': '桓台县', + 'code': '370321' + }, + { + 'name': '高青县', + 'code': '370322' + }, + { + 'name': '沂源县', + 'code': '370323' + } + ] + }, + { + 'name': '枣庄市', + 'code': '370400', + 'children': [ + { + 'name': '市中区', + 'code': '370402' + }, + { + 'name': '薛城区', + 'code': '370403' + }, + { + 'name': '峄城区', + 'code': '370404' + }, + { + 'name': '台儿庄区', + 'code': '370405' + }, + { + 'name': '山亭区', + 'code': '370406' + }, + { + 'name': '滕州市', + 'code': '370481' + } + ] + }, + { + 'name': '东营市', + 'code': '370500', + 'children': [ + { + 'name': '东营区', + 'code': '370502' + }, + { + 'name': '河口区', + 'code': '370503' + }, + { + 'name': '垦利区', + 'code': '370505' + }, + { + 'name': '利津县', + 'code': '370522' + }, + { + 'name': '广饶县', + 'code': '370523' + } + ] + }, + { + 'name': '烟台市', + 'code': '370600', + 'children': [ + { + 'name': '芝罘区', + 'code': '370602' + }, + { + 'name': '福山区', + 'code': '370611' + }, + { + 'name': '牟平区', + 'code': '370612' + }, + { + 'name': '莱山区', + 'code': '370613' + }, + { + 'name': '长岛县', + 'code': '370634' + }, + { + 'name': '龙口市', + 'code': '370681' + }, + { + 'name': '莱阳市', + 'code': '370682' + }, + { + 'name': '莱州市', + 'code': '370683' + }, + { + 'name': '蓬莱市', + 'code': '370684' + }, + { + 'name': '招远市', + 'code': '370685' + }, + { + 'name': '栖霞市', + 'code': '370686' + }, + { + 'name': '海阳市', + 'code': '370687' + } + ] + }, + { + 'name': '潍坊市', + 'code': '370700', + 'children': [ + { + 'name': '潍城区', + 'code': '370702' + }, + { + 'name': '寒亭区', + 'code': '370703' + }, + { + 'name': '坊子区', + 'code': '370704' + }, + { + 'name': '奎文区', + 'code': '370705' + }, + { + 'name': '临朐县', + 'code': '370724' + }, + { + 'name': '昌乐县', + 'code': '370725' + }, + { + 'name': '青州市', + 'code': '370781' + }, + { + 'name': '诸城市', + 'code': '370782' + }, + { + 'name': '寿光市', + 'code': '370783' + }, + { + 'name': '安丘市', + 'code': '370784' + }, + { + 'name': '高密市', + 'code': '370785' + }, + { + 'name': '昌邑市', + 'code': '370786' + } + ] + }, + { + 'name': '济宁市', + 'code': '370800', + 'children': [ + { + 'name': '任城区', + 'code': '370811' + }, + { + 'name': '兖州区', + 'code': '370812' + }, + { + 'name': '微山县', + 'code': '370826' + }, + { + 'name': '鱼台县', + 'code': '370827' + }, + { + 'name': '金乡县', + 'code': '370828' + }, + { + 'name': '嘉祥县', + 'code': '370829' + }, + { + 'name': '汶上县', + 'code': '370830' + }, + { + 'name': '泗水县', + 'code': '370831' + }, + { + 'name': '梁山县', + 'code': '370832' + }, + { + 'name': '曲阜市', + 'code': '370881' + }, + { + 'name': '邹城市', + 'code': '370883' + } + ] + }, + { + 'name': '泰安市', + 'code': '370900', + 'children': [ + { + 'name': '泰山区', + 'code': '370902' + }, + { + 'name': '岱岳区', + 'code': '370911' + }, + { + 'name': '宁阳县', + 'code': '370921' + }, + { + 'name': '东平县', + 'code': '370923' + }, + { + 'name': '新泰市', + 'code': '370982' + }, + { + 'name': '肥城市', + 'code': '370983' + } + ] + }, + { + 'name': '威海市', + 'code': '371000', + 'children': [ + { + 'name': '环翠区', + 'code': '371002' + }, + { + 'name': '文登区', + 'code': '371003' + }, + { + 'name': '荣成市', + 'code': '371082' + }, + { + 'name': '乳山市', + 'code': '371083' + } + ] + }, + { + 'name': '日照市', + 'code': '371100', + 'children': [ + { + 'name': '东港区', + 'code': '371102' + }, + { + 'name': '岚山区', + 'code': '371103' + }, + { + 'name': '五莲县', + 'code': '371121' + }, + { + 'name': '莒县', + 'code': '371122' + } + ] + }, + { + 'name': '临沂市', + 'code': '371300', + 'children': [ + { + 'name': '兰山区', + 'code': '371302' + }, + { + 'name': '罗庄区', + 'code': '371311' + }, + { + 'name': '河东区', + 'code': '371312' + }, + { + 'name': '沂南县', + 'code': '371321' + }, + { + 'name': '郯城县', + 'code': '371322' + }, + { + 'name': '沂水县', + 'code': '371323' + }, + { + 'name': '兰陵县', + 'code': '371324' + }, + { + 'name': '费县', + 'code': '371325' + }, + { + 'name': '平邑县', + 'code': '371326' + }, + { + 'name': '莒南县', + 'code': '371327' + }, + { + 'name': '蒙阴县', + 'code': '371328' + }, + { + 'name': '临沭县', + 'code': '371329' + } + ] + }, + { + 'name': '德州市', + 'code': '371400', + 'children': [ + { + 'name': '德城区', + 'code': '371402' + }, + { + 'name': '陵城区', + 'code': '371403' + }, + { + 'name': '宁津县', + 'code': '371422' + }, + { + 'name': '庆云县', + 'code': '371423' + }, + { + 'name': '临邑县', + 'code': '371424' + }, + { + 'name': '齐河县', + 'code': '371425' + }, + { + 'name': '平原县', + 'code': '371426' + }, + { + 'name': '夏津县', + 'code': '371427' + }, + { + 'name': '武城县', + 'code': '371428' + }, + { + 'name': '乐陵市', + 'code': '371481' + }, + { + 'name': '禹城市', + 'code': '371482' + } + ] + }, + { + 'name': '聊城市', + 'code': '371500', + 'children': [ + { + 'name': '东昌府区', + 'code': '371502' + }, + { + 'name': '阳谷县', + 'code': '371521' + }, + { + 'name': '莘县', + 'code': '371522' + }, + { + 'name': '茌平县', + 'code': '371523' + }, + { + 'name': '东阿县', + 'code': '371524' + }, + { + 'name': '冠县', + 'code': '371525' + }, + { + 'name': '高唐县', + 'code': '371526' + }, + { + 'name': '临清市', + 'code': '371581' + } + ] + }, + { + 'name': '滨州市', + 'code': '371600', + 'children': [ + { + 'name': '滨城区', + 'code': '371602' + }, + { + 'name': '沾化区', + 'code': '371603' + }, + { + 'name': '惠民县', + 'code': '371621' + }, + { + 'name': '阳信县', + 'code': '371622' + }, + { + 'name': '无棣县', + 'code': '371623' + }, + { + 'name': '博兴县', + 'code': '371625' + }, + { + 'name': '邹平市', + 'code': '371681' + } + ] + }, + { + 'name': '菏泽市', + 'code': '371700', + 'children': [ + { + 'name': '牡丹区', + 'code': '371702' + }, + { + 'name': '定陶区', + 'code': '371703' + }, + { + 'name': '曹县', + 'code': '371721' + }, + { + 'name': '单县', + 'code': '371722' + }, + { + 'name': '成武县', + 'code': '371723' + }, + { + 'name': '巨野县', + 'code': '371724' + }, + { + 'name': '郓城县', + 'code': '371725' + }, + { + 'name': '鄄城县', + 'code': '371726' + }, + { + 'name': '东明县', + 'code': '371728' + } + ] + } + ] + }, + { + 'name': '河南省', + 'code': '410000', + 'region': 'central', + 'children': [ + { + 'name': '郑州市', + 'code': '410100', + 'children': [ + { + 'name': '中原区', + 'code': '410102' + }, + { + 'name': '二七区', + 'code': '410103' + }, + { + 'name': '管城回族区', + 'code': '410104' + }, + { + 'name': '金水区', + 'code': '410105' + }, + { + 'name': '上街区', + 'code': '410106' + }, + { + 'name': '惠济区', + 'code': '410108' + }, + { + 'name': '中牟县', + 'code': '410122' + }, + { + 'name': '巩义市', + 'code': '410181' + }, + { + 'name': '荥阳市', + 'code': '410182' + }, + { + 'name': '新密市', + 'code': '410183' + }, + { + 'name': '新郑市', + 'code': '410184' + }, + { + 'name': '登封市', + 'code': '410185' + } + ] + }, + { + 'name': '开封市', + 'code': '410200', + 'children': [ + { + 'name': '龙亭区', + 'code': '410202' + }, + { + 'name': '顺河回族区', + 'code': '410203' + }, + { + 'name': '鼓楼区', + 'code': '410204' + }, + { + 'name': '禹王台区', + 'code': '410205' + }, + { + 'name': '祥符区', + 'code': '410212' + }, + { + 'name': '杞县', + 'code': '410221' + }, + { + 'name': '通许县', + 'code': '410222' + }, + { + 'name': '尉氏县', + 'code': '410223' + }, + { + 'name': '兰考县', + 'code': '410225' + } + ] + }, + { + 'name': '洛阳市', + 'code': '410300', + 'children': [ + { + 'name': '老城区', + 'code': '410302' + }, + { + 'name': '西工区', + 'code': '410303' + }, + { + 'name': '瀍河回族区', + 'code': '410304' + }, + { + 'name': '涧西区', + 'code': '410305' + }, + { + 'name': '吉利区', + 'code': '410306' + }, + { + 'name': '洛龙区', + 'code': '410311' + }, + { + 'name': '孟津县', + 'code': '410322' + }, + { + 'name': '新安县', + 'code': '410323' + }, + { + 'name': '栾川县', + 'code': '410324' + }, + { + 'name': '嵩县', + 'code': '410325' + }, + { + 'name': '汝阳县', + 'code': '410326' + }, + { + 'name': '宜阳县', + 'code': '410327' + }, + { + 'name': '洛宁县', + 'code': '410328' + }, + { + 'name': '伊川县', + 'code': '410329' + }, + { + 'name': '偃师市', + 'code': '410381' + } + ] + }, + { + 'name': '平顶山市', + 'code': '410400', + 'children': [ + { + 'name': '新华区', + 'code': '410402' + }, + { + 'name': '卫东区', + 'code': '410403' + }, + { + 'name': '石龙区', + 'code': '410404' + }, + { + 'name': '湛河区', + 'code': '410411' + }, + { + 'name': '宝丰县', + 'code': '410421' + }, + { + 'name': '叶县', + 'code': '410422' + }, + { + 'name': '鲁山县', + 'code': '410423' + }, + { + 'name': '郏县', + 'code': '410425' + }, + { + 'name': '舞钢市', + 'code': '410481' + }, + { + 'name': '汝州市', + 'code': '410482' + } + ] + }, + { + 'name': '安阳市', + 'code': '410500', + 'children': [ + { + 'name': '文峰区', + 'code': '410502' + }, + { + 'name': '北关区', + 'code': '410503' + }, + { + 'name': '殷都区', + 'code': '410505' + }, + { + 'name': '龙安区', + 'code': '410506' + }, + { + 'name': '安阳县', + 'code': '410522' + }, + { + 'name': '汤阴县', + 'code': '410523' + }, + { + 'name': '滑县', + 'code': '410526' + }, + { + 'name': '内黄县', + 'code': '410527' + }, + { + 'name': '林州市', + 'code': '410581' + } + ] + }, + { + 'name': '鹤壁市', + 'code': '410600', + 'children': [ + { + 'name': '鹤山区', + 'code': '410602' + }, + { + 'name': '山城区', + 'code': '410603' + }, + { + 'name': '淇滨区', + 'code': '410611' + }, + { + 'name': '浚县', + 'code': '410621' + }, + { + 'name': '淇县', + 'code': '410622' + } + ] + }, + { + 'name': '新乡市', + 'code': '410700', + 'children': [ + { + 'name': '红旗区', + 'code': '410702' + }, + { + 'name': '卫滨区', + 'code': '410703' + }, + { + 'name': '凤泉区', + 'code': '410704' + }, + { + 'name': '牧野区', + 'code': '410711' + }, + { + 'name': '新乡县', + 'code': '410721' + }, + { + 'name': '获嘉县', + 'code': '410724' + }, + { + 'name': '原阳县', + 'code': '410725' + }, + { + 'name': '延津县', + 'code': '410726' + }, + { + 'name': '封丘县', + 'code': '410727' + }, + { + 'name': '长垣县', + 'code': '410728' + }, + { + 'name': '卫辉市', + 'code': '410781' + }, + { + 'name': '辉县市', + 'code': '410782' + } + ] + }, + { + 'name': '焦作市', + 'code': '410800', + 'children': [ + { + 'name': '解放区', + 'code': '410802' + }, + { + 'name': '中站区', + 'code': '410803' + }, + { + 'name': '马村区', + 'code': '410804' + }, + { + 'name': '山阳区', + 'code': '410811' + }, + { + 'name': '修武县', + 'code': '410821' + }, + { + 'name': '博爱县', + 'code': '410822' + }, + { + 'name': '武陟县', + 'code': '410823' + }, + { + 'name': '温县', + 'code': '410825' + }, + { + 'name': '沁阳市', + 'code': '410882' + }, + { + 'name': '孟州市', + 'code': '410883' + } + ] + }, + { + 'name': '濮阳市', + 'code': '410900', + 'children': [ + { + 'name': '华龙区', + 'code': '410902' + }, + { + 'name': '清丰县', + 'code': '410922' + }, + { + 'name': '南乐县', + 'code': '410923' + }, + { + 'name': '范县', + 'code': '410926' + }, + { + 'name': '台前县', + 'code': '410927' + }, + { + 'name': '濮阳县', + 'code': '410928' + } + ] + }, + { + 'name': '许昌市', + 'code': '411000', + 'children': [ + { + 'name': '魏都区', + 'code': '411002' + }, + { + 'name': '建安区', + 'code': '411003' + }, + { + 'name': '鄢陵县', + 'code': '411024' + }, + { + 'name': '襄城县', + 'code': '411025' + }, + { + 'name': '禹州市', + 'code': '411081' + }, + { + 'name': '长葛市', + 'code': '411082' + } + ] + }, + { + 'name': '漯河市', + 'code': '411100', + 'children': [ + { + 'name': '源汇区', + 'code': '411102' + }, + { + 'name': '郾城区', + 'code': '411103' + }, + { + 'name': '召陵区', + 'code': '411104' + }, + { + 'name': '舞阳县', + 'code': '411121' + }, + { + 'name': '临颍县', + 'code': '411122' + } + ] + }, + { + 'name': '三门峡市', + 'code': '411200', + 'children': [ + { + 'name': '湖滨区', + 'code': '411202' + }, + { + 'name': '陕州区', + 'code': '411203' + }, + { + 'name': '渑池县', + 'code': '411221' + }, + { + 'name': '卢氏县', + 'code': '411224' + }, + { + 'name': '义马市', + 'code': '411281' + }, + { + 'name': '灵宝市', + 'code': '411282' + } + ] + }, + { + 'name': '南阳市', + 'code': '411300', + 'children': [ + { + 'name': '宛城区', + 'code': '411302' + }, + { + 'name': '卧龙区', + 'code': '411303' + }, + { + 'name': '南召县', + 'code': '411321' + }, + { + 'name': '方城县', + 'code': '411322' + }, + { + 'name': '西峡县', + 'code': '411323' + }, + { + 'name': '镇平县', + 'code': '411324' + }, + { + 'name': '内乡县', + 'code': '411325' + }, + { + 'name': '淅川县', + 'code': '411326' + }, + { + 'name': '社旗县', + 'code': '411327' + }, + { + 'name': '唐河县', + 'code': '411328' + }, + { + 'name': '新野县', + 'code': '411329' + }, + { + 'name': '桐柏县', + 'code': '411330' + }, + { + 'name': '邓州市', + 'code': '411381' + } + ] + }, + { + 'name': '商丘市', + 'code': '411400', + 'children': [ + { + 'name': '梁园区', + 'code': '411402' + }, + { + 'name': '睢阳区', + 'code': '411403' + }, + { + 'name': '民权县', + 'code': '411421' + }, + { + 'name': '睢县', + 'code': '411422' + }, + { + 'name': '宁陵县', + 'code': '411423' + }, + { + 'name': '柘城县', + 'code': '411424' + }, + { + 'name': '虞城县', + 'code': '411425' + }, + { + 'name': '夏邑县', + 'code': '411426' + }, + { + 'name': '永城市', + 'code': '411481' + } + ] + }, + { + 'name': '信阳市', + 'code': '411500', + 'children': [ + { + 'name': '浉河区', + 'code': '411502' + }, + { + 'name': '平桥区', + 'code': '411503' + }, + { + 'name': '罗山县', + 'code': '411521' + }, + { + 'name': '光山县', + 'code': '411522' + }, + { + 'name': '新县', + 'code': '411523' + }, + { + 'name': '商城县', + 'code': '411524' + }, + { + 'name': '固始县', + 'code': '411525' + }, + { + 'name': '潢川县', + 'code': '411526' + }, + { + 'name': '淮滨县', + 'code': '411527' + }, + { + 'name': '息县', + 'code': '411528' + } + ] + }, + { + 'name': '周口市', + 'code': '411600', + 'children': [ + { + 'name': '川汇区', + 'code': '411602' + }, + { + 'name': '扶沟县', + 'code': '411621' + }, + { + 'name': '西华县', + 'code': '411622' + }, + { + 'name': '商水县', + 'code': '411623' + }, + { + 'name': '沈丘县', + 'code': '411624' + }, + { + 'name': '郸城县', + 'code': '411625' + }, + { + 'name': '淮阳县', + 'code': '411626' + }, + { + 'name': '太康县', + 'code': '411627' + }, + { + 'name': '鹿邑县', + 'code': '411628' + }, + { + 'name': '项城市', + 'code': '411681' + } + ] + }, + { + 'name': '驻马店市', + 'code': '411700', + 'children': [ + { + 'name': '驿城区', + 'code': '411702' + }, + { + 'name': '西平县', + 'code': '411721' + }, + { + 'name': '上蔡县', + 'code': '411722' + }, + { + 'name': '平舆县', + 'code': '411723' + }, + { + 'name': '正阳县', + 'code': '411724' + }, + { + 'name': '确山县', + 'code': '411725' + }, + { + 'name': '泌阳县', + 'code': '411726' + }, + { + 'name': '汝南县', + 'code': '411727' + }, + { + 'name': '遂平县', + 'code': '411728' + }, + { + 'name': '新蔡县', + 'code': '411729' + } + ] + }, + { + 'name': '直辖县', + 'code': '419000', + 'children': [ + { + 'name': '济源市', + 'code': '419001' + } + ] + } + ] + }, + { + 'name': '湖北省', + 'code': '420000', + 'region': 'central', + 'children': [ + { + 'name': '武汉市', + 'code': '420100', + 'children': [ + { + 'name': '江岸区', + 'code': '420102' + }, + { + 'name': '江汉区', + 'code': '420103' + }, + { + 'name': '硚口区', + 'code': '420104' + }, + { + 'name': '汉阳区', + 'code': '420105' + }, + { + 'name': '武昌区', + 'code': '420106' + }, + { + 'name': '青山区', + 'code': '420107' + }, + { + 'name': '洪山区', + 'code': '420111' + }, + { + 'name': '东西湖区', + 'code': '420112' + }, + { + 'name': '汉南区', + 'code': '420113' + }, + { + 'name': '蔡甸区', + 'code': '420114' + }, + { + 'name': '江夏区', + 'code': '420115' + }, + { + 'name': '黄陂区', + 'code': '420116' + }, + { + 'name': '新洲区', + 'code': '420117' + } + ] + }, + { + 'name': '黄石市', + 'code': '420200', + 'children': [ + { + 'name': '黄石港区', + 'code': '420202' + }, + { + 'name': '西塞山区', + 'code': '420203' + }, + { + 'name': '下陆区', + 'code': '420204' + }, + { + 'name': '铁山区', + 'code': '420205' + }, + { + 'name': '阳新县', + 'code': '420222' + }, + { + 'name': '大冶市', + 'code': '420281' + } + ] + }, + { + 'name': '十堰市', + 'code': '420300', + 'children': [ + { + 'name': '茅箭区', + 'code': '420302' + }, + { + 'name': '张湾区', + 'code': '420303' + }, + { + 'name': '郧阳区', + 'code': '420304' + }, + { + 'name': '郧西县', + 'code': '420322' + }, + { + 'name': '竹山县', + 'code': '420323' + }, + { + 'name': '竹溪县', + 'code': '420324' + }, + { + 'name': '房县', + 'code': '420325' + }, + { + 'name': '丹江口市', + 'code': '420381' + } + ] + }, + { + 'name': '宜昌市', + 'code': '420500', + 'children': [ + { + 'name': '西陵区', + 'code': '420502' + }, + { + 'name': '伍家岗区', + 'code': '420503' + }, + { + 'name': '点军区', + 'code': '420504' + }, + { + 'name': '猇亭区', + 'code': '420505' + }, + { + 'name': '夷陵区', + 'code': '420506' + }, + { + 'name': '远安县', + 'code': '420525' + }, + { + 'name': '兴山县', + 'code': '420526' + }, + { + 'name': '秭归县', + 'code': '420527' + }, + { + 'name': '长阳土家族自治县', + 'code': '420528' + }, + { + 'name': '五峰土家族自治县', + 'code': '420529' + }, + { + 'name': '宜都市', + 'code': '420581' + }, + { + 'name': '当阳市', + 'code': '420582' + }, + { + 'name': '枝江市', + 'code': '420583' + } + ] + }, + { + 'name': '襄阳市', + 'code': '420600', + 'children': [ + { + 'name': '襄城区', + 'code': '420602' + }, + { + 'name': '樊城区', + 'code': '420606' + }, + { + 'name': '襄州区', + 'code': '420607' + }, + { + 'name': '南漳县', + 'code': '420624' + }, + { + 'name': '谷城县', + 'code': '420625' + }, + { + 'name': '保康县', + 'code': '420626' + }, + { + 'name': '老河口市', + 'code': '420682' + }, + { + 'name': '枣阳市', + 'code': '420683' + }, + { + 'name': '宜城市', + 'code': '420684' + } + ] + }, + { + 'name': '鄂州市', + 'code': '420700', + 'children': [ + { + 'name': '梁子湖区', + 'code': '420702' + }, + { + 'name': '华容区', + 'code': '420703' + }, + { + 'name': '鄂城区', + 'code': '420704' + } + ] + }, + { + 'name': '荆门市', + 'code': '420800', + 'children': [ + { + 'name': '东宝区', + 'code': '420802' + }, + { + 'name': '掇刀区', + 'code': '420804' + }, + { + 'name': '沙洋县', + 'code': '420822' + }, + { + 'name': '钟祥市', + 'code': '420881' + }, + { + 'name': '京山市', + 'code': '420882' + } + ] + }, + { + 'name': '孝感市', + 'code': '420900', + 'children': [ + { + 'name': '孝南区', + 'code': '420902' + }, + { + 'name': '孝昌县', + 'code': '420921' + }, + { + 'name': '大悟县', + 'code': '420922' + }, + { + 'name': '云梦县', + 'code': '420923' + }, + { + 'name': '应城市', + 'code': '420981' + }, + { + 'name': '安陆市', + 'code': '420982' + }, + { + 'name': '汉川市', + 'code': '420984' + } + ] + }, + { + 'name': '荆州市', + 'code': '421000', + 'children': [ + { + 'name': '沙市区', + 'code': '421002' + }, + { + 'name': '荆州区', + 'code': '421003' + }, + { + 'name': '公安县', + 'code': '421022' + }, + { + 'name': '监利县', + 'code': '421023' + }, + { + 'name': '江陵县', + 'code': '421024' + }, + { + 'name': '石首市', + 'code': '421081' + }, + { + 'name': '洪湖市', + 'code': '421083' + }, + { + 'name': '松滋市', + 'code': '421087' + } + ] + }, + { + 'name': '黄冈市', + 'code': '421100', + 'children': [ + { + 'name': '黄州区', + 'code': '421102' + }, + { + 'name': '团风县', + 'code': '421121' + }, + { + 'name': '红安县', + 'code': '421122' + }, + { + 'name': '罗田县', + 'code': '421123' + }, + { + 'name': '英山县', + 'code': '421124' + }, + { + 'name': '浠水县', + 'code': '421125' + }, + { + 'name': '蕲春县', + 'code': '421126' + }, + { + 'name': '黄梅县', + 'code': '421127' + }, + { + 'name': '麻城市', + 'code': '421181' + }, + { + 'name': '武穴市', + 'code': '421182' + } + ] + }, + { + 'name': '咸宁市', + 'code': '421200', + 'children': [ + { + 'name': '咸安区', + 'code': '421202' + }, + { + 'name': '嘉鱼县', + 'code': '421221' + }, + { + 'name': '通城县', + 'code': '421222' + }, + { + 'name': '崇阳县', + 'code': '421223' + }, + { + 'name': '通山县', + 'code': '421224' + }, + { + 'name': '赤壁市', + 'code': '421281' + } + ] + }, + { + 'name': '随州市', + 'code': '421300', + 'children': [ + { + 'name': '曾都区', + 'code': '421303' + }, + { + 'name': '随县', + 'code': '421321' + }, + { + 'name': '广水市', + 'code': '421381' + } + ] + }, + { + 'name': '恩施土家族苗族自治州', + 'code': '422800', + 'children': [ + { + 'name': '恩施市', + 'code': '422801' + }, + { + 'name': '利川市', + 'code': '422802' + }, + { + 'name': '建始县', + 'code': '422822' + }, + { + 'name': '巴东县', + 'code': '422823' + }, + { + 'name': '宣恩县', + 'code': '422825' + }, + { + 'name': '咸丰县', + 'code': '422826' + }, + { + 'name': '来凤县', + 'code': '422827' + }, + { + 'name': '鹤峰县', + 'code': '422828' + } + ] + }, + { + 'name': '直辖县', + 'code': '429000', + 'children': [ + { + 'name': '仙桃市', + 'code': '429004' + }, + { + 'name': '潜江市', + 'code': '429005' + }, + { + 'name': '天门市', + 'code': '429006' + }, + { + 'name': '神农架林区', + 'code': '429021' + } + ] + } + ] + }, + { + 'name': '湖南省', + 'code': '430000', + 'region': 'central', + 'children': [ + { + 'name': '长沙市', + 'code': '430100', + 'children': [ + { + 'name': '芙蓉区', + 'code': '430102' + }, + { + 'name': '天心区', + 'code': '430103' + }, + { + 'name': '岳麓区', + 'code': '430104' + }, + { + 'name': '开福区', + 'code': '430105' + }, + { + 'name': '雨花区', + 'code': '430111' + }, + { + 'name': '望城区', + 'code': '430112' + }, + { + 'name': '长沙县', + 'code': '430121' + }, + { + 'name': '浏阳市', + 'code': '430181' + }, + { + 'name': '宁乡市', + 'code': '430182' + } + ] + }, + { + 'name': '株洲市', + 'code': '430200', + 'children': [ + { + 'name': '荷塘区', + 'code': '430202' + }, + { + 'name': '芦淞区', + 'code': '430203' + }, + { + 'name': '石峰区', + 'code': '430204' + }, + { + 'name': '天元区', + 'code': '430211' + }, + { + 'name': '渌口区', + 'code': '430212' + }, + { + 'name': '攸县', + 'code': '430223' + }, + { + 'name': '茶陵县', + 'code': '430224' + }, + { + 'name': '炎陵县', + 'code': '430225' + }, + { + 'name': '醴陵市', + 'code': '430281' + } + ] + }, + { + 'name': '湘潭市', + 'code': '430300', + 'children': [ + { + 'name': '雨湖区', + 'code': '430302' + }, + { + 'name': '岳塘区', + 'code': '430304' + }, + { + 'name': '湘潭县', + 'code': '430321' + }, + { + 'name': '湘乡市', + 'code': '430381' + }, + { + 'name': '韶山市', + 'code': '430382' + } + ] + }, + { + 'name': '衡阳市', + 'code': '430400', + 'children': [ + { + 'name': '珠晖区', + 'code': '430405' + }, + { + 'name': '雁峰区', + 'code': '430406' + }, + { + 'name': '石鼓区', + 'code': '430407' + }, + { + 'name': '蒸湘区', + 'code': '430408' + }, + { + 'name': '南岳区', + 'code': '430412' + }, + { + 'name': '衡阳县', + 'code': '430421' + }, + { + 'name': '衡南县', + 'code': '430422' + }, + { + 'name': '衡山县', + 'code': '430423' + }, + { + 'name': '衡东县', + 'code': '430424' + }, + { + 'name': '祁东县', + 'code': '430426' + }, + { + 'name': '耒阳市', + 'code': '430481' + }, + { + 'name': '常宁市', + 'code': '430482' + } + ] + }, + { + 'name': '邵阳市', + 'code': '430500', + 'children': [ + { + 'name': '双清区', + 'code': '430502' + }, + { + 'name': '大祥区', + 'code': '430503' + }, + { + 'name': '北塔区', + 'code': '430511' + }, + { + 'name': '邵东县', + 'code': '430521' + }, + { + 'name': '新邵县', + 'code': '430522' + }, + { + 'name': '邵阳县', + 'code': '430523' + }, + { + 'name': '隆回县', + 'code': '430524' + }, + { + 'name': '洞口县', + 'code': '430525' + }, + { + 'name': '绥宁县', + 'code': '430527' + }, + { + 'name': '新宁县', + 'code': '430528' + }, + { + 'name': '城步苗族自治县', + 'code': '430529' + }, + { + 'name': '武冈市', + 'code': '430581' + } + ] + }, + { + 'name': '岳阳市', + 'code': '430600', + 'children': [ + { + 'name': '岳阳楼区', + 'code': '430602' + }, + { + 'name': '云溪区', + 'code': '430603' + }, + { + 'name': '君山区', + 'code': '430611' + }, + { + 'name': '岳阳县', + 'code': '430621' + }, + { + 'name': '华容县', + 'code': '430623' + }, + { + 'name': '湘阴县', + 'code': '430624' + }, + { + 'name': '平江县', + 'code': '430626' + }, + { + 'name': '汨罗市', + 'code': '430681' + }, + { + 'name': '临湘市', + 'code': '430682' + } + ] + }, + { + 'name': '常德市', + 'code': '430700', + 'children': [ + { + 'name': '武陵区', + 'code': '430702' + }, + { + 'name': '鼎城区', + 'code': '430703' + }, + { + 'name': '安乡县', + 'code': '430721' + }, + { + 'name': '汉寿县', + 'code': '430722' + }, + { + 'name': '澧县', + 'code': '430723' + }, + { + 'name': '临澧县', + 'code': '430724' + }, + { + 'name': '桃源县', + 'code': '430725' + }, + { + 'name': '石门县', + 'code': '430726' + }, + { + 'name': '津市市', + 'code': '430781' + } + ] + }, + { + 'name': '张家界市', + 'code': '430800', + 'children': [ + { + 'name': '永定区', + 'code': '430802' + }, + { + 'name': '武陵源区', + 'code': '430811' + }, + { + 'name': '慈利县', + 'code': '430821' + }, + { + 'name': '桑植县', + 'code': '430822' + } + ] + }, + { + 'name': '益阳市', + 'code': '430900', + 'children': [ + { + 'name': '资阳区', + 'code': '430902' + }, + { + 'name': '赫山区', + 'code': '430903' + }, + { + 'name': '南县', + 'code': '430921' + }, + { + 'name': '桃江县', + 'code': '430922' + }, + { + 'name': '安化县', + 'code': '430923' + }, + { + 'name': '沅江市', + 'code': '430981' + } + ] + }, + { + 'name': '郴州市', + 'code': '431000', + 'children': [ + { + 'name': '北湖区', + 'code': '431002' + }, + { + 'name': '苏仙区', + 'code': '431003' + }, + { + 'name': '桂阳县', + 'code': '431021' + }, + { + 'name': '宜章县', + 'code': '431022' + }, + { + 'name': '永兴县', + 'code': '431023' + }, + { + 'name': '嘉禾县', + 'code': '431024' + }, + { + 'name': '临武县', + 'code': '431025' + }, + { + 'name': '汝城县', + 'code': '431026' + }, + { + 'name': '桂东县', + 'code': '431027' + }, + { + 'name': '安仁县', + 'code': '431028' + }, + { + 'name': '资兴市', + 'code': '431081' + } + ] + }, + { + 'name': '永州市', + 'code': '431100', + 'children': [ + { + 'name': '零陵区', + 'code': '431102' + }, + { + 'name': '冷水滩区', + 'code': '431103' + }, + { + 'name': '祁阳县', + 'code': '431121' + }, + { + 'name': '东安县', + 'code': '431122' + }, + { + 'name': '双牌县', + 'code': '431123' + }, + { + 'name': '道县', + 'code': '431124' + }, + { + 'name': '江永县', + 'code': '431125' + }, + { + 'name': '宁远县', + 'code': '431126' + }, + { + 'name': '蓝山县', + 'code': '431127' + }, + { + 'name': '新田县', + 'code': '431128' + }, + { + 'name': '江华瑶族自治县', + 'code': '431129' + } + ] + }, + { + 'name': '怀化市', + 'code': '431200', + 'children': [ + { + 'name': '鹤城区', + 'code': '431202' + }, + { + 'name': '中方县', + 'code': '431221' + }, + { + 'name': '沅陵县', + 'code': '431222' + }, + { + 'name': '辰溪县', + 'code': '431223' + }, + { + 'name': '溆浦县', + 'code': '431224' + }, + { + 'name': '会同县', + 'code': '431225' + }, + { + 'name': '麻阳苗族自治县', + 'code': '431226' + }, + { + 'name': '新晃侗族自治县', + 'code': '431227' + }, + { + 'name': '芷江侗族自治县', + 'code': '431228' + }, + { + 'name': '靖州苗族侗族自治县', + 'code': '431229' + }, + { + 'name': '通道侗族自治县', + 'code': '431230' + }, + { + 'name': '洪江市', + 'code': '431281' + } + ] + }, + { + 'name': '娄底市', + 'code': '431300', + 'children': [ + { + 'name': '娄星区', + 'code': '431302' + }, + { + 'name': '双峰县', + 'code': '431321' + }, + { + 'name': '新化县', + 'code': '431322' + }, + { + 'name': '冷水江市', + 'code': '431381' + }, + { + 'name': '涟源市', + 'code': '431382' + } + ] + }, + { + 'name': '湘西土家族苗族自治州', + 'code': '433100', + 'children': [ + { + 'name': '吉首市', + 'code': '433101' + }, + { + 'name': '泸溪县', + 'code': '433122' + }, + { + 'name': '凤凰县', + 'code': '433123' + }, + { + 'name': '花垣县', + 'code': '433124' + }, + { + 'name': '保靖县', + 'code': '433125' + }, + { + 'name': '古丈县', + 'code': '433126' + }, + { + 'name': '永顺县', + 'code': '433127' + }, + { + 'name': '龙山县', + 'code': '433130' + } + ] + } + ] + }, + { + 'name': '广东省', + 'code': '440000', + 'region': 'south', + 'children': [ + { + 'name': '广州市', + 'code': '440100', + 'children': [ + { + 'name': '荔湾区', + 'code': '440103' + }, + { + 'name': '越秀区', + 'code': '440104' + }, + { + 'name': '海珠区', + 'code': '440105' + }, + { + 'name': '天河区', + 'code': '440106' + }, + { + 'name': '白云区', + 'code': '440111' + }, + { + 'name': '黄埔区', + 'code': '440112' + }, + { + 'name': '番禺区', + 'code': '440113' + }, + { + 'name': '花都区', + 'code': '440114' + }, + { + 'name': '南沙区', + 'code': '440115' + }, + { + 'name': '从化区', + 'code': '440117' + }, + { + 'name': '增城区', + 'code': '440118' + } + ] + }, + { + 'name': '韶关市', + 'code': '440200', + 'children': [ + { + 'name': '武江区', + 'code': '440203' + }, + { + 'name': '浈江区', + 'code': '440204' + }, + { + 'name': '曲江区', + 'code': '440205' + }, + { + 'name': '始兴县', + 'code': '440222' + }, + { + 'name': '仁化县', + 'code': '440224' + }, + { + 'name': '翁源县', + 'code': '440229' + }, + { + 'name': '乳源瑶族自治县', + 'code': '440232' + }, + { + 'name': '新丰县', + 'code': '440233' + }, + { + 'name': '乐昌市', + 'code': '440281' + }, + { + 'name': '南雄市', + 'code': '440282' + } + ] + }, + { + 'name': '深圳市', + 'code': '440300', + 'children': [ + { + 'name': '罗湖区', + 'code': '440303' + }, + { + 'name': '福田区', + 'code': '440304' + }, + { + 'name': '南山区', + 'code': '440305' + }, + { + 'name': '宝安区', + 'code': '440306' + }, + { + 'name': '龙岗区', + 'code': '440307' + }, + { + 'name': '盐田区', + 'code': '440308' + }, + { + 'name': '龙华区', + 'code': '440309' + }, + { + 'name': '坪山区', + 'code': '440310' + }, + { + 'name': '光明区', + 'code': '440311' + } + ] + }, + { + 'name': '珠海市', + 'code': '440400', + 'children': [ + { + 'name': '香洲区', + 'code': '440402' + }, + { + 'name': '斗门区', + 'code': '440403' + }, + { + 'name': '金湾区', + 'code': '440404' + } + ] + }, + { + 'name': '汕头市', + 'code': '440500', + 'children': [ + { + 'name': '龙湖区', + 'code': '440507' + }, + { + 'name': '金平区', + 'code': '440511' + }, + { + 'name': '濠江区', + 'code': '440512' + }, + { + 'name': '潮阳区', + 'code': '440513' + }, + { + 'name': '潮南区', + 'code': '440514' + }, + { + 'name': '澄海区', + 'code': '440515' + }, + { + 'name': '南澳县', + 'code': '440523' + } + ] + }, + { + 'name': '佛山市', + 'code': '440600', + 'children': [ + { + 'name': '禅城区', + 'code': '440604' + }, + { + 'name': '南海区', + 'code': '440605' + }, + { + 'name': '顺德区', + 'code': '440606' + }, + { + 'name': '三水区', + 'code': '440607' + }, + { + 'name': '高明区', + 'code': '440608' + } + ] + }, + { + 'name': '江门市', + 'code': '440700', + 'children': [ + { + 'name': '蓬江区', + 'code': '440703' + }, + { + 'name': '江海区', + 'code': '440704' + }, + { + 'name': '新会区', + 'code': '440705' + }, + { + 'name': '台山市', + 'code': '440781' + }, + { + 'name': '开平市', + 'code': '440783' + }, + { + 'name': '鹤山市', + 'code': '440784' + }, + { + 'name': '恩平市', + 'code': '440785' + } + ] + }, + { + 'name': '湛江市', + 'code': '440800', + 'children': [ + { + 'name': '赤坎区', + 'code': '440802' + }, + { + 'name': '霞山区', + 'code': '440803' + }, + { + 'name': '坡头区', + 'code': '440804' + }, + { + 'name': '麻章区', + 'code': '440811' + }, + { + 'name': '遂溪县', + 'code': '440823' + }, + { + 'name': '徐闻县', + 'code': '440825' + }, + { + 'name': '廉江市', + 'code': '440881' + }, + { + 'name': '雷州市', + 'code': '440882' + }, + { + 'name': '吴川市', + 'code': '440883' + } + ] + }, + { + 'name': '茂名市', + 'code': '440900', + 'children': [ + { + 'name': '茂南区', + 'code': '440902' + }, + { + 'name': '电白区', + 'code': '440904' + }, + { + 'name': '高州市', + 'code': '440981' + }, + { + 'name': '化州市', + 'code': '440982' + }, + { + 'name': '信宜市', + 'code': '440983' + } + ] + }, + { + 'name': '肇庆市', + 'code': '441200', + 'children': [ + { + 'name': '端州区', + 'code': '441202' + }, + { + 'name': '鼎湖区', + 'code': '441203' + }, + { + 'name': '高要区', + 'code': '441204' + }, + { + 'name': '广宁县', + 'code': '441223' + }, + { + 'name': '怀集县', + 'code': '441224' + }, + { + 'name': '封开县', + 'code': '441225' + }, + { + 'name': '德庆县', + 'code': '441226' + }, + { + 'name': '四会市', + 'code': '441284' + } + ] + }, + { + 'name': '惠州市', + 'code': '441300', + 'children': [ + { + 'name': '惠城区', + 'code': '441302' + }, + { + 'name': '惠阳区', + 'code': '441303' + }, + { + 'name': '博罗县', + 'code': '441322' + }, + { + 'name': '惠东县', + 'code': '441323' + }, + { + 'name': '龙门县', + 'code': '441324' + } + ] + }, + { + 'name': '梅州市', + 'code': '441400', + 'children': [ + { + 'name': '梅江区', + 'code': '441402' + }, + { + 'name': '梅县区', + 'code': '441403' + }, + { + 'name': '大埔县', + 'code': '441422' + }, + { + 'name': '丰顺县', + 'code': '441423' + }, + { + 'name': '五华县', + 'code': '441424' + }, + { + 'name': '平远县', + 'code': '441426' + }, + { + 'name': '蕉岭县', + 'code': '441427' + }, + { + 'name': '兴宁市', + 'code': '441481' + } + ] + }, + { + 'name': '汕尾市', + 'code': '441500', + 'children': [ + { + 'name': '城区', + 'code': '441502' + }, + { + 'name': '海丰县', + 'code': '441521' + }, + { + 'name': '陆河县', + 'code': '441523' + }, + { + 'name': '陆丰市', + 'code': '441581' + } + ] + }, + { + 'name': '河源市', + 'code': '441600', + 'children': [ + { + 'name': '源城区', + 'code': '441602' + }, + { + 'name': '紫金县', + 'code': '441621' + }, + { + 'name': '龙川县', + 'code': '441622' + }, + { + 'name': '连平县', + 'code': '441623' + }, + { + 'name': '和平县', + 'code': '441624' + }, + { + 'name': '东源县', + 'code': '441625' + } + ] + }, + { + 'name': '阳江市', + 'code': '441700', + 'children': [ + { + 'name': '江城区', + 'code': '441702' + }, + { + 'name': '阳东区', + 'code': '441704' + }, + { + 'name': '阳西县', + 'code': '441721' + }, + { + 'name': '阳春市', + 'code': '441781' + } + ] + }, + { + 'name': '清远市', + 'code': '441800', + 'children': [ + { + 'name': '清城区', + 'code': '441802' + }, + { + 'name': '清新区', + 'code': '441803' + }, + { + 'name': '佛冈县', + 'code': '441821' + }, + { + 'name': '阳山县', + 'code': '441823' + }, + { + 'name': '连山壮族瑶族自治县', + 'code': '441825' + }, + { + 'name': '连南瑶族自治县', + 'code': '441826' + }, + { + 'name': '英德市', + 'code': '441881' + }, + { + 'name': '连州市', + 'code': '441882' + } + ] + }, + { + 'name': '东莞市', + 'code': '441900', + 'children': [ + { + 'name': '东城街道', + 'code': '441900003' + }, + { + 'name': '南城街道', + 'code': '441900004' + }, + { + 'name': '万江街道', + 'code': '441900005' + }, + { + 'name': '莞城街道', + 'code': '441900006' + }, + { + 'name': '石碣镇', + 'code': '441900101' + }, + { + 'name': '石龙镇', + 'code': '441900102' + }, + { + 'name': '茶山镇', + 'code': '441900103' + }, + { + 'name': '石排镇', + 'code': '441900104' + }, + { + 'name': '企石镇', + 'code': '441900105' + }, + { + 'name': '横沥镇', + 'code': '441900106' + }, + { + 'name': '桥头镇', + 'code': '441900107' + }, + { + 'name': '谢岗镇', + 'code': '441900108' + }, + { + 'name': '东坑镇', + 'code': '441900109' + }, + { + 'name': '常平镇', + 'code': '441900110' + }, + { + 'name': '寮步镇', + 'code': '441900111' + }, + { + 'name': '樟木头镇', + 'code': '441900112' + }, + { + 'name': '大朗镇', + 'code': '441900113' + }, + { + 'name': '黄江镇', + 'code': '441900114' + }, + { + 'name': '清溪镇', + 'code': '441900115' + }, + { + 'name': '塘厦镇', + 'code': '441900116' + }, + { + 'name': '凤岗镇', + 'code': '441900117' + }, + { + 'name': '大岭山镇', + 'code': '441900118' + }, + { + 'name': '长安镇', + 'code': '441900119' + }, + { + 'name': '虎门镇', + 'code': '441900121' + }, + { + 'name': '厚街镇', + 'code': '441900122' + }, + { + 'name': '沙田镇', + 'code': '441900123' + }, + { + 'name': '道滘镇', + 'code': '441900124' + }, + { + 'name': '洪梅镇', + 'code': '441900125' + }, + { + 'name': '麻涌镇', + 'code': '441900126' + }, + { + 'name': '望牛墩镇', + 'code': '441900127' + }, + { + 'name': '中堂镇', + 'code': '441900128' + }, + { + 'name': '高埗镇', + 'code': '441900129' + }, + { + 'name': '松山湖', + 'code': '441900401' + }, + { + 'name': '东莞港', + 'code': '441900402' + }, + { + 'name': '东莞生态园', + 'code': '441900403' + } + ] + }, + { + 'name': '中山市', + 'code': '442000', + 'children': [ + { + 'name': '石岐街道', + 'code': '442000001' + }, + { + 'name': '东区街道', + 'code': '442000002' + }, + { + 'name': '中山港街道', + 'code': '442000003' + }, + { + 'name': '西区街道', + 'code': '442000004' + }, + { + 'name': '南区街道', + 'code': '442000005' + }, + { + 'name': '五桂山街道', + 'code': '442000006' + }, + { + 'name': '小榄镇', + 'code': '442000100' + }, + { + 'name': '黄圃镇', + 'code': '442000101' + }, + { + 'name': '民众镇', + 'code': '442000102' + }, + { + 'name': '东凤镇', + 'code': '442000103' + }, + { + 'name': '东升镇', + 'code': '442000104' + }, + { + 'name': '古镇镇', + 'code': '442000105' + }, + { + 'name': '沙溪镇', + 'code': '442000106' + }, + { + 'name': '坦洲镇', + 'code': '442000107' + }, + { + 'name': '港口镇', + 'code': '442000108' + }, + { + 'name': '三角镇', + 'code': '442000109' + }, + { + 'name': '横栏镇', + 'code': '442000110' + }, + { + 'name': '南头镇', + 'code': '442000111' + }, + { + 'name': '阜沙镇', + 'code': '442000112' + }, + { + 'name': '南朗镇', + 'code': '442000113' + }, + { + 'name': '三乡镇', + 'code': '442000114' + }, + { + 'name': '板芙镇', + 'code': '442000115' + }, + { + 'name': '大涌镇', + 'code': '442000116' + }, + { + 'name': '神湾镇', + 'code': '442000117' + } + ] + }, + { + 'name': '潮州市', + 'code': '445100', + 'children': [ + { + 'name': '湘桥区', + 'code': '445102' + }, + { + 'name': '潮安区', + 'code': '445103' + }, + { + 'name': '饶平县', + 'code': '445122' + } + ] + }, + { + 'name': '揭阳市', + 'code': '445200', + 'children': [ + { + 'name': '榕城区', + 'code': '445202' + }, + { + 'name': '揭东区', + 'code': '445203' + }, + { + 'name': '揭西县', + 'code': '445222' + }, + { + 'name': '惠来县', + 'code': '445224' + }, + { + 'name': '普宁市', + 'code': '445281' + } + ] + }, + { + 'name': '云浮市', + 'code': '445300', + 'children': [ + { + 'name': '云城区', + 'code': '445302' + }, + { + 'name': '云安区', + 'code': '445303' + }, + { + 'name': '新兴县', + 'code': '445321' + }, + { + 'name': '郁南县', + 'code': '445322' + }, + { + 'name': '罗定市', + 'code': '445381' + } + ] + } + ] + }, + { + 'name': '广西壮族自治区', + 'code': '450000', + 'region': 'south', + 'autonomousRegion': true, + 'children': [ + { + 'name': '南宁市', + 'code': '450100', + 'children': [ + { + 'name': '兴宁区', + 'code': '450102' + }, + { + 'name': '青秀区', + 'code': '450103' + }, + { + 'name': '江南区', + 'code': '450105' + }, + { + 'name': '西乡塘区', + 'code': '450107' + }, + { + 'name': '良庆区', + 'code': '450108' + }, + { + 'name': '邕宁区', + 'code': '450109' + }, + { + 'name': '武鸣区', + 'code': '450110' + }, + { + 'name': '隆安县', + 'code': '450123' + }, + { + 'name': '马山县', + 'code': '450124' + }, + { + 'name': '上林县', + 'code': '450125' + }, + { + 'name': '宾阳县', + 'code': '450126' + }, + { + 'name': '横县', + 'code': '450127' + } + ] + }, + { + 'name': '柳州市', + 'code': '450200', + 'children': [ + { + 'name': '城中区', + 'code': '450202' + }, + { + 'name': '鱼峰区', + 'code': '450203' + }, + { + 'name': '柳南区', + 'code': '450204' + }, + { + 'name': '柳北区', + 'code': '450205' + }, + { + 'name': '柳江区', + 'code': '450206' + }, + { + 'name': '柳城县', + 'code': '450222' + }, + { + 'name': '鹿寨县', + 'code': '450223' + }, + { + 'name': '融安县', + 'code': '450224' + }, + { + 'name': '融水苗族自治县', + 'code': '450225' + }, + { + 'name': '三江侗族自治县', + 'code': '450226' + } + ] + }, + { + 'name': '桂林市', + 'code': '450300', + 'children': [ + { + 'name': '秀峰区', + 'code': '450302' + }, + { + 'name': '叠彩区', + 'code': '450303' + }, + { + 'name': '象山区', + 'code': '450304' + }, + { + 'name': '七星区', + 'code': '450305' + }, + { + 'name': '雁山区', + 'code': '450311' + }, + { + 'name': '临桂区', + 'code': '450312' + }, + { + 'name': '阳朔县', + 'code': '450321' + }, + { + 'name': '灵川县', + 'code': '450323' + }, + { + 'name': '全州县', + 'code': '450324' + }, + { + 'name': '兴安县', + 'code': '450325' + }, + { + 'name': '永福县', + 'code': '450326' + }, + { + 'name': '灌阳县', + 'code': '450327' + }, + { + 'name': '龙胜各族自治县', + 'code': '450328' + }, + { + 'name': '资源县', + 'code': '450329' + }, + { + 'name': '平乐县', + 'code': '450330' + }, + { + 'name': '荔浦市', + 'code': '450381' + }, + { + 'name': '恭城瑶族自治县', + 'code': '450332' + } + ] + }, + { + 'name': '梧州市', + 'code': '450400', + 'children': [ + { + 'name': '万秀区', + 'code': '450403' + }, + { + 'name': '长洲区', + 'code': '450405' + }, + { + 'name': '龙圩区', + 'code': '450406' + }, + { + 'name': '苍梧县', + 'code': '450421' + }, + { + 'name': '藤县', + 'code': '450422' + }, + { + 'name': '蒙山县', + 'code': '450423' + }, + { + 'name': '岑溪市', + 'code': '450481' + } + ] + }, + { + 'name': '北海市', + 'code': '450500', + 'children': [ + { + 'name': '海城区', + 'code': '450502' + }, + { + 'name': '银海区', + 'code': '450503' + }, + { + 'name': '铁山港区', + 'code': '450512' + }, + { + 'name': '合浦县', + 'code': '450521' + } + ] + }, + { + 'name': '防城港市', + 'code': '450600', + 'children': [ + { + 'name': '港口区', + 'code': '450602' + }, + { + 'name': '防城区', + 'code': '450603' + }, + { + 'name': '上思县', + 'code': '450621' + }, + { + 'name': '东兴市', + 'code': '450681' + } + ] + }, + { + 'name': '钦州市', + 'code': '450700', + 'children': [ + { + 'name': '钦南区', + 'code': '450702' + }, + { + 'name': '钦北区', + 'code': '450703' + }, + { + 'name': '灵山县', + 'code': '450721' + }, + { + 'name': '浦北县', + 'code': '450722' + } + ] + }, + { + 'name': '贵港市', + 'code': '450800', + 'children': [ + { + 'name': '港北区', + 'code': '450802' + }, + { + 'name': '港南区', + 'code': '450803' + }, + { + 'name': '覃塘区', + 'code': '450804' + }, + { + 'name': '平南县', + 'code': '450821' + }, + { + 'name': '桂平市', + 'code': '450881' + } + ] + }, + { + 'name': '玉林市', + 'code': '450900', + 'children': [ + { + 'name': '玉州区', + 'code': '450902' + }, + { + 'name': '福绵区', + 'code': '450903' + }, + { + 'name': '容县', + 'code': '450921' + }, + { + 'name': '陆川县', + 'code': '450922' + }, + { + 'name': '博白县', + 'code': '450923' + }, + { + 'name': '兴业县', + 'code': '450924' + }, + { + 'name': '北流市', + 'code': '450981' + } + ] + }, + { + 'name': '百色市', + 'code': '451000', + 'children': [ + { + 'name': '右江区', + 'code': '451002' + }, + { + 'name': '田阳县', + 'code': '451021' + }, + { + 'name': '田东县', + 'code': '451022' + }, + { + 'name': '平果县', + 'code': '451023' + }, + { + 'name': '德保县', + 'code': '451024' + }, + { + 'name': '那坡县', + 'code': '451026' + }, + { + 'name': '凌云县', + 'code': '451027' + }, + { + 'name': '乐业县', + 'code': '451028' + }, + { + 'name': '田林县', + 'code': '451029' + }, + { + 'name': '西林县', + 'code': '451030' + }, + { + 'name': '隆林各族自治县', + 'code': '451031' + }, + { + 'name': '靖西市', + 'code': '451081' + } + ] + }, + { + 'name': '贺州市', + 'code': '451100', + 'children': [ + { + 'name': '八步区', + 'code': '451102' + }, + { + 'name': '平桂区', + 'code': '451103' + }, + { + 'name': '昭平县', + 'code': '451121' + }, + { + 'name': '钟山县', + 'code': '451122' + }, + { + 'name': '富川瑶族自治县', + 'code': '451123' + } + ] + }, + { + 'name': '河池市', + 'code': '451200', + 'children': [ + { + 'name': '金城江区', + 'code': '451202' + }, + { + 'name': '宜州区', + 'code': '451203' + }, + { + 'name': '南丹县', + 'code': '451221' + }, + { + 'name': '天峨县', + 'code': '451222' + }, + { + 'name': '凤山县', + 'code': '451223' + }, + { + 'name': '东兰县', + 'code': '451224' + }, + { + 'name': '罗城仫佬族自治县', + 'code': '451225' + }, + { + 'name': '环江毛南族自治县', + 'code': '451226' + }, + { + 'name': '巴马瑶族自治县', + 'code': '451227' + }, + { + 'name': '都安瑶族自治县', + 'code': '451228' + }, + { + 'name': '大化瑶族自治县', + 'code': '451229' + } + ] + }, + { + 'name': '来宾市', + 'code': '451300', + 'children': [ + { + 'name': '兴宾区', + 'code': '451302' + }, + { + 'name': '忻城县', + 'code': '451321' + }, + { + 'name': '象州县', + 'code': '451322' + }, + { + 'name': '武宣县', + 'code': '451323' + }, + { + 'name': '金秀瑶族自治县', + 'code': '451324' + }, + { + 'name': '合山市', + 'code': '451381' + } + ] + }, + { + 'name': '崇左市', + 'code': '451400', + 'children': [ + { + 'name': '江州区', + 'code': '451402' + }, + { + 'name': '扶绥县', + 'code': '451421' + }, + { + 'name': '宁明县', + 'code': '451422' + }, + { + 'name': '龙州县', + 'code': '451423' + }, + { + 'name': '大新县', + 'code': '451424' + }, + { + 'name': '天等县', + 'code': '451425' + }, + { + 'name': '凭祥市', + 'code': '451481' + } + ] + } + ] + }, + { + 'name': '海南省', + 'code': '460000', + 'region': 'south', + 'children': [ + { + 'name': '海口市', + 'code': '460100', + 'children': [ + { + 'name': '秀英区', + 'code': '460105' + }, + { + 'name': '龙华区', + 'code': '460106' + }, + { + 'name': '琼山区', + 'code': '460107' + }, + { + 'name': '美兰区', + 'code': '460108' + } + ] + }, + { + 'name': '三亚市', + 'code': '460200', + 'children': [ + { + 'name': '海棠区', + 'code': '460202' + }, + { + 'name': '吉阳区', + 'code': '460203' + }, + { + 'name': '天涯区', + 'code': '460204' + }, + { + 'name': '崖州区', + 'code': '460205' + } + ] + }, + { + 'name': '三沙市', + 'code': '460300', + 'children': [ + { + 'name': '西沙群岛', + 'code': '460321' + }, + { + 'name': '南沙群岛', + 'code': '460322' + }, + { + 'name': '中沙群岛的岛礁及其海域', + 'code': '460323' + } + ] + }, + { + 'name': '儋州市', + 'code': '460400', + 'children': [ + { + 'name': '那大镇', + 'code': '460400100' + }, + { + 'name': '和庆镇', + 'code': '460400101' + }, + { + 'name': '南丰镇', + 'code': '460400102' + }, + { + 'name': '大成镇', + 'code': '460400103' + }, + { + 'name': '雅星镇', + 'code': '460400104' + }, + { + 'name': '兰洋镇', + 'code': '460400105' + }, + { + 'name': '光村镇', + 'code': '460400106' + }, + { + 'name': '木棠镇', + 'code': '460400107' + }, + { + 'name': '海头镇', + 'code': '460400108' + }, + { + 'name': '峨蔓镇', + 'code': '460400109' + }, + { + 'name': '王五镇', + 'code': '460400111' + }, + { + 'name': '白马井镇', + 'code': '460400112' + }, + { + 'name': '中和镇', + 'code': '460400113' + }, + { + 'name': '排浦镇', + 'code': '460400114' + }, + { + 'name': '东成镇', + 'code': '460400115' + }, + { + 'name': '新州镇', + 'code': '460400116' + }, + { + 'name': '洋浦经济开发区', + 'code': '460400499' + }, + { + 'name': '华南热作学院', + 'code': '460400500' + } + ] + }, + { + 'name': '直辖县', + 'code': '469000', + 'children': [ + { + 'name': '五指山市', + 'code': '469001' + }, + { + 'name': '琼海市', + 'code': '469002' + }, + { + 'name': '文昌市', + 'code': '469005' + }, + { + 'name': '万宁市', + 'code': '469006' + }, + { + 'name': '东方市', + 'code': '469007' + }, + { + 'name': '定安县', + 'code': '469021' + }, + { + 'name': '屯昌县', + 'code': '469022' + }, + { + 'name': '澄迈县', + 'code': '469023' + }, + { + 'name': '临高县', + 'code': '469024' + }, + { + 'name': '白沙黎族自治县', + 'code': '469025' + }, + { + 'name': '昌江黎族自治县', + 'code': '469026' + }, + { + 'name': '乐东黎族自治县', + 'code': '469027' + }, + { + 'name': '陵水黎族自治县', + 'code': '469028' + }, + { + 'name': '保亭黎族苗族自治县', + 'code': '469029' + }, + { + 'name': '琼中黎族苗族自治县', + 'code': '469030' + } + ] + } + ] + }, + { + 'name': '重庆市', + 'code': '500000', + 'region': 'southwest', + 'provinceLevelCity': true, + 'children': [ + { + 'name': '市辖区', + 'code': '500100', + 'children': [ + { + 'name': '万州区', + 'code': '500101' + }, + { + 'name': '涪陵区', + 'code': '500102' + }, + { + 'name': '渝中区', + 'code': '500103' + }, + { + 'name': '大渡口区', + 'code': '500104' + }, + { + 'name': '江北区', + 'code': '500105' + }, + { + 'name': '沙坪坝区', + 'code': '500106' + }, + { + 'name': '九龙坡区', + 'code': '500107' + }, + { + 'name': '南岸区', + 'code': '500108' + }, + { + 'name': '北碚区', + 'code': '500109' + }, + { + 'name': '綦江区', + 'code': '500110' + }, + { + 'name': '大足区', + 'code': '500111' + }, + { + 'name': '渝北区', + 'code': '500112' + }, + { + 'name': '巴南区', + 'code': '500113' + }, + { + 'name': '黔江区', + 'code': '500114' + }, + { + 'name': '长寿区', + 'code': '500115' + }, + { + 'name': '江津区', + 'code': '500116' + }, + { + 'name': '合川区', + 'code': '500117' + }, + { + 'name': '永川区', + 'code': '500118' + }, + { + 'name': '南川区', + 'code': '500119' + }, + { + 'name': '璧山区', + 'code': '500120' + }, + { + 'name': '铜梁区', + 'code': '500151' + }, + { + 'name': '潼南区', + 'code': '500152' + }, + { + 'name': '荣昌区', + 'code': '500153' + }, + { + 'name': '开州区', + 'code': '500154' + }, + { + 'name': '梁平区', + 'code': '500155' + }, + { + 'name': '武隆区', + 'code': '500156' + } + ] + }, + { + 'name': '县辖区', + 'code': '500200', + 'children': [ + { + 'name': '城口县', + 'code': '500229' + }, + { + 'name': '丰都县', + 'code': '500230' + }, + { + 'name': '垫江县', + 'code': '500231' + }, + { + 'name': '忠县', + 'code': '500233' + }, + { + 'name': '云阳县', + 'code': '500235' + }, + { + 'name': '奉节县', + 'code': '500236' + }, + { + 'name': '巫山县', + 'code': '500237' + }, + { + 'name': '巫溪县', + 'code': '500238' + }, + { + 'name': '石柱土家族自治县', + 'code': '500240' + }, + { + 'name': '秀山土家族苗族自治县', + 'code': '500241' + }, + { + 'name': '酉阳土家族苗族自治县', + 'code': '500242' + }, + { + 'name': '彭水苗族土家族自治县', + 'code': '500243' + } + ] + } + ] + }, + { + 'name': '四川省', + 'code': '510000', + 'region': 'southwest', + 'children': [ + { + 'name': '成都市', + 'code': '510100', + 'children': [ + { + 'name': '锦江区', + 'code': '510104' + }, + { + 'name': '青羊区', + 'code': '510105' + }, + { + 'name': '金牛区', + 'code': '510106' + }, + { + 'name': '武侯区', + 'code': '510107' + }, + { + 'name': '成华区', + 'code': '510108' + }, + { + 'name': '龙泉驿区', + 'code': '510112' + }, + { + 'name': '青白江区', + 'code': '510113' + }, + { + 'name': '新都区', + 'code': '510114' + }, + { + 'name': '温江区', + 'code': '510115' + }, + { + 'name': '双流区', + 'code': '510116' + }, + { + 'name': '郫都区', + 'code': '510117' + }, + { + 'name': '金堂县', + 'code': '510121' + }, + { + 'name': '大邑县', + 'code': '510129' + }, + { + 'name': '蒲江县', + 'code': '510131' + }, + { + 'name': '新津县', + 'code': '510132' + }, + { + 'name': '都江堰市', + 'code': '510181' + }, + { + 'name': '彭州市', + 'code': '510182' + }, + { + 'name': '邛崃市', + 'code': '510183' + }, + { + 'name': '崇州市', + 'code': '510184' + }, + { + 'name': '简阳市', + 'code': '510185' + } + ] + }, + { + 'name': '自贡市', + 'code': '510300', + 'children': [ + { + 'name': '自流井区', + 'code': '510302' + }, + { + 'name': '贡井区', + 'code': '510303' + }, + { + 'name': '大安区', + 'code': '510304' + }, + { + 'name': '沿滩区', + 'code': '510311' + }, + { + 'name': '荣县', + 'code': '510321' + }, + { + 'name': '富顺县', + 'code': '510322' + } + ] + }, + { + 'name': '攀枝花市', + 'code': '510400', + 'children': [ + { + 'name': '东区', + 'code': '510402' + }, + { + 'name': '西区', + 'code': '510403' + }, + { + 'name': '仁和区', + 'code': '510411' + }, + { + 'name': '米易县', + 'code': '510421' + }, + { + 'name': '盐边县', + 'code': '510422' + } + ] + }, + { + 'name': '泸州市', + 'code': '510500', + 'children': [ + { + 'name': '江阳区', + 'code': '510502' + }, + { + 'name': '纳溪区', + 'code': '510503' + }, + { + 'name': '龙马潭区', + 'code': '510504' + }, + { + 'name': '泸县', + 'code': '510521' + }, + { + 'name': '合江县', + 'code': '510522' + }, + { + 'name': '叙永县', + 'code': '510524' + }, + { + 'name': '古蔺县', + 'code': '510525' + } + ] + }, + { + 'name': '德阳市', + 'code': '510600', + 'children': [ + { + 'name': '旌阳区', + 'code': '510603' + }, + { + 'name': '罗江区', + 'code': '510604' + }, + { + 'name': '中江县', + 'code': '510623' + }, + { + 'name': '广汉市', + 'code': '510681' + }, + { + 'name': '什邡市', + 'code': '510682' + }, + { + 'name': '绵竹市', + 'code': '510683' + } + ] + }, + { + 'name': '绵阳市', + 'code': '510700', + 'children': [ + { + 'name': '涪城区', + 'code': '510703' + }, + { + 'name': '游仙区', + 'code': '510704' + }, + { + 'name': '安州区', + 'code': '510705' + }, + { + 'name': '三台县', + 'code': '510722' + }, + { + 'name': '盐亭县', + 'code': '510723' + }, + { + 'name': '梓潼县', + 'code': '510725' + }, + { + 'name': '北川羌族自治县', + 'code': '510726' + }, + { + 'name': '平武县', + 'code': '510727' + }, + { + 'name': '江油市', + 'code': '510781' + } + ] + }, + { + 'name': '广元市', + 'code': '510800', + 'children': [ + { + 'name': '利州区', + 'code': '510802' + }, + { + 'name': '昭化区', + 'code': '510811' + }, + { + 'name': '朝天区', + 'code': '510812' + }, + { + 'name': '旺苍县', + 'code': '510821' + }, + { + 'name': '青川县', + 'code': '510822' + }, + { + 'name': '剑阁县', + 'code': '510823' + }, + { + 'name': '苍溪县', + 'code': '510824' + } + ] + }, + { + 'name': '遂宁市', + 'code': '510900', + 'children': [ + { + 'name': '船山区', + 'code': '510903' + }, + { + 'name': '安居区', + 'code': '510904' + }, + { + 'name': '蓬溪县', + 'code': '510921' + }, + { + 'name': '射洪县', + 'code': '510922' + }, + { + 'name': '大英县', + 'code': '510923' + } + ] + }, + { + 'name': '内江市', + 'code': '511000', + 'children': [ + { + 'name': '市中区', + 'code': '511002' + }, + { + 'name': '东兴区', + 'code': '511011' + }, + { + 'name': '威远县', + 'code': '511024' + }, + { + 'name': '资中县', + 'code': '511025' + }, + { + 'name': '隆昌市', + 'code': '511083' + } + ] + }, + { + 'name': '乐山市', + 'code': '511100', + 'children': [ + { + 'name': '市中区', + 'code': '511102' + }, + { + 'name': '沙湾区', + 'code': '511111' + }, + { + 'name': '五通桥区', + 'code': '511112' + }, + { + 'name': '金口河区', + 'code': '511113' + }, + { + 'name': '犍为县', + 'code': '511123' + }, + { + 'name': '井研县', + 'code': '511124' + }, + { + 'name': '夹江县', + 'code': '511126' + }, + { + 'name': '沐川县', + 'code': '511129' + }, + { + 'name': '峨边彝族自治县', + 'code': '511132' + }, + { + 'name': '马边彝族自治县', + 'code': '511133' + }, + { + 'name': '峨眉山市', + 'code': '511181' + } + ] + }, + { + 'name': '南充市', + 'code': '511300', + 'children': [ + { + 'name': '顺庆区', + 'code': '511302' + }, + { + 'name': '高坪区', + 'code': '511303' + }, + { + 'name': '嘉陵区', + 'code': '511304' + }, + { + 'name': '南部县', + 'code': '511321' + }, + { + 'name': '营山县', + 'code': '511322' + }, + { + 'name': '蓬安县', + 'code': '511323' + }, + { + 'name': '仪陇县', + 'code': '511324' + }, + { + 'name': '西充县', + 'code': '511325' + }, + { + 'name': '阆中市', + 'code': '511381' + } + ] + }, + { + 'name': '眉山市', + 'code': '511400', + 'children': [ + { + 'name': '东坡区', + 'code': '511402' + }, + { + 'name': '彭山区', + 'code': '511403' + }, + { + 'name': '仁寿县', + 'code': '511421' + }, + { + 'name': '洪雅县', + 'code': '511423' + }, + { + 'name': '丹棱县', + 'code': '511424' + }, + { + 'name': '青神县', + 'code': '511425' + } + ] + }, + { + 'name': '宜宾市', + 'code': '511500', + 'children': [ + { + 'name': '翠屏区', + 'code': '511502' + }, + { + 'name': '南溪区', + 'code': '511503' + }, + { + 'name': '叙州区', + 'code': '511504' + }, + { + 'name': '江安县', + 'code': '511523' + }, + { + 'name': '长宁县', + 'code': '511524' + }, + { + 'name': '高县', + 'code': '511525' + }, + { + 'name': '珙县', + 'code': '511526' + }, + { + 'name': '筠连县', + 'code': '511527' + }, + { + 'name': '兴文县', + 'code': '511528' + }, + { + 'name': '屏山县', + 'code': '511529' + } + ] + }, + { + 'name': '广安市', + 'code': '511600', + 'children': [ + { + 'name': '广安区', + 'code': '511602' + }, + { + 'name': '前锋区', + 'code': '511603' + }, + { + 'name': '岳池县', + 'code': '511621' + }, + { + 'name': '武胜县', + 'code': '511622' + }, + { + 'name': '邻水县', + 'code': '511623' + }, + { + 'name': '华蓥市', + 'code': '511681' + } + ] + }, + { + 'name': '达州市', + 'code': '511700', + 'children': [ + { + 'name': '通川区', + 'code': '511702' + }, + { + 'name': '达川区', + 'code': '511703' + }, + { + 'name': '宣汉县', + 'code': '511722' + }, + { + 'name': '开江县', + 'code': '511723' + }, + { + 'name': '大竹县', + 'code': '511724' + }, + { + 'name': '渠县', + 'code': '511725' + }, + { + 'name': '万源市', + 'code': '511781' + } + ] + }, + { + 'name': '雅安市', + 'code': '511800', + 'children': [ + { + 'name': '雨城区', + 'code': '511802' + }, + { + 'name': '名山区', + 'code': '511803' + }, + { + 'name': '荥经县', + 'code': '511822' + }, + { + 'name': '汉源县', + 'code': '511823' + }, + { + 'name': '石棉县', + 'code': '511824' + }, + { + 'name': '天全县', + 'code': '511825' + }, + { + 'name': '芦山县', + 'code': '511826' + }, + { + 'name': '宝兴县', + 'code': '511827' + } + ] + }, + { + 'name': '巴中市', + 'code': '511900', + 'children': [ + { + 'name': '巴州区', + 'code': '511902' + }, + { + 'name': '恩阳区', + 'code': '511903' + }, + { + 'name': '通江县', + 'code': '511921' + }, + { + 'name': '南江县', + 'code': '511922' + }, + { + 'name': '平昌县', + 'code': '511923' + } + ] + }, + { + 'name': '资阳市', + 'code': '512000', + 'children': [ + { + 'name': '雁江区', + 'code': '512002' + }, + { + 'name': '安岳县', + 'code': '512021' + }, + { + 'name': '乐至县', + 'code': '512022' + } + ] + }, + { + 'name': '阿坝藏族羌族自治州', + 'code': '513200', + 'children': [ + { + 'name': '马尔康市', + 'code': '513201' + }, + { + 'name': '汶川县', + 'code': '513221' + }, + { + 'name': '理县', + 'code': '513222' + }, + { + 'name': '茂县', + 'code': '513223' + }, + { + 'name': '松潘县', + 'code': '513224' + }, + { + 'name': '九寨沟县', + 'code': '513225' + }, + { + 'name': '金川县', + 'code': '513226' + }, + { + 'name': '小金县', + 'code': '513227' + }, + { + 'name': '黑水县', + 'code': '513228' + }, + { + 'name': '壤塘县', + 'code': '513230' + }, + { + 'name': '阿坝县', + 'code': '513231' + }, + { + 'name': '若尔盖县', + 'code': '513232' + }, + { + 'name': '红原县', + 'code': '513233' + } + ] + }, + { + 'name': '甘孜藏族自治州', + 'code': '513300', + 'children': [ + { + 'name': '康定市', + 'code': '513301' + }, + { + 'name': '泸定县', + 'code': '513322' + }, + { + 'name': '丹巴县', + 'code': '513323' + }, + { + 'name': '九龙县', + 'code': '513324' + }, + { + 'name': '雅江县', + 'code': '513325' + }, + { + 'name': '道孚县', + 'code': '513326' + }, + { + 'name': '炉霍县', + 'code': '513327' + }, + { + 'name': '甘孜县', + 'code': '513328' + }, + { + 'name': '新龙县', + 'code': '513329' + }, + { + 'name': '德格县', + 'code': '513330' + }, + { + 'name': '白玉县', + 'code': '513331' + }, + { + 'name': '石渠县', + 'code': '513332' + }, + { + 'name': '色达县', + 'code': '513333' + }, + { + 'name': '理塘县', + 'code': '513334' + }, + { + 'name': '巴塘县', + 'code': '513335' + }, + { + 'name': '乡城县', + 'code': '513336' + }, + { + 'name': '稻城县', + 'code': '513337' + }, + { + 'name': '得荣县', + 'code': '513338' + } + ] + }, + { + 'name': '凉山彝族自治州', + 'code': '513400', + 'children': [ + { + 'name': '西昌市', + 'code': '513401' + }, + { + 'name': '木里藏族自治县', + 'code': '513422' + }, + { + 'name': '盐源县', + 'code': '513423' + }, + { + 'name': '德昌县', + 'code': '513424' + }, + { + 'name': '会理县', + 'code': '513425' + }, + { + 'name': '会东县', + 'code': '513426' + }, + { + 'name': '宁南县', + 'code': '513427' + }, + { + 'name': '普格县', + 'code': '513428' + }, + { + 'name': '布拖县', + 'code': '513429' + }, + { + 'name': '金阳县', + 'code': '513430' + }, + { + 'name': '昭觉县', + 'code': '513431' + }, + { + 'name': '喜德县', + 'code': '513432' + }, + { + 'name': '冕宁县', + 'code': '513433' + }, + { + 'name': '越西县', + 'code': '513434' + }, + { + 'name': '甘洛县', + 'code': '513435' + }, + { + 'name': '美姑县', + 'code': '513436' + }, + { + 'name': '雷波县', + 'code': '513437' + } + ] + } + ] + }, + { + 'name': '贵州省', + 'code': '520000', + 'region': 'southwest', + 'children': [ + { + 'name': '贵阳市', + 'code': '520100', + 'children': [ + { + 'name': '南明区', + 'code': '520102' + }, + { + 'name': '云岩区', + 'code': '520103' + }, + { + 'name': '花溪区', + 'code': '520111' + }, + { + 'name': '乌当区', + 'code': '520112' + }, + { + 'name': '白云区', + 'code': '520113' + }, + { + 'name': '观山湖区', + 'code': '520115' + }, + { + 'name': '开阳县', + 'code': '520121' + }, + { + 'name': '息烽县', + 'code': '520122' + }, + { + 'name': '修文县', + 'code': '520123' + }, + { + 'name': '清镇市', + 'code': '520181' + } + ] + }, + { + 'name': '六盘水市', + 'code': '520200', + 'children': [ + { + 'name': '钟山区', + 'code': '520201' + }, + { + 'name': '六枝特区', + 'code': '520203' + }, + { + 'name': '水城县', + 'code': '520221' + }, + { + 'name': '盘州市', + 'code': '520281' + } + ] + }, + { + 'name': '遵义市', + 'code': '520300', + 'children': [ + { + 'name': '红花岗区', + 'code': '520302' + }, + { + 'name': '汇川区', + 'code': '520303' + }, + { + 'name': '播州区', + 'code': '520304' + }, + { + 'name': '桐梓县', + 'code': '520322' + }, + { + 'name': '绥阳县', + 'code': '520323' + }, + { + 'name': '正安县', + 'code': '520324' + }, + { + 'name': '道真仡佬族苗族自治县', + 'code': '520325' + }, + { + 'name': '务川仡佬族苗族自治县', + 'code': '520326' + }, + { + 'name': '凤冈县', + 'code': '520327' + }, + { + 'name': '湄潭县', + 'code': '520328' + }, + { + 'name': '余庆县', + 'code': '520329' + }, + { + 'name': '习水县', + 'code': '520330' + }, + { + 'name': '赤水市', + 'code': '520381' + }, + { + 'name': '仁怀市', + 'code': '520382' + } + ] + }, + { + 'name': '安顺市', + 'code': '520400', + 'children': [ + { + 'name': '西秀区', + 'code': '520402' + }, + { + 'name': '平坝区', + 'code': '520403' + }, + { + 'name': '普定县', + 'code': '520422' + }, + { + 'name': '镇宁布依族苗族自治县', + 'code': '520423' + }, + { + 'name': '关岭布依族苗族自治县', + 'code': '520424' + }, + { + 'name': '紫云苗族布依族自治县', + 'code': '520425' + } + ] + }, + { + 'name': '毕节市', + 'code': '520500', + 'children': [ + { + 'name': '七星关区', + 'code': '520502' + }, + { + 'name': '大方县', + 'code': '520521' + }, + { + 'name': '黔西县', + 'code': '520522' + }, + { + 'name': '金沙县', + 'code': '520523' + }, + { + 'name': '织金县', + 'code': '520524' + }, + { + 'name': '纳雍县', + 'code': '520525' + }, + { + 'name': '威宁彝族回族苗族自治县', + 'code': '520526' + }, + { + 'name': '赫章县', + 'code': '520527' + } + ] + }, + { + 'name': '铜仁市', + 'code': '520600', + 'children': [ + { + 'name': '碧江区', + 'code': '520602' + }, + { + 'name': '万山区', + 'code': '520603' + }, + { + 'name': '江口县', + 'code': '520621' + }, + { + 'name': '玉屏侗族自治县', + 'code': '520622' + }, + { + 'name': '石阡县', + 'code': '520623' + }, + { + 'name': '思南县', + 'code': '520624' + }, + { + 'name': '印江土家族苗族自治县', + 'code': '520625' + }, + { + 'name': '德江县', + 'code': '520626' + }, + { + 'name': '沿河土家族自治县', + 'code': '520627' + }, + { + 'name': '松桃苗族自治县', + 'code': '520628' + } + ] + }, + { + 'name': '黔西南布依族苗族自治州', + 'code': '522300', + 'children': [ + { + 'name': '兴义市', + 'code': '522301' + }, + { + 'name': '兴仁市', + 'code': '522302' + }, + { + 'name': '普安县', + 'code': '522323' + }, + { + 'name': '晴隆县', + 'code': '522324' + }, + { + 'name': '贞丰县', + 'code': '522325' + }, + { + 'name': '望谟县', + 'code': '522326' + }, + { + 'name': '册亨县', + 'code': '522327' + }, + { + 'name': '安龙县', + 'code': '522328' + } + ] + }, + { + 'name': '黔东南苗族侗族自治州', + 'code': '522600', + 'children': [ + { + 'name': '凯里市', + 'code': '522601' + }, + { + 'name': '黄平县', + 'code': '522622' + }, + { + 'name': '施秉县', + 'code': '522623' + }, + { + 'name': '三穗县', + 'code': '522624' + }, + { + 'name': '镇远县', + 'code': '522625' + }, + { + 'name': '岑巩县', + 'code': '522626' + }, + { + 'name': '天柱县', + 'code': '522627' + }, + { + 'name': '锦屏县', + 'code': '522628' + }, + { + 'name': '剑河县', + 'code': '522629' + }, + { + 'name': '台江县', + 'code': '522630' + }, + { + 'name': '黎平县', + 'code': '522631' + }, + { + 'name': '榕江县', + 'code': '522632' + }, + { + 'name': '从江县', + 'code': '522633' + }, + { + 'name': '雷山县', + 'code': '522634' + }, + { + 'name': '麻江县', + 'code': '522635' + }, + { + 'name': '丹寨县', + 'code': '522636' + } + ] + }, + { + 'name': '黔南布依族苗族自治州', + 'code': '522700', + 'children': [ + { + 'name': '都匀市', + 'code': '522701' + }, + { + 'name': '福泉市', + 'code': '522702' + }, + { + 'name': '荔波县', + 'code': '522722' + }, + { + 'name': '贵定县', + 'code': '522723' + }, + { + 'name': '瓮安县', + 'code': '522725' + }, + { + 'name': '独山县', + 'code': '522726' + }, + { + 'name': '平塘县', + 'code': '522727' + }, + { + 'name': '罗甸县', + 'code': '522728' + }, + { + 'name': '长顺县', + 'code': '522729' + }, + { + 'name': '龙里县', + 'code': '522730' + }, + { + 'name': '惠水县', + 'code': '522731' + }, + { + 'name': '三都水族自治县', + 'code': '522732' + } + ] + } + ] + }, + { + 'name': '云南省', + 'code': '530000', + 'region': 'southwest', + 'children': [ + { + 'name': '昆明市', + 'code': '530100', + 'children': [ + { + 'name': '五华区', + 'code': '530102' + }, + { + 'name': '盘龙区', + 'code': '530103' + }, + { + 'name': '官渡区', + 'code': '530111' + }, + { + 'name': '西山区', + 'code': '530112' + }, + { + 'name': '东川区', + 'code': '530113' + }, + { + 'name': '呈贡区', + 'code': '530114' + }, + { + 'name': '晋宁区', + 'code': '530115' + }, + { + 'name': '富民县', + 'code': '530124' + }, + { + 'name': '宜良县', + 'code': '530125' + }, + { + 'name': '石林彝族自治县', + 'code': '530126' + }, + { + 'name': '嵩明县', + 'code': '530127' + }, + { + 'name': '禄劝彝族苗族自治县', + 'code': '530128' + }, + { + 'name': '寻甸回族彝族自治县', + 'code': '530129' + }, + { + 'name': '安宁市', + 'code': '530181' + } + ] + }, + { + 'name': '曲靖市', + 'code': '530300', + 'children': [ + { + 'name': '麒麟区', + 'code': '530302' + }, + { + 'name': '沾益区', + 'code': '530303' + }, + { + 'name': '马龙区', + 'code': '530304' + }, + { + 'name': '陆良县', + 'code': '530322' + }, + { + 'name': '师宗县', + 'code': '530323' + }, + { + 'name': '罗平县', + 'code': '530324' + }, + { + 'name': '富源县', + 'code': '530325' + }, + { + 'name': '会泽县', + 'code': '530326' + }, + { + 'name': '宣威市', + 'code': '530381' + } + ] + }, + { + 'name': '玉溪市', + 'code': '530400', + 'children': [ + { + 'name': '红塔区', + 'code': '530402' + }, + { + 'name': '江川区', + 'code': '530403' + }, + { + 'name': '澄江县', + 'code': '530422' + }, + { + 'name': '通海县', + 'code': '530423' + }, + { + 'name': '华宁县', + 'code': '530424' + }, + { + 'name': '易门县', + 'code': '530425' + }, + { + 'name': '峨山彝族自治县', + 'code': '530426' + }, + { + 'name': '新平彝族傣族自治县', + 'code': '530427' + }, + { + 'name': '元江哈尼族彝族傣族自治县', + 'code': '530428' + } + ] + }, + { + 'name': '保山市', + 'code': '530500', + 'children': [ + { + 'name': '隆阳区', + 'code': '530502' + }, + { + 'name': '施甸县', + 'code': '530521' + }, + { + 'name': '龙陵县', + 'code': '530523' + }, + { + 'name': '昌宁县', + 'code': '530524' + }, + { + 'name': '腾冲市', + 'code': '530581' + } + ] + }, + { + 'name': '昭通市', + 'code': '530600', + 'children': [ + { + 'name': '昭阳区', + 'code': '530602' + }, + { + 'name': '鲁甸县', + 'code': '530621' + }, + { + 'name': '巧家县', + 'code': '530622' + }, + { + 'name': '盐津县', + 'code': '530623' + }, + { + 'name': '大关县', + 'code': '530624' + }, + { + 'name': '永善县', + 'code': '530625' + }, + { + 'name': '绥江县', + 'code': '530626' + }, + { + 'name': '镇雄县', + 'code': '530627' + }, + { + 'name': '彝良县', + 'code': '530628' + }, + { + 'name': '威信县', + 'code': '530629' + }, + { + 'name': '水富市', + 'code': '530681' + } + ] + }, + { + 'name': '丽江市', + 'code': '530700', + 'children': [ + { + 'name': '古城区', + 'code': '530702' + }, + { + 'name': '玉龙纳西族自治县', + 'code': '530721' + }, + { + 'name': '永胜县', + 'code': '530722' + }, + { + 'name': '华坪县', + 'code': '530723' + }, + { + 'name': '宁蒗彝族自治县', + 'code': '530724' + } + ] + }, + { + 'name': '普洱市', + 'code': '530800', + 'children': [ + { + 'name': '思茅区', + 'code': '530802' + }, + { + 'name': '宁洱哈尼族彝族自治县', + 'code': '530821' + }, + { + 'name': '墨江哈尼族自治县', + 'code': '530822' + }, + { + 'name': '景东彝族自治县', + 'code': '530823' + }, + { + 'name': '景谷傣族彝族自治县', + 'code': '530824' + }, + { + 'name': '镇沅彝族哈尼族拉祜族自治县', + 'code': '530825' + }, + { + 'name': '江城哈尼族彝族自治县', + 'code': '530826' + }, + { + 'name': '孟连傣族拉祜族佤族自治县', + 'code': '530827' + }, + { + 'name': '澜沧拉祜族自治县', + 'code': '530828' + }, + { + 'name': '西盟佤族自治县', + 'code': '530829' + } + ] + }, + { + 'name': '临沧市', + 'code': '530900', + 'children': [ + { + 'name': '临翔区', + 'code': '530902' + }, + { + 'name': '凤庆县', + 'code': '530921' + }, + { + 'name': '云县', + 'code': '530922' + }, + { + 'name': '永德县', + 'code': '530923' + }, + { + 'name': '镇康县', + 'code': '530924' + }, + { + 'name': '双江拉祜族佤族布朗族傣族自治县', + 'code': '530925' + }, + { + 'name': '耿马傣族佤族自治县', + 'code': '530926' + }, + { + 'name': '沧源佤族自治县', + 'code': '530927' + } + ] + }, + { + 'name': '楚雄彝族自治州', + 'code': '532300', + 'children': [ + { + 'name': '楚雄市', + 'code': '532301' + }, + { + 'name': '双柏县', + 'code': '532322' + }, + { + 'name': '牟定县', + 'code': '532323' + }, + { + 'name': '南华县', + 'code': '532324' + }, + { + 'name': '姚安县', + 'code': '532325' + }, + { + 'name': '大姚县', + 'code': '532326' + }, + { + 'name': '永仁县', + 'code': '532327' + }, + { + 'name': '元谋县', + 'code': '532328' + }, + { + 'name': '武定县', + 'code': '532329' + }, + { + 'name': '禄丰县', + 'code': '532331' + } + ] + }, + { + 'name': '红河哈尼族彝族自治州', + 'code': '532500', + 'children': [ + { + 'name': '个旧市', + 'code': '532501' + }, + { + 'name': '开远市', + 'code': '532502' + }, + { + 'name': '蒙自市', + 'code': '532503' + }, + { + 'name': '弥勒市', + 'code': '532504' + }, + { + 'name': '屏边苗族自治县', + 'code': '532523' + }, + { + 'name': '建水县', + 'code': '532524' + }, + { + 'name': '石屏县', + 'code': '532525' + }, + { + 'name': '泸西县', + 'code': '532527' + }, + { + 'name': '元阳县', + 'code': '532528' + }, + { + 'name': '红河县', + 'code': '532529' + }, + { + 'name': '金平苗族瑶族傣族自治县', + 'code': '532530' + }, + { + 'name': '绿春县', + 'code': '532531' + }, + { + 'name': '河口瑶族自治县', + 'code': '532532' + } + ] + }, + { + 'name': '文山壮族苗族自治州', + 'code': '532600', + 'children': [ + { + 'name': '文山市', + 'code': '532601' + }, + { + 'name': '砚山县', + 'code': '532622' + }, + { + 'name': '西畴县', + 'code': '532623' + }, + { + 'name': '麻栗坡县', + 'code': '532624' + }, + { + 'name': '马关县', + 'code': '532625' + }, + { + 'name': '丘北县', + 'code': '532626' + }, + { + 'name': '广南县', + 'code': '532627' + }, + { + 'name': '富宁县', + 'code': '532628' + } + ] + }, + { + 'name': '西双版纳傣族自治州', + 'code': '532800', + 'children': [ + { + 'name': '景洪市', + 'code': '532801' + }, + { + 'name': '勐海县', + 'code': '532822' + }, + { + 'name': '勐腊县', + 'code': '532823' + } + ] + }, + { + 'name': '大理白族自治州', + 'code': '532900', + 'children': [ + { + 'name': '大理市', + 'code': '532901' + }, + { + 'name': '漾濞彝族自治县', + 'code': '532922' + }, + { + 'name': '祥云县', + 'code': '532923' + }, + { + 'name': '宾川县', + 'code': '532924' + }, + { + 'name': '弥渡县', + 'code': '532925' + }, + { + 'name': '南涧彝族自治县', + 'code': '532926' + }, + { + 'name': '巍山彝族回族自治县', + 'code': '532927' + }, + { + 'name': '永平县', + 'code': '532928' + }, + { + 'name': '云龙县', + 'code': '532929' + }, + { + 'name': '洱源县', + 'code': '532930' + }, + { + 'name': '剑川县', + 'code': '532931' + }, + { + 'name': '鹤庆县', + 'code': '532932' + } + ] + }, + { + 'name': '德宏傣族景颇族自治州', + 'code': '533100', + 'children': [ + { + 'name': '瑞丽市', + 'code': '533102' + }, + { + 'name': '芒市', + 'code': '533103' + }, + { + 'name': '梁河县', + 'code': '533122' + }, + { + 'name': '盈江县', + 'code': '533123' + }, + { + 'name': '陇川县', + 'code': '533124' + } + ] + }, + { + 'name': '怒江傈僳族自治州', + 'code': '533300', + 'children': [ + { + 'name': '泸水市', + 'code': '533301' + }, + { + 'name': '福贡县', + 'code': '533323' + }, + { + 'name': '贡山独龙族怒族自治县', + 'code': '533324' + }, + { + 'name': '兰坪白族普米族自治县', + 'code': '533325' + } + ] + }, + { + 'name': '迪庆藏族自治州', + 'code': '533400', + 'children': [ + { + 'name': '香格里拉市', + 'code': '533401' + }, + { + 'name': '德钦县', + 'code': '533422' + }, + { + 'name': '维西傈僳族自治县', + 'code': '533423' + } + ] + } + ] + }, + { + 'name': '西藏自治区', + 'code': '540000', + 'region': 'southwest', + 'autonomousRegion': true, + 'children': [ + { + 'name': '拉萨市', + 'code': '540100', + 'children': [ + { + 'name': '城关区', + 'code': '540102' + }, + { + 'name': '堆龙德庆区', + 'code': '540103' + }, + { + 'name': '达孜区', + 'code': '540104' + }, + { + 'name': '林周县', + 'code': '540121' + }, + { + 'name': '当雄县', + 'code': '540122' + }, + { + 'name': '尼木县', + 'code': '540123' + }, + { + 'name': '曲水县', + 'code': '540124' + }, + { + 'name': '墨竹工卡县', + 'code': '540127' + } + ] + }, + { + 'name': '日喀则市', + 'code': '540200', + 'children': [ + { + 'name': '桑珠孜区', + 'code': '540202' + }, + { + 'name': '南木林县', + 'code': '540221' + }, + { + 'name': '江孜县', + 'code': '540222' + }, + { + 'name': '定日县', + 'code': '540223' + }, + { + 'name': '萨迦县', + 'code': '540224' + }, + { + 'name': '拉孜县', + 'code': '540225' + }, + { + 'name': '昂仁县', + 'code': '540226' + }, + { + 'name': '谢通门县', + 'code': '540227' + }, + { + 'name': '白朗县', + 'code': '540228' + }, + { + 'name': '仁布县', + 'code': '540229' + }, + { + 'name': '康马县', + 'code': '540230' + }, + { + 'name': '定结县', + 'code': '540231' + }, + { + 'name': '仲巴县', + 'code': '540232' + }, + { + 'name': '亚东县', + 'code': '540233' + }, + { + 'name': '吉隆县', + 'code': '540234' + }, + { + 'name': '聂拉木县', + 'code': '540235' + }, + { + 'name': '萨嘎县', + 'code': '540236' + }, + { + 'name': '岗巴县', + 'code': '540237' + } + ] + }, + { + 'name': '昌都市', + 'code': '540300', + 'children': [ + { + 'name': '卡若区', + 'code': '540302' + }, + { + 'name': '江达县', + 'code': '540321' + }, + { + 'name': '贡觉县', + 'code': '540322' + }, + { + 'name': '类乌齐县', + 'code': '540323' + }, + { + 'name': '丁青县', + 'code': '540324' + }, + { + 'name': '察雅县', + 'code': '540325' + }, + { + 'name': '八宿县', + 'code': '540326' + }, + { + 'name': '左贡县', + 'code': '540327' + }, + { + 'name': '芒康县', + 'code': '540328' + }, + { + 'name': '洛隆县', + 'code': '540329' + }, + { + 'name': '边坝县', + 'code': '540330' + } + ] + }, + { + 'name': '林芝市', + 'code': '540400', + 'children': [ + { + 'name': '巴宜区', + 'code': '540402' + }, + { + 'name': '工布江达县', + 'code': '540421' + }, + { + 'name': '米林县', + 'code': '540422' + }, + { + 'name': '墨脱县', + 'code': '540423' + }, + { + 'name': '波密县', + 'code': '540424' + }, + { + 'name': '察隅县', + 'code': '540425' + }, + { + 'name': '朗县', + 'code': '540426' + } + ] + }, + { + 'name': '山南市', + 'code': '540500', + 'children': [ + { + 'name': '乃东区', + 'code': '540502' + }, + { + 'name': '扎囊县', + 'code': '540521' + }, + { + 'name': '贡嘎县', + 'code': '540522' + }, + { + 'name': '桑日县', + 'code': '540523' + }, + { + 'name': '琼结县', + 'code': '540524' + }, + { + 'name': '曲松县', + 'code': '540525' + }, + { + 'name': '措美县', + 'code': '540526' + }, + { + 'name': '洛扎县', + 'code': '540527' + }, + { + 'name': '加查县', + 'code': '540528' + }, + { + 'name': '隆子县', + 'code': '540529' + }, + { + 'name': '错那县', + 'code': '540530' + }, + { + 'name': '浪卡子县', + 'code': '540531' + } + ] + }, + { + 'name': '那曲市', + 'code': '540600', + 'children': [ + { + 'name': '色尼区', + 'code': '540602' + }, + { + 'name': '嘉黎县', + 'code': '540621' + }, + { + 'name': '比如县', + 'code': '540622' + }, + { + 'name': '聂荣县', + 'code': '540623' + }, + { + 'name': '安多县', + 'code': '540624' + }, + { + 'name': '申扎县', + 'code': '540625' + }, + { + 'name': '索县', + 'code': '540626' + }, + { + 'name': '班戈县', + 'code': '540627' + }, + { + 'name': '巴青县', + 'code': '540628' + }, + { + 'name': '尼玛县', + 'code': '540629' + }, + { + 'name': '双湖县', + 'code': '540630' + } + ] + }, + { + 'name': '阿里地区', + 'code': '542500', + 'children': [ + { + 'name': '普兰县', + 'code': '542521' + }, + { + 'name': '札达县', + 'code': '542522' + }, + { + 'name': '噶尔县', + 'code': '542523' + }, + { + 'name': '日土县', + 'code': '542524' + }, + { + 'name': '革吉县', + 'code': '542525' + }, + { + 'name': '改则县', + 'code': '542526' + }, + { + 'name': '措勤县', + 'code': '542527' + } + ] + } + ] + }, + { + 'name': '陕西省', + 'code': '610000', + 'region': 'northwest', + 'children': [ + { + 'name': '西安市', + 'code': '610100', + 'children': [ + { + 'name': '新城区', + 'code': '610102' + }, + { + 'name': '碑林区', + 'code': '610103' + }, + { + 'name': '莲湖区', + 'code': '610104' + }, + { + 'name': '灞桥区', + 'code': '610111' + }, + { + 'name': '未央区', + 'code': '610112' + }, + { + 'name': '雁塔区', + 'code': '610113' + }, + { + 'name': '阎良区', + 'code': '610114' + }, + { + 'name': '临潼区', + 'code': '610115' + }, + { + 'name': '长安区', + 'code': '610116' + }, + { + 'name': '高陵区', + 'code': '610117' + }, + { + 'name': '鄠邑区', + 'code': '610118' + }, + { + 'name': '蓝田县', + 'code': '610122' + }, + { + 'name': '周至县', + 'code': '610124' + } + ] + }, + { + 'name': '铜川市', + 'code': '610200', + 'children': [ + { + 'name': '王益区', + 'code': '610202' + }, + { + 'name': '印台区', + 'code': '610203' + }, + { + 'name': '耀州区', + 'code': '610204' + }, + { + 'name': '宜君县', + 'code': '610222' + } + ] + }, + { + 'name': '宝鸡市', + 'code': '610300', + 'children': [ + { + 'name': '渭滨区', + 'code': '610302' + }, + { + 'name': '金台区', + 'code': '610303' + }, + { + 'name': '陈仓区', + 'code': '610304' + }, + { + 'name': '凤翔县', + 'code': '610322' + }, + { + 'name': '岐山县', + 'code': '610323' + }, + { + 'name': '扶风县', + 'code': '610324' + }, + { + 'name': '眉县', + 'code': '610326' + }, + { + 'name': '陇县', + 'code': '610327' + }, + { + 'name': '千阳县', + 'code': '610328' + }, + { + 'name': '麟游县', + 'code': '610329' + }, + { + 'name': '凤县', + 'code': '610330' + }, + { + 'name': '太白县', + 'code': '610331' + } + ] + }, + { + 'name': '咸阳市', + 'code': '610400', + 'children': [ + { + 'name': '秦都区', + 'code': '610402' + }, + { + 'name': '杨陵区', + 'code': '610403' + }, + { + 'name': '渭城区', + 'code': '610404' + }, + { + 'name': '三原县', + 'code': '610422' + }, + { + 'name': '泾阳县', + 'code': '610423' + }, + { + 'name': '乾县', + 'code': '610424' + }, + { + 'name': '礼泉县', + 'code': '610425' + }, + { + 'name': '永寿县', + 'code': '610426' + }, + { + 'name': '长武县', + 'code': '610428' + }, + { + 'name': '旬邑县', + 'code': '610429' + }, + { + 'name': '淳化县', + 'code': '610430' + }, + { + 'name': '武功县', + 'code': '610431' + }, + { + 'name': '兴平市', + 'code': '610481' + }, + { + 'name': '彬州市', + 'code': '610482' + } + ] + }, + { + 'name': '渭南市', + 'code': '610500', + 'children': [ + { + 'name': '临渭区', + 'code': '610502' + }, + { + 'name': '华州区', + 'code': '610503' + }, + { + 'name': '潼关县', + 'code': '610522' + }, + { + 'name': '大荔县', + 'code': '610523' + }, + { + 'name': '合阳县', + 'code': '610524' + }, + { + 'name': '澄城县', + 'code': '610525' + }, + { + 'name': '蒲城县', + 'code': '610526' + }, + { + 'name': '白水县', + 'code': '610527' + }, + { + 'name': '富平县', + 'code': '610528' + }, + { + 'name': '韩城市', + 'code': '610581' + }, + { + 'name': '华阴市', + 'code': '610582' + } + ] + }, + { + 'name': '延安市', + 'code': '610600', + 'children': [ + { + 'name': '宝塔区', + 'code': '610602' + }, + { + 'name': '安塞区', + 'code': '610603' + }, + { + 'name': '延长县', + 'code': '610621' + }, + { + 'name': '延川县', + 'code': '610622' + }, + { + 'name': '子长县', + 'code': '610623' + }, + { + 'name': '志丹县', + 'code': '610625' + }, + { + 'name': '吴起县', + 'code': '610626' + }, + { + 'name': '甘泉县', + 'code': '610627' + }, + { + 'name': '富县', + 'code': '610628' + }, + { + 'name': '洛川县', + 'code': '610629' + }, + { + 'name': '宜川县', + 'code': '610630' + }, + { + 'name': '黄龙县', + 'code': '610631' + }, + { + 'name': '黄陵县', + 'code': '610632' + } + ] + }, + { + 'name': '汉中市', + 'code': '610700', + 'children': [ + { + 'name': '汉台区', + 'code': '610702' + }, + { + 'name': '南郑区', + 'code': '610703' + }, + { + 'name': '城固县', + 'code': '610722' + }, + { + 'name': '洋县', + 'code': '610723' + }, + { + 'name': '西乡县', + 'code': '610724' + }, + { + 'name': '勉县', + 'code': '610725' + }, + { + 'name': '宁强县', + 'code': '610726' + }, + { + 'name': '略阳县', + 'code': '610727' + }, + { + 'name': '镇巴县', + 'code': '610728' + }, + { + 'name': '留坝县', + 'code': '610729' + }, + { + 'name': '佛坪县', + 'code': '610730' + } + ] + }, + { + 'name': '榆林市', + 'code': '610800', + 'children': [ + { + 'name': '榆阳区', + 'code': '610802' + }, + { + 'name': '横山区', + 'code': '610803' + }, + { + 'name': '府谷县', + 'code': '610822' + }, + { + 'name': '靖边县', + 'code': '610824' + }, + { + 'name': '定边县', + 'code': '610825' + }, + { + 'name': '绥德县', + 'code': '610826' + }, + { + 'name': '米脂县', + 'code': '610827' + }, + { + 'name': '佳县', + 'code': '610828' + }, + { + 'name': '吴堡县', + 'code': '610829' + }, + { + 'name': '清涧县', + 'code': '610830' + }, + { + 'name': '子洲县', + 'code': '610831' + }, + { + 'name': '神木市', + 'code': '610881' + } + ] + }, + { + 'name': '安康市', + 'code': '610900', + 'children': [ + { + 'name': '汉滨区', + 'code': '610902' + }, + { + 'name': '汉阴县', + 'code': '610921' + }, + { + 'name': '石泉县', + 'code': '610922' + }, + { + 'name': '宁陕县', + 'code': '610923' + }, + { + 'name': '紫阳县', + 'code': '610924' + }, + { + 'name': '岚皋县', + 'code': '610925' + }, + { + 'name': '平利县', + 'code': '610926' + }, + { + 'name': '镇坪县', + 'code': '610927' + }, + { + 'name': '旬阳县', + 'code': '610928' + }, + { + 'name': '白河县', + 'code': '610929' + } + ] + }, + { + 'name': '商洛市', + 'code': '611000', + 'children': [ + { + 'name': '商州区', + 'code': '611002' + }, + { + 'name': '洛南县', + 'code': '611021' + }, + { + 'name': '丹凤县', + 'code': '611022' + }, + { + 'name': '商南县', + 'code': '611023' + }, + { + 'name': '山阳县', + 'code': '611024' + }, + { + 'name': '镇安县', + 'code': '611025' + }, + { + 'name': '柞水县', + 'code': '611026' + } + ] + } + ] + }, + { + 'name': '甘肃省', + 'code': '620000', + 'region': 'northwest', + 'children': [ + { + 'name': '兰州市', + 'code': '620100', + 'children': [ + { + 'name': '城关区', + 'code': '620102' + }, + { + 'name': '七里河区', + 'code': '620103' + }, + { + 'name': '西固区', + 'code': '620104' + }, + { + 'name': '安宁区', + 'code': '620105' + }, + { + 'name': '红古区', + 'code': '620111' + }, + { + 'name': '永登县', + 'code': '620121' + }, + { + 'name': '皋兰县', + 'code': '620122' + }, + { + 'name': '榆中县', + 'code': '620123' + } + ] + }, + { + 'name': '嘉峪关市', + 'code': '620200', + 'children': [ + { + 'name': '市辖区', + 'code': '620201' + } + ] + }, + { + 'name': '金昌市', + 'code': '620300', + 'children': [ + { + 'name': '金川区', + 'code': '620302' + }, + { + 'name': '永昌县', + 'code': '620321' + } + ] + }, + { + 'name': '白银市', + 'code': '620400', + 'children': [ + { + 'name': '白银区', + 'code': '620402' + }, + { + 'name': '平川区', + 'code': '620403' + }, + { + 'name': '靖远县', + 'code': '620421' + }, + { + 'name': '会宁县', + 'code': '620422' + }, + { + 'name': '景泰县', + 'code': '620423' + } + ] + }, + { + 'name': '天水市', + 'code': '620500', + 'children': [ + { + 'name': '秦州区', + 'code': '620502' + }, + { + 'name': '麦积区', + 'code': '620503' + }, + { + 'name': '清水县', + 'code': '620521' + }, + { + 'name': '秦安县', + 'code': '620522' + }, + { + 'name': '甘谷县', + 'code': '620523' + }, + { + 'name': '武山县', + 'code': '620524' + }, + { + 'name': '张家川回族自治县', + 'code': '620525' + } + ] + }, + { + 'name': '武威市', + 'code': '620600', + 'children': [ + { + 'name': '凉州区', + 'code': '620602' + }, + { + 'name': '民勤县', + 'code': '620621' + }, + { + 'name': '古浪县', + 'code': '620622' + }, + { + 'name': '天祝藏族自治县', + 'code': '620623' + } + ] + }, + { + 'name': '张掖市', + 'code': '620700', + 'children': [ + { + 'name': '甘州区', + 'code': '620702' + }, + { + 'name': '肃南裕固族自治县', + 'code': '620721' + }, + { + 'name': '民乐县', + 'code': '620722' + }, + { + 'name': '临泽县', + 'code': '620723' + }, + { + 'name': '高台县', + 'code': '620724' + }, + { + 'name': '山丹县', + 'code': '620725' + } + ] + }, + { + 'name': '平凉市', + 'code': '620800', + 'children': [ + { + 'name': '崆峒区', + 'code': '620802' + }, + { + 'name': '泾川县', + 'code': '620821' + }, + { + 'name': '灵台县', + 'code': '620822' + }, + { + 'name': '崇信县', + 'code': '620823' + }, + { + 'name': '庄浪县', + 'code': '620825' + }, + { + 'name': '静宁县', + 'code': '620826' + }, + { + 'name': '华亭市', + 'code': '620881' + } + ] + }, + { + 'name': '酒泉市', + 'code': '620900', + 'children': [ + { + 'name': '肃州区', + 'code': '620902' + }, + { + 'name': '金塔县', + 'code': '620921' + }, + { + 'name': '瓜州县', + 'code': '620922' + }, + { + 'name': '肃北蒙古族自治县', + 'code': '620923' + }, + { + 'name': '阿克塞哈萨克族自治县', + 'code': '620924' + }, + { + 'name': '玉门市', + 'code': '620981' + }, + { + 'name': '敦煌市', + 'code': '620982' + } + ] + }, + { + 'name': '庆阳市', + 'code': '621000', + 'children': [ + { + 'name': '西峰区', + 'code': '621002' + }, + { + 'name': '庆城县', + 'code': '621021' + }, + { + 'name': '环县', + 'code': '621022' + }, + { + 'name': '华池县', + 'code': '621023' + }, + { + 'name': '合水县', + 'code': '621024' + }, + { + 'name': '正宁县', + 'code': '621025' + }, + { + 'name': '宁县', + 'code': '621026' + }, + { + 'name': '镇原县', + 'code': '621027' + } + ] + }, + { + 'name': '定西市', + 'code': '621100', + 'children': [ + { + 'name': '安定区', + 'code': '621102' + }, + { + 'name': '通渭县', + 'code': '621121' + }, + { + 'name': '陇西县', + 'code': '621122' + }, + { + 'name': '渭源县', + 'code': '621123' + }, + { + 'name': '临洮县', + 'code': '621124' + }, + { + 'name': '漳县', + 'code': '621125' + }, + { + 'name': '岷县', + 'code': '621126' + } + ] + }, + { + 'name': '陇南市', + 'code': '621200', + 'children': [ + { + 'name': '武都区', + 'code': '621202' + }, + { + 'name': '成县', + 'code': '621221' + }, + { + 'name': '文县', + 'code': '621222' + }, + { + 'name': '宕昌县', + 'code': '621223' + }, + { + 'name': '康县', + 'code': '621224' + }, + { + 'name': '西和县', + 'code': '621225' + }, + { + 'name': '礼县', + 'code': '621226' + }, + { + 'name': '徽县', + 'code': '621227' + }, + { + 'name': '两当县', + 'code': '621228' + } + ] + }, + { + 'name': '临夏回族自治州', + 'code': '622900', + 'children': [ + { + 'name': '临夏市', + 'code': '622901' + }, + { + 'name': '临夏县', + 'code': '622921' + }, + { + 'name': '康乐县', + 'code': '622922' + }, + { + 'name': '永靖县', + 'code': '622923' + }, + { + 'name': '广河县', + 'code': '622924' + }, + { + 'name': '和政县', + 'code': '622925' + }, + { + 'name': '东乡族自治县', + 'code': '622926' + }, + { + 'name': '积石山保安族东乡族撒拉族自治县', + 'code': '622927' + } + ] + }, + { + 'name': '甘南藏族自治州', + 'code': '623000', + 'children': [ + { + 'name': '合作市', + 'code': '623001' + }, + { + 'name': '临潭县', + 'code': '623021' + }, + { + 'name': '卓尼县', + 'code': '623022' + }, + { + 'name': '舟曲县', + 'code': '623023' + }, + { + 'name': '迭部县', + 'code': '623024' + }, + { + 'name': '玛曲县', + 'code': '623025' + }, + { + 'name': '碌曲县', + 'code': '623026' + }, + { + 'name': '夏河县', + 'code': '623027' + } + ] + } + ] + }, + { + 'name': '青海省', + 'code': '630000', + 'region': 'northwest', + 'children': [ + { + 'name': '西宁市', + 'code': '630100', + 'children': [ + { + 'name': '城东区', + 'code': '630102' + }, + { + 'name': '城中区', + 'code': '630103' + }, + { + 'name': '城西区', + 'code': '630104' + }, + { + 'name': '城北区', + 'code': '630105' + }, + { + 'name': '大通回族土族自治县', + 'code': '630121' + }, + { + 'name': '湟中县', + 'code': '630122' + }, + { + 'name': '湟源县', + 'code': '630123' + } + ] + }, + { + 'name': '海东市', + 'code': '630200', + 'children': [ + { + 'name': '乐都区', + 'code': '630202' + }, + { + 'name': '平安区', + 'code': '630203' + }, + { + 'name': '民和回族土族自治县', + 'code': '630222' + }, + { + 'name': '互助土族自治县', + 'code': '630223' + }, + { + 'name': '化隆回族自治县', + 'code': '630224' + }, + { + 'name': '循化撒拉族自治县', + 'code': '630225' + } + ] + }, + { + 'name': '海北藏族自治州', + 'code': '632200', + 'children': [ + { + 'name': '门源回族自治县', + 'code': '632221' + }, + { + 'name': '祁连县', + 'code': '632222' + }, + { + 'name': '海晏县', + 'code': '632223' + }, + { + 'name': '刚察县', + 'code': '632224' + } + ] + }, + { + 'name': '黄南藏族自治州', + 'code': '632300', + 'children': [ + { + 'name': '同仁县', + 'code': '632321' + }, + { + 'name': '尖扎县', + 'code': '632322' + }, + { + 'name': '泽库县', + 'code': '632323' + }, + { + 'name': '河南蒙古族自治县', + 'code': '632324' + } + ] + }, + { + 'name': '海南藏族自治州', + 'code': '632500', + 'children': [ + { + 'name': '共和县', + 'code': '632521' + }, + { + 'name': '同德县', + 'code': '632522' + }, + { + 'name': '贵德县', + 'code': '632523' + }, + { + 'name': '兴海县', + 'code': '632524' + }, + { + 'name': '贵南县', + 'code': '632525' + } + ] + }, + { + 'name': '果洛藏族自治州', + 'code': '632600', + 'children': [ + { + 'name': '玛沁县', + 'code': '632621' + }, + { + 'name': '班玛县', + 'code': '632622' + }, + { + 'name': '甘德县', + 'code': '632623' + }, + { + 'name': '达日县', + 'code': '632624' + }, + { + 'name': '久治县', + 'code': '632625' + }, + { + 'name': '玛多县', + 'code': '632626' + } + ] + }, + { + 'name': '玉树藏族自治州', + 'code': '632700', + 'children': [ + { + 'name': '玉树市', + 'code': '632701' + }, + { + 'name': '杂多县', + 'code': '632722' + }, + { + 'name': '称多县', + 'code': '632723' + }, + { + 'name': '治多县', + 'code': '632724' + }, + { + 'name': '囊谦县', + 'code': '632725' + }, + { + 'name': '曲麻莱县', + 'code': '632726' + } + ] + }, + { + 'name': '海西蒙古族藏族自治州', + 'code': '632800', + 'children': [ + { + 'name': '格尔木市', + 'code': '632801' + }, + { + 'name': '德令哈市', + 'code': '632802' + }, + { + 'name': '茫崖市', + 'code': '632803' + }, + { + 'name': '乌兰县', + 'code': '632821' + }, + { + 'name': '都兰县', + 'code': '632822' + }, + { + 'name': '天峻县', + 'code': '632823' + } + ] + } + ] + }, + { + 'name': '宁夏回族自治区', + 'code': '640000', + 'region': 'northwest', + 'autonomousRegion': true, + 'children': [ + { + 'name': '银川市', + 'code': '640100', + 'children': [ + { + 'name': '兴庆区', + 'code': '640104' + }, + { + 'name': '西夏区', + 'code': '640105' + }, + { + 'name': '金凤区', + 'code': '640106' + }, + { + 'name': '永宁县', + 'code': '640121' + }, + { + 'name': '贺兰县', + 'code': '640122' + }, + { + 'name': '灵武市', + 'code': '640181' + } + ] + }, + { + 'name': '石嘴山市', + 'code': '640200', + 'children': [ + { + 'name': '大武口区', + 'code': '640202' + }, + { + 'name': '惠农区', + 'code': '640205' + }, + { + 'name': '平罗县', + 'code': '640221' + } + ] + }, + { + 'name': '吴忠市', + 'code': '640300', + 'children': [ + { + 'name': '利通区', + 'code': '640302' + }, + { + 'name': '红寺堡区', + 'code': '640303' + }, + { + 'name': '盐池县', + 'code': '640323' + }, + { + 'name': '同心县', + 'code': '640324' + }, + { + 'name': '青铜峡市', + 'code': '640381' + } + ] + }, + { + 'name': '固原市', + 'code': '640400', + 'children': [ + { + 'name': '原州区', + 'code': '640402' + }, + { + 'name': '西吉县', + 'code': '640422' + }, + { + 'name': '隆德县', + 'code': '640423' + }, + { + 'name': '泾源县', + 'code': '640424' + }, + { + 'name': '彭阳县', + 'code': '640425' + } + ] + }, + { + 'name': '中卫市', + 'code': '640500', + 'children': [ + { + 'name': '沙坡头区', + 'code': '640502' + }, + { + 'name': '中宁县', + 'code': '640521' + }, + { + 'name': '海原县', + 'code': '640522' + } + ] + } + ] + }, + { + 'name': '新疆维吾尔自治区', + 'code': '650000', + 'region': 'northwest', + 'autonomousRegion': true, + 'children': [ + { + 'name': '乌鲁木齐市', + 'code': '650100', + 'children': [ + { + 'name': '天山区', + 'code': '650102' + }, + { + 'name': '沙依巴克区', + 'code': '650103' + }, + { + 'name': '新市区', + 'code': '650104' + }, + { + 'name': '水磨沟区', + 'code': '650105' + }, + { + 'name': '头屯河区', + 'code': '650106' + }, + { + 'name': '达坂城区', + 'code': '650107' + }, + { + 'name': '米东区', + 'code': '650109' + }, + { + 'name': '乌鲁木齐县', + 'code': '650121' + } + ] + }, + { + 'name': '克拉玛依市', + 'code': '650200', + 'children': [ + { + 'name': '独山子区', + 'code': '650202' + }, + { + 'name': '克拉玛依区', + 'code': '650203' + }, + { + 'name': '白碱滩区', + 'code': '650204' + }, + { + 'name': '乌尔禾区', + 'code': '650205' + } + ] + }, + { + 'name': '吐鲁番市', + 'code': '650400', + 'children': [ + { + 'name': '高昌区', + 'code': '650402' + }, + { + 'name': '鄯善县', + 'code': '650421' + }, + { + 'name': '托克逊县', + 'code': '650422' + } + ] + }, + { + 'name': '哈密市', + 'code': '650500', + 'children': [ + { + 'name': '伊州区', + 'code': '650502' + }, + { + 'name': '巴里坤哈萨克自治县', + 'code': '650521' + }, + { + 'name': '伊吾县', + 'code': '650522' + } + ] + }, + { + 'name': '昌吉回族自治州', + 'code': '652300', + 'children': [ + { + 'name': '昌吉市', + 'code': '652301' + }, + { + 'name': '阜康市', + 'code': '652302' + }, + { + 'name': '呼图壁县', + 'code': '652323' + }, + { + 'name': '玛纳斯县', + 'code': '652324' + }, + { + 'name': '奇台县', + 'code': '652325' + }, + { + 'name': '吉木萨尔县', + 'code': '652327' + }, + { + 'name': '木垒哈萨克自治县', + 'code': '652328' + } + ] + }, + { + 'name': '博尔塔拉蒙古自治州', + 'code': '652700', + 'children': [ + { + 'name': '博乐市', + 'code': '652701' + }, + { + 'name': '阿拉山口市', + 'code': '652702' + }, + { + 'name': '精河县', + 'code': '652722' + }, + { + 'name': '温泉县', + 'code': '652723' + } + ] + }, + { + 'name': '巴音郭楞蒙古自治州', + 'code': '652800', + 'children': [ + { + 'name': '库尔勒市', + 'code': '652801' + }, + { + 'name': '轮台县', + 'code': '652822' + }, + { + 'name': '尉犁县', + 'code': '652823' + }, + { + 'name': '若羌县', + 'code': '652824' + }, + { + 'name': '且末县', + 'code': '652825' + }, + { + 'name': '焉耆回族自治县', + 'code': '652826' + }, + { + 'name': '和静县', + 'code': '652827' + }, + { + 'name': '和硕县', + 'code': '652828' + }, + { + 'name': '博湖县', + 'code': '652829' + } + ] + }, + { + 'name': '阿克苏地区', + 'code': '652900', + 'children': [ + { + 'name': '阿克苏市', + 'code': '652901' + }, + { + 'name': '温宿县', + 'code': '652922' + }, + { + 'name': '库车县', + 'code': '652923' + }, + { + 'name': '沙雅县', + 'code': '652924' + }, + { + 'name': '新和县', + 'code': '652925' + }, + { + 'name': '拜城县', + 'code': '652926' + }, + { + 'name': '乌什县', + 'code': '652927' + }, + { + 'name': '阿瓦提县', + 'code': '652928' + }, + { + 'name': '柯坪县', + 'code': '652929' + } + ] + }, + { + 'name': '克孜勒苏柯尔克孜自治州', + 'code': '653000', + 'children': [ + { + 'name': '阿图什市', + 'code': '653001' + }, + { + 'name': '阿克陶县', + 'code': '653022' + }, + { + 'name': '阿合奇县', + 'code': '653023' + }, + { + 'name': '乌恰县', + 'code': '653024' + } + ] + }, + { + 'name': '喀什地区', + 'code': '653100', + 'children': [ + { + 'name': '喀什市', + 'code': '653101' + }, + { + 'name': '疏附县', + 'code': '653121' + }, + { + 'name': '疏勒县', + 'code': '653122' + }, + { + 'name': '英吉沙县', + 'code': '653123' + }, + { + 'name': '泽普县', + 'code': '653124' + }, + { + 'name': '莎车县', + 'code': '653125' + }, + { + 'name': '叶城县', + 'code': '653126' + }, + { + 'name': '麦盖提县', + 'code': '653127' + }, + { + 'name': '岳普湖县', + 'code': '653128' + }, + { + 'name': '伽师县', + 'code': '653129' + }, + { + 'name': '巴楚县', + 'code': '653130' + }, + { + 'name': '塔什库尔干塔吉克自治县', + 'code': '653131' + } + ] + }, + { + 'name': '和田地区', + 'code': '653200', + 'children': [ + { + 'name': '和田市', + 'code': '653201' + }, + { + 'name': '和田县', + 'code': '653221' + }, + { + 'name': '墨玉县', + 'code': '653222' + }, + { + 'name': '皮山县', + 'code': '653223' + }, + { + 'name': '洛浦县', + 'code': '653224' + }, + { + 'name': '策勒县', + 'code': '653225' + }, + { + 'name': '于田县', + 'code': '653226' + }, + { + 'name': '民丰县', + 'code': '653227' + } + ] + }, + { + 'name': '伊犁哈萨克自治州', + 'code': '654000', + 'children': [ + { + 'name': '伊宁市', + 'code': '654002' + }, + { + 'name': '奎屯市', + 'code': '654003' + }, + { + 'name': '霍尔果斯市', + 'code': '654004' + }, + { + 'name': '伊宁县', + 'code': '654021' + }, + { + 'name': '察布查尔锡伯自治县', + 'code': '654022' + }, + { + 'name': '霍城县', + 'code': '654023' + }, + { + 'name': '巩留县', + 'code': '654024' + }, + { + 'name': '新源县', + 'code': '654025' + }, + { + 'name': '昭苏县', + 'code': '654026' + }, + { + 'name': '特克斯县', + 'code': '654027' + }, + { + 'name': '尼勒克县', + 'code': '654028' + } + ] + }, + { + 'name': '塔城地区', + 'code': '654200', + 'children': [ + { + 'name': '塔城市', + 'code': '654201' + }, + { + 'name': '乌苏市', + 'code': '654202' + }, + { + 'name': '额敏县', + 'code': '654221' + }, + { + 'name': '沙湾县', + 'code': '654223' + }, + { + 'name': '托里县', + 'code': '654224' + }, + { + 'name': '裕民县', + 'code': '654225' + }, + { + 'name': '和布克赛尔蒙古自治县', + 'code': '654226' + } + ] + }, + { + 'name': '阿勒泰地区', + 'code': '654300', + 'children': [ + { + 'name': '阿勒泰市', + 'code': '654301' + }, + { + 'name': '布尔津县', + 'code': '654321' + }, + { + 'name': '富蕴县', + 'code': '654322' + }, + { + 'name': '福海县', + 'code': '654323' + }, + { + 'name': '哈巴河县', + 'code': '654324' + }, + { + 'name': '青河县', + 'code': '654325' + }, + { + 'name': '吉木乃县', + 'code': '654326' + } + ] + }, + { + 'name': '直辖县', + 'code': '659000', + 'children': [ + { + 'name': '石河子市', + 'code': '659001' + }, + { + 'name': '阿拉尔市', + 'code': '659002' + }, + { + 'name': '图木舒克市', + 'code': '659003' + }, + { + 'name': '五家渠市', + 'code': '659004' + }, + { + 'name': '北屯市', + 'code': '659005' + }, + { + 'name': '铁门关市', + 'code': '659006' + }, + { + 'name': '双河市', + 'code': '659007' + }, + { + 'name': '可克达拉市', + 'code': '659008' + }, + { + 'name': '昆玉市', + 'code': '659009' + } + ] + } + ] + } +] + +export default area diff --git a/src/util/directive.js b/src/util/directive.js new file mode 100644 index 00000000..9a144882 --- /dev/null +++ b/src/util/directive.js @@ -0,0 +1,19 @@ +import { auth, authAll } from '@/util' + +export default function directive(app) { + // 注册 v-auth 和 v-auth-all 指令 + app.directive('auth', { + mounted: (el, binding) => { + if (!auth(binding.value)) { + el.remove() + } + } + }) + app.directive('auth-all', { + mounted: (el, binding) => { + if (!authAll(binding.value)) { + el.remove() + } + } + }) +} diff --git a/src/util/global.properties.js b/src/util/global.properties.js new file mode 100644 index 00000000..cb30de53 --- /dev/null +++ b/src/util/global.properties.js @@ -0,0 +1,20 @@ +import api from '@/api' +import { auth, authAll } from '@/util' +import dayjs from 'dayjs' +import 'dayjs/locale/zh-cn' +import Cookies from 'js-cookie' +import hotkeys from 'hotkeys-js' +import mitt from 'mitt' + +export default function globalProperties(app) { + // 请求 + app.config.globalProperties.$api = api + // 鉴权 + app.config.globalProperties.$auth = auth + app.config.globalProperties.$authAll = authAll + dayjs.locale('zh-cn') + app.config.globalProperties.$dayjs = dayjs + app.config.globalProperties.$cookies = Cookies + app.config.globalProperties.$hotkeys = hotkeys + app.config.globalProperties.$eventBus = mitt() +} diff --git a/src/util/index.js b/src/util/index.js new file mode 100644 index 00000000..b9557c88 --- /dev/null +++ b/src/util/index.js @@ -0,0 +1,63 @@ +import store from '@/store' + +export function deepClone(target) { + // 定义一个变量 + let result + // 如果当前需要深拷贝的是一个对象的话 + if (typeof target === 'object') { + // 如果是一个数组的话 + if (Array.isArray(target)) { + result = [] // 将result赋值为一个数组,并且执行遍历 + for (let i in target) { + // 递归克隆数组中的每一项 + result.push(deepClone(target[i])) + } + // 判断如果当前的值是null的话;直接赋值为null + } else if (target === null) { + result = null + // 判断如果当前的值是一个RegExp对象的话,直接赋值 + } else if (target.constructor === RegExp) { + result = target + } else { + // 否则是普通对象,直接for in循环,递归赋值对象的所有值 + result = {} + for (let i in target) { + result[i] = deepClone(target[i]) + } + } + // 如果不是对象的话,就是基本数据类型,那么直接赋值 + } else { + result = target + } + // 返回最终结果 + return result +} + +function hasPermission(permission) { + if (store.state.settings.enablePermission) { + return store.state.user.permissions.some(v => { + return v === permission + }) + } else { + return true + } +} + +export function auth(value) { + let auth + if (typeof value === 'string') { + auth = hasPermission(value) + } else { + auth = value.some(item => { + return hasPermission(item) + }) + } + return auth +} + +export function authAll(value) { + const auth = value.every(item => { + return hasPermission(item) + }) + return auth +} diff --git a/src/views/404.vue b/src/views/404.vue new file mode 100644 index 00000000..785f8704 --- /dev/null +++ b/src/views/404.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/views/breadcrumb_example/detail1.vue b/src/views/breadcrumb_example/detail1.vue new file mode 100644 index 00000000..b5583c8a --- /dev/null +++ b/src/views/breadcrumb_example/detail1.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/breadcrumb_example/detail2.vue b/src/views/breadcrumb_example/detail2.vue new file mode 100644 index 00000000..b5583c8a --- /dev/null +++ b/src/views/breadcrumb_example/detail2.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/breadcrumb_example/list1.vue b/src/views/breadcrumb_example/list1.vue new file mode 100644 index 00000000..86dbedfd --- /dev/null +++ b/src/views/breadcrumb_example/list1.vue @@ -0,0 +1,5 @@ + diff --git a/src/views/breadcrumb_example/list2.vue b/src/views/breadcrumb_example/list2.vue new file mode 100644 index 00000000..d3adf91c --- /dev/null +++ b/src/views/breadcrumb_example/list2.vue @@ -0,0 +1,5 @@ + diff --git a/src/views/component_basic_example/button.vue b/src/views/component_basic_example/button.vue new file mode 100644 index 00000000..ea6c9880 --- /dev/null +++ b/src/views/component_basic_example/button.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/component_basic_example/checkbox.vue b/src/views/component_basic_example/checkbox.vue new file mode 100644 index 00000000..5f914315 --- /dev/null +++ b/src/views/component_basic_example/checkbox.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/component_basic_example/components/alert.vue b/src/views/component_basic_example/components/alert.vue new file mode 100644 index 00000000..c4c597a4 --- /dev/null +++ b/src/views/component_basic_example/components/alert.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/views/component_basic_example/datepicker.vue b/src/views/component_basic_example/datepicker.vue new file mode 100644 index 00000000..e0f0e3f8 --- /dev/null +++ b/src/views/component_basic_example/datepicker.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/views/component_basic_example/datetimepicker.vue b/src/views/component_basic_example/datetimepicker.vue new file mode 100644 index 00000000..fa03bc9f --- /dev/null +++ b/src/views/component_basic_example/datetimepicker.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/views/component_basic_example/icon.json b/src/views/component_basic_example/icon.json new file mode 100644 index 00000000..873aefb4 --- /dev/null +++ b/src/views/component_basic_example/icon.json @@ -0,0 +1 @@ +["platform-eleme","eleme","delete-solid","delete","s-tools","setting","user-solid","user","phone","phone-outline","more","more-outline","star-on","star-off","s-goods","goods","warning","warning-outline","question","info","remove","circle-plus","success","error","zoom-in","zoom-out","remove-outline","circle-plus-outline","circle-check","circle-close","s-help","help","minus","plus","check","close","picture","picture-outline","picture-outline-round","upload","upload2","download","camera-solid","camera","video-camera-solid","video-camera","message-solid","bell","s-cooperation","s-order","s-platform","s-fold","s-unfold","s-operation","s-promotion","s-home","s-release","s-ticket","s-management","s-open","s-shop","s-marketing","s-flag","s-comment","s-finance","s-claim","s-custom","s-opportunity","s-data","s-check","s-grid","menu","share","d-caret","caret-left","caret-right","caret-bottom","caret-top","bottom-left","bottom-right","back","right","bottom","top","top-left","top-right","arrow-left","arrow-right","arrow-down","arrow-up","d-arrow-left","d-arrow-right","video-pause","video-play","refresh","refresh-right","refresh-left","finished","sort","sort-up","sort-down","rank","loading","view","c-scale-to-original","date","edit","edit-outline","folder","folder-opened","folder-add","folder-remove","folder-delete","folder-checked","tickets","document-remove","document-delete","document-copy","document-checked","document","document-add","printer","paperclip","takeaway-box","search","monitor","attract","mobile","scissors","umbrella","headset","brush","mouse","coordinate","magic-stick","reading","data-line","data-board","pie-chart","data-analysis","collection-tag","film","suitcase","suitcase-1","receiving","collection","files","notebook-1","notebook-2","toilet-paper","office-building","school","table-lamp","house","no-smoking","smoking","shopping-cart-full","shopping-cart-1","shopping-cart-2","shopping-bag-1","shopping-bag-2","sold-out","sell","present","box","bank-card","money","coin","wallet","discount","price-tag","news","guide","male","female","thumb","cpu","link","connection","open","turn-off","set-up","chat-round","chat-line-round","chat-square","chat-dot-round","chat-dot-square","chat-line-square","message","postcard","position","turn-off-microphone","microphone","close-notification","bangzhu","time","odometer","crop","aim","switch-button","full-screen","copy-document","mic","stopwatch","medal-1","medal","trophy","trophy-1","first-aid-kit","discover","place","location","location-outline","location-information","add-location","delete-location","map-location","alarm-clock","timer","watch-1","watch","lock","unlock","key","service","mobile-phone","bicycle","truck","ship","basketball","football","soccer","baseball","wind-power","light-rain","lightning","heavy-rain","sunrise","sunrise-1","sunset","sunny","cloudy","partly-cloudy","cloudy-and-sunny","moon","moon-night","dish","dish-1","food","chicken","fork-spoon","knife-fork","burger","tableware","sugar","dessert","ice-cream","hot-water","water-cup","coffee-cup","cold-drink","goblet","goblet-full","goblet-square","goblet-square-full","refrigerator","grape","watermelon","cherry","apple","pear","orange","coffee","ice-tea","ice-drink","milk-tea","potato-strips","lollipop","ice-cream-square","ice-cream-round"] diff --git a/src/views/component_basic_example/icon.vue b/src/views/component_basic_example/icon.vue new file mode 100644 index 00000000..0c4eade9 --- /dev/null +++ b/src/views/component_basic_example/icon.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/component_basic_example/input.vue b/src/views/component_basic_example/input.vue new file mode 100644 index 00000000..35f700f8 --- /dev/null +++ b/src/views/component_basic_example/input.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/views/component_basic_example/inputnumber.vue b/src/views/component_basic_example/inputnumber.vue new file mode 100644 index 00000000..388a596f --- /dev/null +++ b/src/views/component_basic_example/inputnumber.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/views/component_basic_example/link.vue b/src/views/component_basic_example/link.vue new file mode 100644 index 00000000..462d02cd --- /dev/null +++ b/src/views/component_basic_example/link.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/views/component_basic_example/radio.vue b/src/views/component_basic_example/radio.vue new file mode 100644 index 00000000..eb40f9c2 --- /dev/null +++ b/src/views/component_basic_example/radio.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/views/component_basic_example/rate.vue b/src/views/component_basic_example/rate.vue new file mode 100644 index 00000000..e4eae9bc --- /dev/null +++ b/src/views/component_basic_example/rate.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/views/component_basic_example/select.vue b/src/views/component_basic_example/select.vue new file mode 100644 index 00000000..15dc589d --- /dev/null +++ b/src/views/component_basic_example/select.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/views/component_basic_example/slider.vue b/src/views/component_basic_example/slider.vue new file mode 100644 index 00000000..a54d223d --- /dev/null +++ b/src/views/component_basic_example/slider.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/component_basic_example/switch.vue b/src/views/component_basic_example/switch.vue new file mode 100644 index 00000000..0a66af2c --- /dev/null +++ b/src/views/component_basic_example/switch.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/views/component_basic_example/timepicker.vue b/src/views/component_basic_example/timepicker.vue new file mode 100644 index 00000000..fdf7f313 --- /dev/null +++ b/src/views/component_basic_example/timepicker.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/component_extend_example/actionbar.vue b/src/views/component_extend_example/actionbar.vue new file mode 100644 index 00000000..0c80d11c --- /dev/null +++ b/src/views/component_extend_example/actionbar.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/component_extend_example/area.vue b/src/views/component_extend_example/area.vue new file mode 100644 index 00000000..14ec579b --- /dev/null +++ b/src/views/component_extend_example/area.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/views/component_extend_example/batchactionbar.vue b/src/views/component_extend_example/batchactionbar.vue new file mode 100644 index 00000000..b65e9cdd --- /dev/null +++ b/src/views/component_extend_example/batchactionbar.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/views/component_extend_example/editor.vue b/src/views/component_extend_example/editor.vue new file mode 100644 index 00000000..3f4c57d0 --- /dev/null +++ b/src/views/component_extend_example/editor.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/views/component_extend_example/image.preview.vue b/src/views/component_extend_example/image.preview.vue new file mode 100644 index 00000000..ab4a7d88 --- /dev/null +++ b/src/views/component_extend_example/image.preview.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/views/component_extend_example/pageheader.vue b/src/views/component_extend_example/pageheader.vue new file mode 100644 index 00000000..bff5ce50 --- /dev/null +++ b/src/views/component_extend_example/pageheader.vue @@ -0,0 +1,12 @@ + diff --git a/src/views/component_extend_example/pagemain.vue b/src/views/component_extend_example/pagemain.vue new file mode 100644 index 00000000..7983d402 --- /dev/null +++ b/src/views/component_extend_example/pagemain.vue @@ -0,0 +1,33 @@ + diff --git a/src/views/component_extend_example/result.vue b/src/views/component_extend_example/result.vue new file mode 100644 index 00000000..a909dfb3 --- /dev/null +++ b/src/views/component_extend_example/result.vue @@ -0,0 +1,23 @@ + diff --git a/src/views/component_extend_example/searchbar.vue b/src/views/component_extend_example/searchbar.vue new file mode 100644 index 00000000..5f06a01d --- /dev/null +++ b/src/views/component_extend_example/searchbar.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/views/component_extend_example/svg.vue b/src/views/component_extend_example/svg.vue new file mode 100644 index 00000000..d84d2056 --- /dev/null +++ b/src/views/component_extend_example/svg.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/component_extend_example/table.autoheight.vue b/src/views/component_extend_example/table.autoheight.vue new file mode 100644 index 00000000..24279c5b --- /dev/null +++ b/src/views/component_extend_example/table.autoheight.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/views/component_extend_example/trend.vue b/src/views/component_extend_example/trend.vue new file mode 100644 index 00000000..b9a07d1a --- /dev/null +++ b/src/views/component_extend_example/trend.vue @@ -0,0 +1,42 @@ + diff --git a/src/views/component_extend_example/upload.vue b/src/views/component_extend_example/upload.vue new file mode 100644 index 00000000..4a841f45 --- /dev/null +++ b/src/views/component_extend_example/upload.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/views/index.vue b/src/views/index.vue new file mode 100644 index 00000000..4a0bb061 --- /dev/null +++ b/src/views/index.vue @@ -0,0 +1,389 @@ + + + + + diff --git a/src/views/keep_alive_example/detail.vue b/src/views/keep_alive_example/detail.vue new file mode 100644 index 00000000..96e00248 --- /dev/null +++ b/src/views/keep_alive_example/detail.vue @@ -0,0 +1,5 @@ + diff --git a/src/views/keep_alive_example/nested/nested.vue b/src/views/keep_alive_example/nested/nested.vue new file mode 100644 index 00000000..acc15db0 --- /dev/null +++ b/src/views/keep_alive_example/nested/nested.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/keep_alive_example/nested/nested/nested.vue b/src/views/keep_alive_example/nested/nested/nested.vue new file mode 100644 index 00000000..e593c59c --- /dev/null +++ b/src/views/keep_alive_example/nested/nested/nested.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/keep_alive_example/nested/nested/nested/index.vue b/src/views/keep_alive_example/nested/nested/nested/index.vue new file mode 100644 index 00000000..9569e14e --- /dev/null +++ b/src/views/keep_alive_example/nested/nested/nested/index.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/views/keep_alive_example/nested/nested/nested/index2.vue b/src/views/keep_alive_example/nested/nested/nested/index2.vue new file mode 100644 index 00000000..e14f5b1b --- /dev/null +++ b/src/views/keep_alive_example/nested/nested/nested/index2.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/views/keep_alive_example/page.vue b/src/views/keep_alive_example/page.vue new file mode 100644 index 00000000..f491776d --- /dev/null +++ b/src/views/keep_alive_example/page.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/login.vue b/src/views/login.vue new file mode 100644 index 00000000..99939470 --- /dev/null +++ b/src/views/login.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/views/mock_example/index.vue b/src/views/mock_example/index.vue new file mode 100644 index 00000000..0915caed --- /dev/null +++ b/src/views/mock_example/index.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/views/multilevel_menu_example/level2/level3/page1.vue b/src/views/multilevel_menu_example/level2/level3/page1.vue new file mode 100644 index 00000000..c0e1ae94 --- /dev/null +++ b/src/views/multilevel_menu_example/level2/level3/page1.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/multilevel_menu_example/level2/level3/page2.vue b/src/views/multilevel_menu_example/level2/level3/page2.vue new file mode 100644 index 00000000..c77011cd --- /dev/null +++ b/src/views/multilevel_menu_example/level2/level3/page2.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/multilevel_menu_example/level2/page.vue b/src/views/multilevel_menu_example/level2/page.vue new file mode 100644 index 00000000..77118409 --- /dev/null +++ b/src/views/multilevel_menu_example/level2/page.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/multilevel_menu_example/page.vue b/src/views/multilevel_menu_example/page.vue new file mode 100644 index 00000000..0fa72143 --- /dev/null +++ b/src/views/multilevel_menu_example/page.vue @@ -0,0 +1,7 @@ + diff --git a/src/views/permission_example/index.vue b/src/views/permission_example/index.vue new file mode 100644 index 00000000..7ec313a3 --- /dev/null +++ b/src/views/permission_example/index.vue @@ -0,0 +1,111 @@ + + + diff --git a/src/views/personal/edit.password.vue b/src/views/personal/edit.password.vue new file mode 100644 index 00000000..3b1c2585 --- /dev/null +++ b/src/views/personal/edit.password.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/personal/setting.vue b/src/views/personal/setting.vue new file mode 100644 index 00000000..5c0d92a8 --- /dev/null +++ b/src/views/personal/setting.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/reload.vue b/src/views/reload.vue new file mode 100644 index 00000000..02d0fcf1 --- /dev/null +++ b/src/views/reload.vue @@ -0,0 +1,11 @@ + + + diff --git a/src/views/videos_example/coming.soon.vue b/src/views/videos_example/coming.soon.vue new file mode 100644 index 00000000..51f7aa50 --- /dev/null +++ b/src/views/videos_example/coming.soon.vue @@ -0,0 +1,5 @@ + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 00000000..bba07e33 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,62 @@ +import { defineConfig, loadEnv } from 'vite' +import createVitePlugins from './vite/plugins' + +const fs = require('fs') +const path = require('path') + +// https://vitejs.dev/config/ +export default ({ mode, command }) => { + const env = loadEnv(mode, process.cwd()) + // 全局 scss 资源 + const scssResources = [] + fs.readdirSync('src/assets/styles/resources').map(dirname => { + if (fs.statSync(`src/assets/styles/resources/${dirname}`).isFile()) { + scssResources.push(`@import "src/assets/styles/resources/${dirname}";`) + } + }) + // css 精灵图相关 + fs.readdirSync('src/assets/sprites').map(dirname => { + if (fs.statSync(`src/assets/sprites/${dirname}`).isDirectory()) { + // css 精灵图生成的 scss 文件也需要放入全局 scss 资源 + scssResources.push(`@import "src/assets/sprites/_${dirname}.scss";`) + } + }) + return defineConfig({ + base: './', + // 开发服务器选项 https://cn.vitejs.dev/config/#server-options + server: { + open: true, + port: 9000, + proxy: { + '/proxy': { + target: env.VITE_APP_API_BASEURL, + changeOrigin: command === 'serve' && env.VITE_OPEN_PROXY == 'true', + rewrite: path => path.replace(/\/proxy/, '') + } + } + }, + // 构建选项 https://cn.vitejs.dev/config/#server-fsserve-root + build: { + outDir: mode == 'production' ? 'dist' : `dist-${mode}`, + sourcemap: env.VITE_BUILD_SOURCEMAP == 'true', + terserOptions: { + compress: { + drop_console: env.VITE_BUILD_DROP_CONSOLE == 'true' + } + } + }, + plugins: createVitePlugins(env, command === 'build'), + resolve: { + alias: { + '@': path.resolve(__dirname, 'src') + } + }, + css: { + preprocessorOptions: { + scss: { + additionalData: scssResources.join('') + } + } + } + }) +} diff --git a/vite/plugins/banner.js b/vite/plugins/banner.js new file mode 100644 index 00000000..af7d0f48 --- /dev/null +++ b/vite/plugins/banner.js @@ -0,0 +1,10 @@ +import banner from 'vite-plugin-banner' + +export default function createBanner() { + return banner(` +/** + * name: Fantastic-admin + * homepage: https://hooray.gitee.io/fantastic-admin/ + */ + `) +} diff --git a/vite/plugins/compression.js b/vite/plugins/compression.js new file mode 100644 index 00000000..f808ecad --- /dev/null +++ b/vite/plugins/compression.js @@ -0,0 +1,25 @@ +import compression from 'vite-plugin-compression' + +export default function createCompression(env) { + const { VITE_BUILD_COMPRESS } = env + const compressList = VITE_BUILD_COMPRESS.split(',') + const plugin = [] + if (compressList.includes('gzip')) { + plugin.push( + compression({ + ext: '.gz', + deleteOriginFile: false + }) + ) + } + if (compressList.includes('brotli')) { + plugin.push( + compression({ + ext: '.br', + algorithm: 'brotliCompress', + deleteOriginFile: false + }) + ) + } + return plugin +} diff --git a/vite/plugins/html.js b/vite/plugins/html.js new file mode 100644 index 00000000..6b8114b8 --- /dev/null +++ b/vite/plugins/html.js @@ -0,0 +1,16 @@ +import htmlPlugin from 'vite-plugin-html' + +export default function createHtml(env, isBuild) { + const { VITE_APP_TITLE, VITE_APP_DEBUG_TOOL, VITE_APP_MODE } = env + const html = htmlPlugin({ + inject: { + injectData: { + title: VITE_APP_TITLE, + debugTool: VITE_APP_DEBUG_TOOL, + appMode: VITE_APP_MODE + } + }, + minify: isBuild + }) + return html +} diff --git a/vite/plugins/index.js b/vite/plugins/index.js new file mode 100644 index 00000000..ef252071 --- /dev/null +++ b/vite/plugins/index.js @@ -0,0 +1,21 @@ +import vue from '@vitejs/plugin-vue' + +import createRestart from './restart' +import createHtml from './html' +import createSvgIcon from './svg-icon' +import createMock from './mock' +import createCompression from './compression' +import createSpritesmith from './spritesmith' +import createBanner from './banner' + +export default function createVitePlugins(viteEnv, isBuild = false) { + const vitePlugins = [vue()] + !isBuild && vitePlugins.push(createRestart()) + vitePlugins.push(createHtml(viteEnv, isBuild)) + vitePlugins.push(createSvgIcon(isBuild)) + vitePlugins.push(createMock()) + isBuild && vitePlugins.push(...createCompression(viteEnv)) + vitePlugins.push(...createSpritesmith()) + vitePlugins.push(createBanner()) + return vitePlugins +} diff --git a/vite/plugins/mock.js b/vite/plugins/mock.js new file mode 100644 index 00000000..605c47ff --- /dev/null +++ b/vite/plugins/mock.js @@ -0,0 +1,11 @@ +import { viteMockServe } from 'vite-plugin-mock' + +export default function createMock() { + return viteMockServe({ + mockPath: 'src/mock', + injectCode: ` + import { setupProdMockServer } from './mockProdServer'; + setupProdMockServer(); + ` + }) +} diff --git a/vite/plugins/restart.js b/vite/plugins/restart.js new file mode 100644 index 00000000..02800aff --- /dev/null +++ b/vite/plugins/restart.js @@ -0,0 +1,9 @@ +import ViteRestart from 'vite-plugin-restart' + +export default function createRestart() { + return ViteRestart({ + restart: [ + '.env.development' + ] + }) +} diff --git a/vite/plugins/spritesmith.js b/vite/plugins/spritesmith.js new file mode 100644 index 00000000..e016f315 --- /dev/null +++ b/vite/plugins/spritesmith.js @@ -0,0 +1,49 @@ +import spritesmith from 'vite-plugin-spritesmith' +import fs from 'fs' + +export default function createSpritesmith(isBuild) { + const spriteDirnames = [] + fs.readdirSync('src/assets/sprites').map(dirname => { + if (fs.statSync(`src/assets/sprites/${dirname}`).isDirectory()) { + spriteDirnames.push(dirname) + } + }) + const plugin = [] + spriteDirnames.map(item => { + plugin.push( + spritesmith({ + watch: !isBuild, + src: { + cwd: `./src/assets/sprites/${item}`, + glob: '*.png' + }, + target: { + image: `./src/assets/sprites/${item}.png`, + css: [ + [ + `./src/assets/sprites/_${item}.scss`, + { + format: 'handlebars_based_template' + } + ] + ] + }, + apiOptions: { + cssImageRef: `@/assets/sprites/${item}.png`, + spritesheet_info: { + name: item, + format: 'handlebars_based_template' + } + }, + customTemplates: { + handlebars_based_template: './scss.template.hbs' + }, + spritesmithOptions: { + algorithm: 'binary-tree', + padding: 10 + } + }) + ) + }) + return plugin +} diff --git a/vite/plugins/svg-icon.js b/vite/plugins/svg-icon.js new file mode 100644 index 00000000..560c6fc5 --- /dev/null +++ b/vite/plugins/svg-icon.js @@ -0,0 +1,10 @@ +import svgIcon from 'vite-plugin-svg-icons' +import path from 'path' + +export default function createSvgIcon(isBuild) { + return svgIcon({ + iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/')], + symbolId: 'icon-[dir]-[name]', + svgoOptions: isBuild + }) +}