From c69788861335bd37282168c63ba7bb83284b0bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Wed, 1 Jun 2022 13:41:24 +0200 Subject: [PATCH 1/6] Setup Project Base work --- .env.example | 7 + .gitignore | 16 + .htaccess | 6 + README.md | 64 - TODO.md | 1 + app/Console/Commands/CreateAdmin.php | 90 + app/Console/Kernel.php | 5 +- app/Exceptions/Handler.php | 6 +- .../Controllers/Bo/Auth/LoginController.php | 99 + app/Http/Controllers/Bo/HomeController.php | 18 + app/Http/Controllers/Controller.php | 154 +- app/Http/Controllers/Fo/HomeController.php | 18 + app/Http/Kernel.php | 14 +- app/Http/Middleware/Authenticate.php | 21 +- app/Http/Middleware/EncryptCookies.php | 4 +- .../PreventRequestsDuringMaintenance.php | 4 +- .../Middleware/RedirectIfAuthenticated.php | 12 +- app/Http/Middleware/SecureHeaders.php | 72 + app/Http/Middleware/TrustProxies.php | 2 +- app/Http/Middleware/VerifyCsrfToken.php | 4 +- app/Http/Middleware/XssSanitizer.php | 46 + app/Lib/ToolboxHelper.php | 419 + app/Models/User.php | 48 +- app/Providers/AppServiceProvider.php | 46 +- app/Providers/AuthServiceProvider.php | 7 +- app/Providers/BroadcastServiceProvider.php | 21 - app/Providers/EventServiceProvider.php | 2 - app/Providers/RouteServiceProvider.php | 23 +- app/Providers/TranslationServiceProvider.php | 77 + app/Traits/HasPicture.php | 144 + app/Traits/MiniCrudModel.php | 103 + app/Traits/UpdateModelStatus.php | 26 + composer.json | 13 +- composer.lock | 742 +- config/app.php | 189 +- config/auth.php | 121 +- config/broadcasting.php | 36 +- config/cache.php | 60 +- config/cors.php | 20 +- config/database.php | 76 +- config/exception-handler.php | 15 + config/filesystems.php | 54 +- config/hashing.php | 52 +- config/logging.php | 56 +- config/mail.php | 78 +- config/purifier.php | 119 + config/queue.php | 52 +- config/recaptcha.php | 6 + config/sanctum.php | 68 +- config/services.php | 18 +- config/session.php | 240 +- config/view.php | 32 +- database/factories/UserFactory.php | 4 +- .../2014_10_12_000000_create_users_table.php | 1 + ...01_create_personal_access_tokens_table.php | 36 - jsconfig.json | 5 + package-lock.json | 16588 ++++++++++++++++ package.json | 16 +- phpcs.xml | 129 + public/browserconfig.xml | 9 + public/site.webmanifest | 14 + .../assets/images/android-chrome-144x144.png | Bin 0 -> 4501 bytes resources/assets/images/apple-touch-icon.png | Bin 0 -> 5388 bytes resources/assets/images/favicon-16x16.png | Bin 0 -> 458 bytes resources/assets/images/favicon-32x32.png | Bin 0 -> 896 bytes resources/assets/images/favicon.ico | Bin 0 -> 15086 bytes resources/assets/images/mstile-150x150.png | Bin 0 -> 4826 bytes resources/assets/images/safari-pinned-tab.svg | 39 + resources/css/app.css | 0 resources/js/app.js | 1 - resources/js/back.js | 47 + resources/js/back/LaravelFileManager.js | 91 + resources/js/bootstrap.js | 4 + resources/js/common.js | 29 + .../js/components/bo/ckEditorBoComponent.vue | 196 + resources/js/front.js | 5 + resources/js/modules/asset.js | 8 + resources/js/modules/confirm.js | 37 + resources/js/modules/route.js | 43 + resources/js/modules/trans.js | 40 + resources/js/vendor/ckeditor/.gitignore | 1 + resources/js/vendor/ckeditor/LICENSE.md | 49 + resources/js/vendor/ckeditor/README.md | 68 + .../js/vendor/ckeditor/build/ckeditor.js | 7 + .../js/vendor/ckeditor/build/ckeditor.js.map | 1 + .../vendor/ckeditor/build/translations/af.js | 1 + .../vendor/ckeditor/build/translations/ar.js | 1 + .../vendor/ckeditor/build/translations/ast.js | 1 + .../vendor/ckeditor/build/translations/az.js | 1 + .../vendor/ckeditor/build/translations/bg.js | 1 + .../vendor/ckeditor/build/translations/bs.js | 1 + .../vendor/ckeditor/build/translations/ca.js | 1 + .../vendor/ckeditor/build/translations/cs.js | 1 + .../vendor/ckeditor/build/translations/da.js | 1 + .../ckeditor/build/translations/de-ch.js | 1 + .../vendor/ckeditor/build/translations/de.js | 1 + .../vendor/ckeditor/build/translations/el.js | 1 + .../ckeditor/build/translations/en-au.js | 1 + .../ckeditor/build/translations/en-gb.js | 1 + .../vendor/ckeditor/build/translations/en.js | 1 + .../vendor/ckeditor/build/translations/eo.js | 1 + .../vendor/ckeditor/build/translations/es.js | 1 + .../vendor/ckeditor/build/translations/et.js | 1 + .../vendor/ckeditor/build/translations/eu.js | 1 + .../vendor/ckeditor/build/translations/fa.js | 1 + .../vendor/ckeditor/build/translations/fi.js | 1 + .../vendor/ckeditor/build/translations/gl.js | 1 + .../vendor/ckeditor/build/translations/gu.js | 1 + .../vendor/ckeditor/build/translations/he.js | 1 + .../vendor/ckeditor/build/translations/hi.js | 1 + .../vendor/ckeditor/build/translations/hr.js | 1 + .../vendor/ckeditor/build/translations/hu.js | 1 + .../vendor/ckeditor/build/translations/id.js | 1 + .../vendor/ckeditor/build/translations/it.js | 1 + .../vendor/ckeditor/build/translations/ja.js | 1 + .../vendor/ckeditor/build/translations/jv.js | 1 + .../vendor/ckeditor/build/translations/kk.js | 1 + .../vendor/ckeditor/build/translations/km.js | 1 + .../vendor/ckeditor/build/translations/kn.js | 1 + .../vendor/ckeditor/build/translations/ko.js | 1 + .../vendor/ckeditor/build/translations/ku.js | 1 + .../vendor/ckeditor/build/translations/lt.js | 1 + .../vendor/ckeditor/build/translations/lv.js | 1 + .../vendor/ckeditor/build/translations/ms.js | 1 + .../vendor/ckeditor/build/translations/nb.js | 1 + .../vendor/ckeditor/build/translations/ne.js | 1 + .../vendor/ckeditor/build/translations/nl.js | 1 + .../vendor/ckeditor/build/translations/no.js | 1 + .../vendor/ckeditor/build/translations/oc.js | 1 + .../vendor/ckeditor/build/translations/pl.js | 1 + .../ckeditor/build/translations/pt-br.js | 1 + .../vendor/ckeditor/build/translations/pt.js | 1 + .../vendor/ckeditor/build/translations/ro.js | 1 + .../vendor/ckeditor/build/translations/ru.js | 1 + .../vendor/ckeditor/build/translations/si.js | 1 + .../vendor/ckeditor/build/translations/sk.js | 1 + .../vendor/ckeditor/build/translations/sl.js | 1 + .../vendor/ckeditor/build/translations/sq.js | 1 + .../ckeditor/build/translations/sr-latn.js | 1 + .../vendor/ckeditor/build/translations/sr.js | 1 + .../vendor/ckeditor/build/translations/sv.js | 1 + .../vendor/ckeditor/build/translations/th.js | 1 + .../vendor/ckeditor/build/translations/tk.js | 1 + .../vendor/ckeditor/build/translations/tr.js | 1 + .../vendor/ckeditor/build/translations/tt.js | 1 + .../vendor/ckeditor/build/translations/ug.js | 1 + .../vendor/ckeditor/build/translations/uk.js | 1 + .../vendor/ckeditor/build/translations/ur.js | 1 + .../vendor/ckeditor/build/translations/uz.js | 1 + .../vendor/ckeditor/build/translations/vi.js | 1 + .../ckeditor/build/translations/zh-cn.js | 1 + .../vendor/ckeditor/build/translations/zh.js | 1 + .../js/vendor/ckeditor/package-lock.json | 8073 ++++++++ resources/js/vendor/ckeditor/package.json | 47 + .../js/vendor/ckeditor/sample/index.html | 171 + .../js/vendor/ckeditor/sample/styles.css | 500 + resources/js/vendor/ckeditor/src/ckeditor.js | 93 + .../js/vendor/ckeditor/webpack.config.js | 96 + resources/js/vue.js | 66 + resources/lang/fr.json | 725 + resources/lang/fr/auth.php | 18 + resources/lang/fr/pagination.php | 17 + resources/lang/fr/passwords.php | 20 + resources/lang/fr/validation-inline.php | 136 + resources/lang/fr/validation-nova-inline.php | 17 + resources/lang/fr/validation-nova.php | 17 + resources/lang/fr/validation.php | 133 + resources/scss/_common.scss | 2 + .../scss/_variables.scss | 0 resources/scss/back.scss | 16 + resources/scss/front.scss | 5 + resources/views/back/auth/login.blade.php | 73 + .../back/breadcrumb/breadcrumb-body.blade.php | 10 + .../views/back/breadcrumb/layout.blade.php | 18 + resources/views/back/dashboard.blade.php | 15 + resources/views/back/layouts/head.blade.php | 33 + .../views/back/layouts/nav-menu.blade.php | 7 + .../views/back/modules/input-error.blade.php | 8 + .../modules/minicrud-form-inputs.blade.php | 83 + .../back/modules/scriptConstants.blade.php | 11 + .../views/back/modules/searchBar.blade.php | 38 + .../back/modules/tableColSorter.blade.php | 48 + resources/views/back/sliders/create.blade.php | 29 + resources/views/back/sliders/edit.blade.php | 41 + resources/views/back/sliders/form.blade.php | 121 + resources/views/back/sliders/index.blade.php | 92 + resources/views/errors/401.blade.php | 5 + resources/views/errors/403.blade.php | 5 + resources/views/errors/404.blade.php | 5 + resources/views/errors/405.blade.php | 5 + resources/views/errors/419.blade.php | 5 + resources/views/errors/429.blade.php | 5 + resources/views/errors/500.blade.php | 5 + resources/views/errors/503.blade.php | 5 + .../breadcrumb/breadcrumb-body.blade.php | 10 + .../breadcrumb/breadcrumb-head.blade.php | 10 + .../views/front/breadcrumb/layout.blade.php | 21 + resources/views/front/home.blade.php | 15 + .../views/front/layouts/footer.blade.php | 6 + resources/views/front/layouts/head.blade.php | 65 + .../views/front/layouts/header.blade.php | 5 + resources/views/layouts/back.blade.php | 79 + .../views/layouts/error-minimal.blade.php | 29 + resources/views/layouts/error.blade.php | 29 + resources/views/layouts/front.blade.php | 42 + .../views/modules/flashMessage.blade.php | 68 + resources/views/modules/searchBar.blade.php | 6 + resources/views/welcome.blade.php | 132 - routes/api.php | 19 - routes/channels.php | 18 - routes/console.php | 18 - routes/web-bo.php | 19 + routes/web-fo.php | 6 + routes/web.php | 18 - tests/CreatesApplication.php | 2 +- tests/Feature/ExampleTest.php | 1 - tsconfig.json | 11 + webpack.mix.js | 80 +- 218 files changed, 31637 insertions(+), 1052 deletions(-) create mode 100644 .htaccess delete mode 100644 README.md create mode 100644 TODO.md create mode 100644 app/Console/Commands/CreateAdmin.php create mode 100644 app/Http/Controllers/Bo/Auth/LoginController.php create mode 100644 app/Http/Controllers/Bo/HomeController.php create mode 100644 app/Http/Controllers/Fo/HomeController.php create mode 100644 app/Http/Middleware/SecureHeaders.php create mode 100644 app/Http/Middleware/XssSanitizer.php create mode 100644 app/Lib/ToolboxHelper.php delete mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/TranslationServiceProvider.php create mode 100644 app/Traits/HasPicture.php create mode 100644 app/Traits/MiniCrudModel.php create mode 100644 app/Traits/UpdateModelStatus.php create mode 100644 config/exception-handler.php create mode 100644 config/purifier.php create mode 100644 config/recaptcha.php delete mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 phpcs.xml create mode 100644 public/browserconfig.xml create mode 100644 public/site.webmanifest create mode 100644 resources/assets/images/android-chrome-144x144.png create mode 100644 resources/assets/images/apple-touch-icon.png create mode 100644 resources/assets/images/favicon-16x16.png create mode 100644 resources/assets/images/favicon-32x32.png create mode 100644 resources/assets/images/favicon.ico create mode 100644 resources/assets/images/mstile-150x150.png create mode 100644 resources/assets/images/safari-pinned-tab.svg delete mode 100644 resources/css/app.css delete mode 100644 resources/js/app.js create mode 100644 resources/js/back.js create mode 100644 resources/js/back/LaravelFileManager.js create mode 100644 resources/js/common.js create mode 100644 resources/js/components/bo/ckEditorBoComponent.vue create mode 100644 resources/js/front.js create mode 100644 resources/js/modules/asset.js create mode 100644 resources/js/modules/confirm.js create mode 100644 resources/js/modules/route.js create mode 100644 resources/js/modules/trans.js create mode 100644 resources/js/vendor/ckeditor/.gitignore create mode 100644 resources/js/vendor/ckeditor/LICENSE.md create mode 100644 resources/js/vendor/ckeditor/README.md create mode 100644 resources/js/vendor/ckeditor/build/ckeditor.js create mode 100644 resources/js/vendor/ckeditor/build/ckeditor.js.map create mode 100644 resources/js/vendor/ckeditor/build/translations/af.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ar.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ast.js create mode 100644 resources/js/vendor/ckeditor/build/translations/az.js create mode 100644 resources/js/vendor/ckeditor/build/translations/bg.js create mode 100644 resources/js/vendor/ckeditor/build/translations/bs.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ca.js create mode 100644 resources/js/vendor/ckeditor/build/translations/cs.js create mode 100644 resources/js/vendor/ckeditor/build/translations/da.js create mode 100644 resources/js/vendor/ckeditor/build/translations/de-ch.js create mode 100644 resources/js/vendor/ckeditor/build/translations/de.js create mode 100644 resources/js/vendor/ckeditor/build/translations/el.js create mode 100644 resources/js/vendor/ckeditor/build/translations/en-au.js create mode 100644 resources/js/vendor/ckeditor/build/translations/en-gb.js create mode 100644 resources/js/vendor/ckeditor/build/translations/en.js create mode 100644 resources/js/vendor/ckeditor/build/translations/eo.js create mode 100644 resources/js/vendor/ckeditor/build/translations/es.js create mode 100644 resources/js/vendor/ckeditor/build/translations/et.js create mode 100644 resources/js/vendor/ckeditor/build/translations/eu.js create mode 100644 resources/js/vendor/ckeditor/build/translations/fa.js create mode 100644 resources/js/vendor/ckeditor/build/translations/fi.js create mode 100644 resources/js/vendor/ckeditor/build/translations/gl.js create mode 100644 resources/js/vendor/ckeditor/build/translations/gu.js create mode 100644 resources/js/vendor/ckeditor/build/translations/he.js create mode 100644 resources/js/vendor/ckeditor/build/translations/hi.js create mode 100644 resources/js/vendor/ckeditor/build/translations/hr.js create mode 100644 resources/js/vendor/ckeditor/build/translations/hu.js create mode 100644 resources/js/vendor/ckeditor/build/translations/id.js create mode 100644 resources/js/vendor/ckeditor/build/translations/it.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ja.js create mode 100644 resources/js/vendor/ckeditor/build/translations/jv.js create mode 100644 resources/js/vendor/ckeditor/build/translations/kk.js create mode 100644 resources/js/vendor/ckeditor/build/translations/km.js create mode 100644 resources/js/vendor/ckeditor/build/translations/kn.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ko.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ku.js create mode 100644 resources/js/vendor/ckeditor/build/translations/lt.js create mode 100644 resources/js/vendor/ckeditor/build/translations/lv.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ms.js create mode 100644 resources/js/vendor/ckeditor/build/translations/nb.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ne.js create mode 100644 resources/js/vendor/ckeditor/build/translations/nl.js create mode 100644 resources/js/vendor/ckeditor/build/translations/no.js create mode 100644 resources/js/vendor/ckeditor/build/translations/oc.js create mode 100644 resources/js/vendor/ckeditor/build/translations/pl.js create mode 100644 resources/js/vendor/ckeditor/build/translations/pt-br.js create mode 100644 resources/js/vendor/ckeditor/build/translations/pt.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ro.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ru.js create mode 100644 resources/js/vendor/ckeditor/build/translations/si.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sk.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sl.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sq.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sr-latn.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sr.js create mode 100644 resources/js/vendor/ckeditor/build/translations/sv.js create mode 100644 resources/js/vendor/ckeditor/build/translations/th.js create mode 100644 resources/js/vendor/ckeditor/build/translations/tk.js create mode 100644 resources/js/vendor/ckeditor/build/translations/tr.js create mode 100644 resources/js/vendor/ckeditor/build/translations/tt.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ug.js create mode 100644 resources/js/vendor/ckeditor/build/translations/uk.js create mode 100644 resources/js/vendor/ckeditor/build/translations/ur.js create mode 100644 resources/js/vendor/ckeditor/build/translations/uz.js create mode 100644 resources/js/vendor/ckeditor/build/translations/vi.js create mode 100644 resources/js/vendor/ckeditor/build/translations/zh-cn.js create mode 100644 resources/js/vendor/ckeditor/build/translations/zh.js create mode 100644 resources/js/vendor/ckeditor/package-lock.json create mode 100644 resources/js/vendor/ckeditor/package.json create mode 100644 resources/js/vendor/ckeditor/sample/index.html create mode 100644 resources/js/vendor/ckeditor/sample/styles.css create mode 100644 resources/js/vendor/ckeditor/src/ckeditor.js create mode 100644 resources/js/vendor/ckeditor/webpack.config.js create mode 100644 resources/js/vue.js create mode 100644 resources/lang/fr.json create mode 100644 resources/lang/fr/auth.php create mode 100644 resources/lang/fr/pagination.php create mode 100644 resources/lang/fr/passwords.php create mode 100644 resources/lang/fr/validation-inline.php create mode 100644 resources/lang/fr/validation-nova-inline.php create mode 100644 resources/lang/fr/validation-nova.php create mode 100644 resources/lang/fr/validation.php create mode 100644 resources/scss/_common.scss rename public/favicon.ico => resources/scss/_variables.scss (100%) create mode 100644 resources/scss/back.scss create mode 100644 resources/scss/front.scss create mode 100644 resources/views/back/auth/login.blade.php create mode 100644 resources/views/back/breadcrumb/breadcrumb-body.blade.php create mode 100644 resources/views/back/breadcrumb/layout.blade.php create mode 100644 resources/views/back/dashboard.blade.php create mode 100644 resources/views/back/layouts/head.blade.php create mode 100644 resources/views/back/layouts/nav-menu.blade.php create mode 100644 resources/views/back/modules/input-error.blade.php create mode 100644 resources/views/back/modules/minicrud-form-inputs.blade.php create mode 100644 resources/views/back/modules/scriptConstants.blade.php create mode 100644 resources/views/back/modules/searchBar.blade.php create mode 100644 resources/views/back/modules/tableColSorter.blade.php create mode 100644 resources/views/back/sliders/create.blade.php create mode 100644 resources/views/back/sliders/edit.blade.php create mode 100644 resources/views/back/sliders/form.blade.php create mode 100644 resources/views/back/sliders/index.blade.php create mode 100644 resources/views/errors/401.blade.php create mode 100644 resources/views/errors/403.blade.php create mode 100644 resources/views/errors/404.blade.php create mode 100644 resources/views/errors/405.blade.php create mode 100644 resources/views/errors/419.blade.php create mode 100644 resources/views/errors/429.blade.php create mode 100644 resources/views/errors/500.blade.php create mode 100644 resources/views/errors/503.blade.php create mode 100644 resources/views/front/breadcrumb/breadcrumb-body.blade.php create mode 100644 resources/views/front/breadcrumb/breadcrumb-head.blade.php create mode 100644 resources/views/front/breadcrumb/layout.blade.php create mode 100644 resources/views/front/home.blade.php create mode 100644 resources/views/front/layouts/footer.blade.php create mode 100644 resources/views/front/layouts/head.blade.php create mode 100644 resources/views/front/layouts/header.blade.php create mode 100644 resources/views/layouts/back.blade.php create mode 100644 resources/views/layouts/error-minimal.blade.php create mode 100644 resources/views/layouts/error.blade.php create mode 100644 resources/views/layouts/front.blade.php create mode 100644 resources/views/modules/flashMessage.blade.php create mode 100644 resources/views/modules/searchBar.blade.php delete mode 100644 resources/views/welcome.blade.php delete mode 100644 routes/api.php delete mode 100644 routes/channels.php create mode 100644 routes/web-bo.php create mode 100644 routes/web-fo.php delete mode 100644 routes/web.php create mode 100644 tsconfig.json diff --git a/.env.example b/.env.example index b7becba..02bb5a3 100644 --- a/.env.example +++ b/.env.example @@ -37,6 +37,13 @@ MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" +# USED FOR ERROR HANDLER +MAIL_ERRORS="equipe.web@ldc.fr" + +# USED FOR RECAPTCHA V3 +RECAPTCHA_3_PUB_KEY="" +RECAPTCHA_3_PRIV_KEY="" + AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 diff --git a/.gitignore b/.gitignore index eb003b0..1790c20 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,17 @@ /node_modules /public/hot /public/storage +/public/css +/public/js +/public/images +/public/fonts +/public/medias +/public/uploads +/public/assets +/public/cache +/public/mix-manifest.json +.vscode + /storage/*.key /vendor .env @@ -13,3 +24,8 @@ npm-debug.log yarn-error.log /.idea /.vscode + +/public/.htpasswd +/public/.htaccess + +/resourcesLegacy diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..f1c4658 --- /dev/null +++ b/.htaccess @@ -0,0 +1,6 @@ +SetOutputFilter DEFLATE +AddOutputFilterByType DEFLATE "application/atom+xml" "application/javascript" "application/json" "application/ld+json" "application/manifest+json" "application/rdf+xml" "application/rss+xml" "application/schema+json" "application/vnd.geo+json" "application/vnd.ms-fontobject" "application/x-font-ttf" "application/x-javascript" "application/x-web-app-manifest+json" "application/xhtml+xml" "application/xml" "font/eot" "font/opentype" "image/bmp" "image/svg+xml" "image/vnd.microsoft.icon" "image/x-icon" "text/cache-manifest" "text/css" "text/html" "text/javascript" "text/plain" "text/vcard" "text/vnd.rim.location.xloc" "text/vtt" "text/x-component" "text/x-cross-domain-policy" "text/xml" + +# SECTION BEGIN GIT PROTECTION +RedirectMatch 404 /\.git +# SECTION END GIT PROTECTION diff --git a/README.md b/README.md deleted file mode 100644 index 1b6397c..0000000 --- a/README.md +++ /dev/null @@ -1,64 +0,0 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## About Laravel - -Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: - -- [Simple, fast routing engine](https://laravel.com/docs/routing). -- [Powerful dependency injection container](https://laravel.com/docs/container). -- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. -- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). -- Database agnostic [schema migrations](https://laravel.com/docs/migrations). -- [Robust background job processing](https://laravel.com/docs/queues). -- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). - -Laravel is accessible, powerful, and provides tools required for large, robust applications. - -## Learning Laravel - -Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. - -If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. - -## Laravel Sponsors - -We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). - -### Premium Partners - -- **[Vehikl](https://vehikl.com/)** -- **[Tighten Co.](https://tighten.co)** -- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** -- **[64 Robots](https://64robots.com)** -- **[Cubet Techno Labs](https://cubettech.com)** -- **[Cyber-Duck](https://cyber-duck.co.uk)** -- **[Many](https://www.many.co.uk)** -- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** -- **[DevSquad](https://devsquad.com)** -- **[Curotec](https://www.curotec.com/services/technologies/laravel/)** -- **[OP.GG](https://op.gg)** -- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)** -- **[Lendio](https://lendio.com)** - -## Contributing - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). - -## Code of Conduct - -In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). - -## Security Vulnerabilities - -If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. - -## License - -The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/TODO.md @@ -0,0 +1 @@ +# TODO diff --git a/app/Console/Commands/CreateAdmin.php b/app/Console/Commands/CreateAdmin.php new file mode 100644 index 0000000..944fd0d --- /dev/null +++ b/app/Console/Commands/CreateAdmin.php @@ -0,0 +1,90 @@ +ask('Type the wanted user email', 'equipe.web@ldc.fr'); + $validator = Validator::make(['email' => $tmp], [ + 'email' => 'required|unique:users,email|email:rfc,dns' + ]); + $validator->validate(); + $email = $tmp; + } catch (ValidationException $e) { + $this->error(sprintf( + 'Please provide a valid email %s', + \implode(',', collect($e->errors())->flatten()->all()) + )); + continue; + } + } + $name = null; + while (is_null($name)) { + try { + $tmp = $this->ask('Type the wanted user name', 'Admin'); + $validator = Validator::make(['name' => $tmp], [ + 'name' => 'required|min:5,max:255' + ]); + $validator->validate(); + $name = $tmp; + } catch (ValidationException $e) { + $this->error(sprintf( + 'Please provide a valid name %s', + \implode(',', collect($e->errors())->flatten()->all()) + )); + continue; + } + } + + $password = null; + while ( + ($password = $this->secret( + (!\is_null($password) ? 'Failed to confirm, ' : '') . 'Type the wanted user password' + )) !== $this->secret('Confirm the password') + ) { + continue; + }; + + $admin = new User([ + 'name' => $name, + 'email' => $email, + 'password' => $password + ]); + $admin->saveOrFail(); + + $this->info('User created.'); + return 0; + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index d8bc1d2..be055ac 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -10,12 +10,11 @@ class Kernel extends ConsoleKernel /** * Define the application's command schedule. * - * @param \Illuminate\Console\Scheduling\Schedule $schedule + * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { - // $schedule->command('inspire')->hourly(); } /** @@ -25,7 +24,7 @@ class Kernel extends ConsoleKernel */ protected function commands() { - $this->load(__DIR__.'/Commands'); + $this->load(__DIR__ . '/Commands'); require base_path('routes/console.php'); } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 8e7fbd1..fc363c4 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -2,7 +2,7 @@ namespace App\Exceptions; -use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Kwaadpepper\ExceptionHandler\Exceptions\ExceptionHandler; use Throwable; class Handler extends ExceptionHandler @@ -13,8 +13,7 @@ class Handler extends ExceptionHandler * @var array> */ protected $dontReport = [ - // - ]; + ]; /** * A list of the inputs that are never flashed for validation exceptions. @@ -35,7 +34,6 @@ class Handler extends ExceptionHandler public function register() { $this->reportable(function (Throwable $e) { - // }); } } diff --git a/app/Http/Controllers/Bo/Auth/LoginController.php b/app/Http/Controllers/Bo/Auth/LoginController.php new file mode 100644 index 0000000..3616325 --- /dev/null +++ b/app/Http/Controllers/Bo/Auth/LoginController.php @@ -0,0 +1,99 @@ +middleware('guest:backend')->except('logout'); + } + + /** + * Show the application's login form. + * + * @return \Illuminate\View\View + */ + public function showLoginForm() + { + return view('back.auth.login'); + } + + /** + * Attempt to log the user into the application. + * + * @param \Illuminate\Http\Request $request + * @return boolean + */ + protected function attemptLogin(Request $request) + { + return Auth::guard('backend')->attempt( + $this->credentials($request), + $request->filled('remember') + ); + } + + /** + * The user has been authenticated. + * + * @param \Illuminate\Http\Request $request + * @param null $user + * @return mixed + * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing, Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + */ + protected function authenticated(Request $request, $user) + { + /** @var \App\Models\User|null */ + $user = Auth::guard('backend')->user(); + if ($user) { + $user->last_connection = now(); + $user->saveOrFail(); + Session::flash('info', trans('Vous êtes à présent connecté')); + } + } + + /** + * The user has logged out of the application. + * + * @param \Illuminate\Http\Request $request + * @return mixed + * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass + */ + protected function loggedOut(Request $request) + { + Session::flash('info', trans('Vous êtes à présent déconnecté')); + } + + /** + * Get the post register / login redirect path. + * + * @return string + */ + public function redirectPath() + { + return response()->redirectToRoute('bo.dashboard')->getTargetUrl(); + } +} diff --git a/app/Http/Controllers/Bo/HomeController.php b/app/Http/Controllers/Bo/HomeController.php new file mode 100644 index 0000000..bab943f --- /dev/null +++ b/app/Http/Controllers/Bo/HomeController.php @@ -0,0 +1,18 @@ +getModel()->getTable(); + $query = $query->where(function ($q) use ($field, $search, $table) { + foreach ($field as $f) { + $f = str_replace('?', '\?', $f); + if (is_array($f)) { + $q->orWhereRaw( + sprintf("UPPER(CONCAT(%s)) LIKE UPPER(?)", collect($f)->map(function ($q) use ($table) { + return "`$table`.`$q`"; + })->implode(', \' \', ')), + ["%$search%"] + ); + } else { + $q->orWhereRaw("UPPER(`$table`.`$f`) LIKE UPPER(?)", ["%$search%"]); + } + } + }); + } + return $query; + } + + /** + * Sort columns with a query + * + * @param Builder $query + * @param array $ignore + * @return Builder + */ + protected function sortQuery(Builder $query, array $ignore = []): Builder + { + $rName = request()->route()->getName(); + $table = $query->getModel()->getTable(); + if (request()->sort_col) { + Session::put("$rName.sort_col", request()->sort_col); + } + if (request()->sort_way) { + Session::put("$rName.sort_way", request()->sort_way); + } + if (request()->rst) { + Session::remove("$rName.sort_col"); + Session::remove("$rName.sort_way"); + } + if (request()->sort_col and request()->sort_way and Schema::hasColumn($table, request()->sort_col)) { + if ( + !isset($ignore) or + (isset($ignore) and !in_array(request()->sort_col, $ignore)) + ) { + $query = $query->orderBy(\sprintf("$table.%s", request()->sort_col), request()->sort_way); + } + } elseif (Schema::hasColumn($table, 'order')) { + $query = $query->orderBy('order', 'ASC'); + Session::put("$rName.sort_col", 'order'); + Session::put("$rName.sort_way", 'asc'); + } + return $query; + } + + /** + * Store an image of different types + * + * @param string $table + * @param \Illuminate\Http\UploadedFile|\SplFileInfo|string $image + * @return string + * @throws \ErrorException If file copy fails. + */ + public static function storeImage(string $table, $image): string + { + /** @var \Illuminate\Http\UploadedFile $image */ + if (\is_object($image) and get_class($image) === UploadedFile::class) { + $newPath = self::prepareMoveFile($table, $image->getClientOriginalName()); + $newPath = str_replace(storage_path('app'), '', $newPath); + $image->storePubliclyAs( + pathinfo($newPath, \PATHINFO_DIRNAME), + pathinfo($newPath, \PATHINFO_BASENAME) + ); + return 'storage' . str_replace('/public', '', $newPath); + } + /** @var \SplFileInfo $image */ + if (\is_object($image) and get_class($image) === \SplFileInfo::class) { + $newPath = self::prepareMoveFile($table, $image->getBaseName()); + if (!File::copy($image->getRealPath(), $newPath)) { + throw new \ErrorException(sprintf( + 'Failed to copy file %s to %s', + $image->getRealPath(), + $newPath + )); + } + return \ltrim(str_replace(\storage_path('app/public'), '/storage', $newPath), '/'); + } + if (\is_string($image)) { + return $image; + } + } + + /** + * Prepare storage path and return + * the image full path + * + * @param string $table Model table name. + * @param string $filename The basename for the file. + * @return string + */ + private static function prepareMoveFile(string $table, string $filename): string + { + $pathFolder = \storage_path(sprintf('app/public/images/%s', $table)); + if (!File::exists($pathFolder)) { + File::makeDirectory($pathFolder, 0755, true); + } + $filename = sprintf('%s-%s', Str::uuid(), $filename); + $fullPath = sprintf('%s/%s', $pathFolder, $filename); + if (File::exists($fullPath)) { + File::delete($fullPath); + } + return $fullPath; + } + + /** + * Destroy uploaded image + * + * @param Model $model + * @param string $attribute + * @return void + */ + public function removeUploadedImage(Model $model, string $attribute) + { + if (File::exists(ltrim($model->{$attribute}, '/')) and \strpos($model->{$attribute}, '/storage') === 0) { + File::delete(ltrim($model->{$attribute}, '/')); + } + } } diff --git a/app/Http/Controllers/Fo/HomeController.php b/app/Http/Controllers/Fo/HomeController.php new file mode 100644 index 0000000..740202e --- /dev/null +++ b/app/Http/Controllers/Fo/HomeController.php @@ -0,0 +1,18 @@ + */ protected $middleware = [ - // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustHosts::class, \App\Http\Middleware\TrustProxies::class, \Fruitcake\Cors\HandleCors::class, \App\Http\Middleware\PreventRequestsDuringMaintenance::class, @@ -33,17 +33,12 @@ class Kernel extends HttpKernel \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, - // \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, - 'throttle:api', - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], + \App\Http\Middleware\SecureHeaders::class + ] ]; /** @@ -63,5 +58,6 @@ class Kernel extends HttpKernel 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'xss' => \App\Http\Middleware\XssSanitizer::class, ]; } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 704089a..dc501f6 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -3,19 +3,36 @@ namespace App\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; +use Illuminate\Support\Facades\Session; class Authenticate extends Middleware { /** * Get the path the user should be redirected to when they are not authenticated. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return string|null + * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing */ protected function redirectTo($request) { - if (! $request->expectsJson()) { + $logins = [ + 'backend' => route('bo.login') + ]; + if (!$request->expectsJson()) { + // * Notify must login + Session::flash('warning', trans('Veuillez vous connecter pour continuer')); + + foreach ($request->route()->gatherMiddleware() as $middleware) { + if (\is_string($middleware) and strpos($middleware, 'auth:') !== false) { + $route = $logins[str_replace('auth:', '', $middleware)] ?? null; + if ($route) { + return $route; + } + } + } return route('login'); } + abort(401); } } diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php index 867695b..b6e9bbc 100644 --- a/app/Http/Middleware/EncryptCookies.php +++ b/app/Http/Middleware/EncryptCookies.php @@ -11,7 +11,5 @@ class EncryptCookies extends Middleware * * @var array */ - protected $except = [ - // - ]; + protected $except = []; } diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php index 74cbd9a..842e4b9 100644 --- a/app/Http/Middleware/PreventRequestsDuringMaintenance.php +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -11,7 +11,5 @@ class PreventRequestsDuringMaintenance extends Middleware * * @var array */ - protected $except = [ - // - ]; + protected $except = []; } diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index a2813a0..2f378a2 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -2,7 +2,6 @@ namespace App\Http\Middleware; -use App\Providers\RouteServiceProvider; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -12,18 +11,21 @@ class RedirectIfAuthenticated /** * Handle an incoming request. * - * @param \Illuminate\Http\Request $request - * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next - * @param string|null ...$guards + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @param string|null ...$guards * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse */ public function handle(Request $request, Closure $next, ...$guards) { + $logins = [ + 'backend' => route('bo.dashboard') + ]; $guards = empty($guards) ? [null] : $guards; foreach ($guards as $guard) { if (Auth::guard($guard)->check()) { - return redirect(RouteServiceProvider::HOME); + return \redirect()->to($logins[$guard]); } } diff --git a/app/Http/Middleware/SecureHeaders.php b/app/Http/Middleware/SecureHeaders.php new file mode 100644 index 0000000..a7aff79 --- /dev/null +++ b/app/Http/Middleware/SecureHeaders.php @@ -0,0 +1,72 @@ +removeUnwantedHeaders($this->unwantedHeaderList); + $response = $next($request); + $response->headers->set('Referrer-Policy', 'no-referrer-when-downgrade'); + $response->headers->set('X-Content-Type-Options', 'nosniff'); + $response->headers->set('X-XSS-Protection', '1; mode=block'); + $response->headers->set('X-Frame-Options', 'SAMEORIGIN'); + $response->headers->set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains;'); + $cspPolicies = [ + // phpcs:ignore Generic.Files.LineLength.TooLong + "style-src 'self' $cssDev;", + // phpcs:ignore Generic.Files.LineLength.TooLong + "script-src 'self' $jsDev;" + ]; + $response->headers->set( + 'Content-Security-Policy', + implode(' ', $cspPolicies) . $reportUri + ); + $response->headers->set('Feature-Policy', 'fullscreen \'self\';'); + return $response; + } + + /** + * Remove unwanted headers + * + * @param array $headerList + * @return void + */ + private function removeUnwantedHeaders(array $headerList) + { + foreach ($headerList as $header) { + header_remove($header); + } + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php index 3391630..d727add 100644 --- a/app/Http/Middleware/TrustProxies.php +++ b/app/Http/Middleware/TrustProxies.php @@ -17,7 +17,7 @@ class TrustProxies extends Middleware /** * The headers that should be used to detect proxies. * - * @var int + * @var integer */ protected $headers = Request::HEADER_X_FORWARDED_FOR | diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index 9e86521..70e23e1 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -11,7 +11,5 @@ class VerifyCsrfToken extends Middleware * * @var array */ - protected $except = [ - // - ]; + protected $except = []; } diff --git a/app/Http/Middleware/XssSanitizer.php b/app/Http/Middleware/XssSanitizer.php new file mode 100644 index 0000000..955d285 --- /dev/null +++ b/app/Http/Middleware/XssSanitizer.php @@ -0,0 +1,46 @@ +all(); + array_walk_recursive($inputs, function (&$input, $name) use ($params) { + if (!is_string($input)) { + return; + } + if (in_array($name, $params)) { + // ? Is a json input ? + if ($isJson = \json_decode($input, true) and is_array($isJson)) { + // ! Decode each json field recursive. + \array_walk_recursive($isJson, function (&$item) { + if (\is_string($item)) { + $item = clean($item); + $item = ToolboxHelper::stripCkEditorSchemesOnMediaInputs($item); + } + }); + } else { + $input = clean($input); + $input = ToolboxHelper::stripCkEditorSchemesOnMediaInputs($input); + } + } else { + $input = strip_tags($input); + } + }); + $request->merge($inputs); + return $next($request); + } +} diff --git a/app/Lib/ToolboxHelper.php b/app/Lib/ToolboxHelper.php new file mode 100644 index 0000000..c3d5eac --- /dev/null +++ b/app/Lib/ToolboxHelper.php @@ -0,0 +1,419 @@ +)/m', '', $input); + return $input; + } + + /** + * Assert That no Back Office url is present on txt + * + * @param string $field + * @param string $text + * @return string + * @throws \Illuminate\Validation\ValidationException If url is a bo url. + */ + public static function assertNoInternalBoUrls(string $field, string $text): string + { + $routes = Route::getRoutes(); + // * Url replace and email replace. + $text = preg_replace_callback( + // phpcs:ignore Generic.Files.LineLength.TooLong + '/(?P(?:http[s]?:\/\/.)?(?:www\.)?[-a-zA-Z0-9@%._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))/', + function ($matches) use ($routes, $field) { + $match = collect($matches)->first() ?? ''; + $url = $match; + try { + $request = Request::create($url); + // If a route is match then it do not throws exception. + if ( + \parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST) && + trim($routes->match($request)->getPrefix() ?? '', '/') === 'bo' + ) { + // Removes the matched url. + throw ValidationException::withMessages([ + $field => sprintf( + '%s : Il est interdit de coller une url du back office dans ce champ', + trans($field) + ) + ]); + } + return $match; + } catch (NotFoundHttpException $e) { + return $match; + } + }, + $text + ); + return $text; + } + + /** + * Assert That only external url is present on txt + * + * @param string $field + * @param string $text + * @return string + * @throws \Illuminate\Validation\ValidationException If url is a bo url. + */ + public static function assertNoInternalUrls(string $field, string $text): string + { + self::assertNoInternalBoUrls($field, $text); + $routes = Route::getRoutes(); + // * Url replace and email replace. + $text = preg_replace_callback( + // phpcs:ignore Generic.Files.LineLength.TooLong + '/(?P(?:http[s]?:\/\/.)?(?:www\.)?[-a-zA-Z0-9@%._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))/', + function ($matches) use ($routes, $field) { + $match = collect($matches)->first() ?? ''; + $url = $match; + try { + $request = Request::create($url); + // If a route is match then it do not throws exception. + if ( + \parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST) && + $routes->match($request) + ) { + // Removes the matched url. + throw ValidationException::withMessages([ + $field => sprintf( + '%s : Il est interdit de coller une url de %s dans ce champ', + trans($field), + config('app.name') + ) + ]); + } + return $match; + } catch (NotFoundHttpException $e) { + return $match; + } + }, + $text + ); + return $text; + } + + /** + * Generates an array from a dot separated string + * + * @param string $path + * @param mixed $value + * @param string $separator + * @return array + */ + public static function dotStringToNestedArray(string $path, $value, string $separator = '.'): array + { + $arr = $value; + $keys = array_reverse(explode($separator, $path)); + + foreach ($keys as $key) { + $arr = [$key => $arr]; + } + return $arr; + } + + /** + * Generate url using laravel route passing our group query if present + * This is used to keep ou group tracking + * Curd-policies is only used for root users as it cannot keep track of our group + * and validate things + * + * @param array|string $name + * @param mixed $parameters + * @param boolean $absolute + * @return string + * @throws \ErrorException If an object given as parameter is not a Model. + */ + public static function routeWithGroup($name, $parameters = [], bool $absolute = true): string + { + // * Handle if parameter if is an object. + if (\is_object($parameters)) { + $parents = \class_parents($parameters); + if ($parents === false or !\in_array(Model::class, $parents)) { + throw new \ErrorException(\sprintf( + '%s only support object of type %s', + __FUNCTION__, + Model::class + )); + } + /** @var \Illuminate\Database\Eloquent\Model $model */ + $model = $parameters; + $parameters = [Str::singular($model->getTable()) => $model]; + } + // * Handle if parameter isnt and array like slug or else. + if (!is_array($parameters)) { + // * Best effort, result is not garantee. + $parameters = [$parameters]; + } + // * Pass our group. + if ($group = Session::get('activeGroup', request()->group)) { + $parameters = array_merge($parameters, ['group' => $group]); + } + // * Call laravel route helper. + return route($name, $parameters, $absolute); + } + + /** + * Store an image of different types + * + * @param string $table + * @param \Illuminate\Http\UploadedFile|\SplFileInfo|string $image + * @return string + * @throws \ErrorException If file copy fails. + */ + public static function storeImage(string $table, $image): string + { + /** @var \Illuminate\Http\UploadedFile $image */ + if (\is_object($image) and get_class($image) === UploadedFile::class) { + $newPath = self::prepareMoveFile($table, $image->getClientOriginalName()); + $newPath = str_replace(storage_path('app'), '', $newPath); + $image->storePubliclyAs( + pathinfo($newPath, \PATHINFO_DIRNAME), + pathinfo($newPath, \PATHINFO_BASENAME) + ); + return 'storage' . str_replace('/public', '', $newPath); + } + /** @var \SplFileInfo $image */ + if (\is_object($image) and get_class($image) === \SplFileInfo::class) { + $newPath = self::prepareMoveFile($table, $image->getBaseName()); + if (!File::copy($image->getRealPath(), $newPath)) { + throw new \ErrorException(sprintf( + 'Failed to copy file %s to %s', + $image->getRealPath(), + $newPath + )); + } + return \ltrim(str_replace(\storage_path('app/public'), '/storage', $newPath), '/'); + } + if (\is_string($image)) { + return $image; + } + } + + /** + * Prepare storage path and return + * the image full path + * + * @param string $table Model table name. + * @param string $filename The basename for the file. + * @return string + */ + private static function prepareMoveFile(string $table, string $filename): string + { + $pathFolder = \storage_path(sprintf('app/public/images/%s', $table)); + if (!File::exists($pathFolder)) { + File::makeDirectory($pathFolder, 0755, true); + } + $filename = sprintf('%s-%s', Str::uuid(), $filename); + $fullPath = sprintf('%s/%s', $pathFolder, $filename); + if (File::exists($fullPath)) { + File::delete($fullPath); + } + return $fullPath; + } + + /** + * PDF Attributes names + * + * @param Request $request + * @return array + */ + public static function pdfAttributes(Request $request): array + { + $pdfAttributes = ['pdf' => trans('documents PDF')]; + if (\is_array($request->pdfValidate)) { + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed + collect($request->pdfValidate)->map(function ($value, $index) use (&$pdfAttributes) { + $pdfAttributes["pdfValidate.$index"] = sprintf('document PDF n°%d', $index + 1); + }); + } + return $pdfAttributes; + } + + /** + * Pdf rules + * + * @return array + */ + public static function pdfRules(): array + { + return [ + 'pdf' => 'sometimes|array', + 'pdfValidate' => 'required_with:pdf|array', + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed + 'pdfValidate.*' => function ($attribute, $value, $fail) { + if (!File::exists($value)) { + $fail(trans(":attribute n'existe pas dans le système de fichier")); + } + if (File::mimeType($value) !== 'application/pdf') { + $fail(trans(":attribute doit être un document de type 'application/pdf'")); + } + } + ]; + } + + + /** + * Merges post pdf fields with request data + * + * @param \Illuminate\Http\Request $request + * @return void + */ + public static function mergePdf(Request $request): void + { + $pdf = $request->pdf; + if (is_array($pdf)) { + $request->merge(['pdfValidate' => []]); + foreach ($pdf as $key => $pdfPath) { + // ! Empty pdf. + if ($pdfPath === 'false') { + // * Empty pdf and exit + $request->merge(['pdf' => []]); + return; + } + $decodedPath = \urldecode($pdfPath); + $request->merge([ + "pdfValidate" => array_merge( + $request->pdfValidate, + [\public_path(ltrim($decodedPath, '/'))] + ) + ]); + $changedPdf = $request->pdf; + $changedPdf[$key] = $decodedPath; + $request->merge([ + 'pdf' => $changedPdf + ]); + } + } //end if + } + + /** + * Asserts that the field is unique + * + * @param mixed $id + * @param string $field + * @param mixed $value + * @return void + * @throws \Illuminate\Validation\ValidationException If the field is not unique. + */ + public static function assertFieldIsUnique($id, string $field, $value) + { + Validator::make([$field => $value], [ + $field => Rule::unique('users', $field)->ignore($id), + ], [ + $field . '.unique' => trans('La valeur :value pour le champ :attribute est déjà utilisé', [ + 'attribute' => $field, + 'value' => $value + ]) + ])->validate(); + } + + /** + * Validate recaptcha V3 + * + * @param Request $request + * @return void + */ + public static function validateRecaptchaV3(Request $request) + { + Validator::validate($request->all(), [ + 'g-recaptcha-response' => [ + 'required', 'string', + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed, Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed + function ($attribute, $value, $fail) { + try { + $response = Http::asForm()->post('https://www.google.com/recaptcha/api/siteverify', [ + 'secret' => config('recaptcha.private'), + 'response' => \strval($value), + 'remoteip' => app('clientIp') + ]); + if ($e = $response->toException()) { + throw $e; + } + + if ( + !$response->json('success') or + !$response->json('challenge_ts') or + Carbon::parse($response->json('challenge_ts'))->lessThan(\now('utc')->subMinutes(5)) or + $response->json('hostname') !== \parse_url(config('app.url'), \PHP_URL_HOST) or + !$response->json('score') + ) { + throw new \ErrorException(); + } + if (\floatval($response->json('score')) < 0.8) { + $fail('Vous n\'avez pas obtenu un score assez élevé lors de la validation du recaptcha'); + } + } catch (\Exception $e) { + $fail('Erreur lors de la validation du formulaire veuillez réssayer'); + } //end try + } + ] + ], [], ['g-recaptcha-response' => 'reCaptcha']); + } + + /** + * * Register CSP report URI + * + * Put this function inside RouteServiceProvider, + * and call it in RouteServiceProvider::boot + * + * ! Use this in conjonction with kwaadpepper/exception-handler + * + * @return void + */ + public static function cspReportRoute() + { + // * CSP REPORT URI, Please add /csp-report to VerifyCsrfToken $except middleware + \Illuminate\Support\Facades\Route::post('/csp-report', function () { + $isCspRequest = request()->header('Content-Type') === 'application/csp-report'; + if (!$isCspRequest or !request()->json('csp-report') or !is_array(request()->json('csp-report'))) { + abort(401); + } + // * Flatten if needed + $cspReport = collect(request()->json('csp-report')) + ->flatMap(function ($v, $k) { + return [$k => is_array($v) ? collect($v)->flatten()->implode(', ') : $v]; + })->all(); + // * Filter array keys + $cspReport = collect(array_intersect_key($cspReport, [ + 'blocked-uri' => '', 'document-uri' => '', 'original-policy' => '', + 'referrer' => '', 'violated-directive' => '' + ])); + report(new \Illuminate\Http\Client\HttpClientException(sprintf( + "CSP REPORT for %s : \n %s", + $cspReport->get('document-uri'), + $cspReport->implode("\n") + ))); + })->middleware('throttle:5,2') + ->withoutMiddleware(\App\Http\Middleware\VerifyCsrfToken::class) + ->name('cspReportUri'); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 8996368..257aba7 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,15 +2,19 @@ namespace App\Models; -use Illuminate\Contracts\Auth\MustVerifyEmail; +use App\Lib\ToolboxHelper; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Str; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { - use HasApiTokens, HasFactory, Notifiable; + use HasApiTokens; + use HasFactory; + use Notifiable; /** * The attributes that are mass assignable. @@ -40,5 +44,45 @@ class User extends Authenticatable */ protected $casts = [ 'email_verified_at' => 'datetime', + 'last_connection' => 'datetime', ]; + + /** + * Perform any actions required after the model boots. + * + * @return void + */ + protected static function booted() + { + // * EVENT CLOSURES. + static::creating(function (self $user) { + static::assertEmailIsUnique($user->id, $user->email); + if (Hash::needsRehash($user->password)) { + $user->password = Hash::make($user->password); + } + $user->remember_token = Str::random(10); + }); + static::updating(function (self $user) { + static::assertEmailIsUnique($user->id, $user->email); + if (Hash::needsRehash($user->password)) { + $user->password = Hash::make($user->password); + } + $user->remember_token = Str::random(10); + }); + } + + // * METHODS + + /** + * Asserts using validation that the email is unique + * + * @param mixed $id + * @param mixed $email + * @return void + * @throws \Illuminate\Validation\ValidationException If user email as already used. + */ + private static function assertEmailIsUnique($id, $email) + { + ToolboxHelper::assertFieldIsUnique($id, 'email', $email); + } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ee8ca5b..260aedc 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,20 +2,13 @@ namespace App\Providers; +use Illuminate\Pagination\Paginator; +use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { - /** - * Register any application services. - * - * @return void - */ - public function register() - { - // - } - /** * Bootstrap any application services. * @@ -23,6 +16,37 @@ class AppServiceProvider extends ServiceProvider */ public function boot() { - // + // * LOCAL HTTPS FIX + if (config('app.env') !== 'local') { + URL::forceScheme('https'); + } + + // * LOCAL FORCE eg: for Carbon + // * Remove numeric to prevent float seperator to breaking numeric transactions + \collect([\LC_TIME, \LC_MESSAGES, \LC_COLLATE, \LC_CTYPE, \LC_MONETARY]) + ->map(function ($contant) { + setlocale( + $contant, + \sprintf( + '%s_%s.UTF-8', + config('app.locale'), + \strtoupper(config('app.locale')) + ) + ); + }); + Carbon::setLocale(config('app.locale')); + + // * Force bootstrap paginator + Paginator::useBootstrap(); + + // * HA PROXY FIX + app()->singleton('clientIp', function () { + if ( + config('app.env') === 'local' + ) { + return request()->getClientIp(); + } + return request()->server('HTTP_X_FORWARDED_FOR') ?? request()->getClientIp(); + }); } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 22b77e6..afb0cf8 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -3,7 +3,6 @@ namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; -use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider { @@ -12,9 +11,7 @@ class AuthServiceProvider extends ServiceProvider * * @var array */ - protected $policies = [ - // 'App\Models\Model' => 'App\Policies\ModelPolicy', - ]; + protected $policies = []; /** * Register any authentication / authorization services. @@ -24,7 +21,5 @@ class AuthServiceProvider extends ServiceProvider public function boot() { $this->registerPolicies(); - - // } } diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php deleted file mode 100644 index 395c518..0000000 --- a/app/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ -configureRateLimiting(); + ToolboxHelper::cspReportRoute(); + $this->routes(function () { - Route::prefix('api') - ->middleware('api') + Route::middleware('web') ->namespace($this->namespace) - ->group(base_path('routes/api.php')); + ->group(base_path('routes/web-bo.php')); Route::middleware('web') ->namespace($this->namespace) - ->group(base_path('routes/web.php')); + ->group(base_path('routes/web-fo.php')); }); } @@ -56,8 +49,8 @@ class RouteServiceProvider extends ServiceProvider */ protected function configureRateLimiting() { - RateLimiter::for('api', function (Request $request) { - return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); + RateLimiter::for('web', function (Request $request) { + return Limit::perMinute(150)->by(optional($request->user())->id ?: app('clientIp')); }); } } diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php new file mode 100644 index 0000000..816aaa6 --- /dev/null +++ b/app/Providers/TranslationServiceProvider.php @@ -0,0 +1,77 @@ +collectLocalesStrings() as $locale) { + // * Suported locales + Cache::rememberForever(sprintf('translations.%s', $locale), function () use ($locale) { + $translations = [ + 'php' => $this->phpTranslations($locale), + 'json' => $this->jsonTranslations($locale), + ]; + return $translations; + }); + } + } + + /** + * Gather provided langs checking from files + * + * @return Collection + */ + private function collectLocalesStrings(): Collection + { + return collect(File::allFiles(resource_path('lang/')))->flatMap(function ($file) { + if ($file->getRelativePath()) { + return [$file->getRelativePath() => '']; + } + })->keys(); + } + + /** + * Gather all php translations + * + * @param string $locale + * @return array + */ + private function phpTranslations(string $locale): array + { + $path = resource_path("lang/$locale"); + + return collect(File::allFiles($path))->flatMap(function ($file) use ($locale) { + $translation = $file->getBasename('.php'); + return [$translation => trans($translation, [], $locale)]; + })->all(); + } + + /** + * Gather json translations + * + * @param string $locale + * @return array + */ + private function jsonTranslations(string $locale): array + { + $path = resource_path("lang/$locale.json"); + + if (is_string($path) && is_readable($path)) { + return json_decode(file_get_contents($path), true) ?? []; + } + + return []; + } +} diff --git a/app/Traits/HasPicture.php b/app/Traits/HasPicture.php new file mode 100644 index 0000000..91fdce2 --- /dev/null +++ b/app/Traits/HasPicture.php @@ -0,0 +1,144 @@ + [ + 'required', + function (string $attribute, $value, callable $fail) { + return $this->validatePicture($attribute, $value, $fail); + } + ] + ]; + } + + /** + * Images rules + * + * @return array + */ + public function pictureRules(): array + { + return [ + 'pictures' => 'sometimes|array', + 'pictureValidate' => 'required_with:pictures|array', + 'pictureValidate.*' => [ + 'required', + function (string $attribute, $value, callable $fail) { + return $this->validatePicture($attribute, $value, $fail); + } + ] + ]; + } + + /** + * Validate picture + * + * @param string $attribute + * @param mixed $value + * @param callback $fail + * @return void + * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed + */ + private function validatePicture(string $attribute, $value, callable $fail) + { + if (!File::exists($value)) { + $fail(trans(":attribute n'existe pas dans le système de fichier")); + return; + } + if (!\in_array(File::mimeType($value), ['image/jpeg', 'image/jpg', 'image/png'])) { + $fail(trans(":attribute doit être une image de type 'image/jpeg,image/jpg,image/png'")); + } + if (!($dimensions = \getimagesize($value)) or !isset($dimensions[0]) or !isset($dimensions[1])) { + $fail(trans(":attribute impossible de valider les dimensions")); + } else { + $minWith = 400; + $maxWith = 1800; + $minHeight = 300; + $maxHeight = 1800; + $width = intval($dimensions[0]); + $height = intval($dimensions[1]); + if (($width < $minWith) or ($width > $maxWith)) { + $fail(trans(":attribute la largeur doit être comprise entre $minWith et $maxWith")); + } + if (($height < $minHeight) or ($height > $maxHeight)) { + $fail(trans(":attribute la hauteur doit être comprise entre $minHeight et $maxHeight")); + } + } + } + + /** + * Merges products pictures fields with request data + * + * @return void + */ + protected function mergePicture(): void + { + $picturePath = $this->picture; + if (is_string($picturePath)) { + $this->merge(['pictureValidate' => []]); + // ! Empty picture. + if ($picturePath === 'false') { + // * Empty picture and exit + $this->merge(['pictures' => []]); + return; + } + $decodedPath = \urldecode($picturePath); + $this->merge([ + 'pictureValidate' => array_merge( + $this->pictureValidate, + [\public_path(ltrim($decodedPath, '/'))] + ) + ]); + $changedPicture = $this->picture; + $changedPicture = ltrim($decodedPath, '/'); + $this->merge([ + 'picture' => $changedPicture + ]); + } //end if + } + + /** + * Merges products pictures fields with request data + * + * @return void + */ + protected function mergePictures(): void + { + $pictures = $this->pictures; + if (is_array($pictures)) { + $this->merge(['pictureValidate' => []]); + foreach ($pictures as $key => $picturePath) { + // ! Empty picture. + if ($picturePath === 'false') { + // * Empty picture and exit + $this->merge(['pictures' => []]); + return; + } + $decodedPath = \urldecode($picturePath); + $this->merge([ + 'pictureValidate' => array_merge( + $this->pictureValidate, + [\public_path(ltrim($decodedPath, '/'))] + ) + ]); + $changedPicture = $this->pictures; + $changedPicture[$key] = ltrim($decodedPath, '/'); + $this->merge([ + 'pictures' => $changedPicture + ]); + } + } //end if + } +} diff --git a/app/Traits/MiniCrudModel.php b/app/Traits/MiniCrudModel.php new file mode 100644 index 0000000..2c8c8c9 --- /dev/null +++ b/app/Traits/MiniCrudModel.php @@ -0,0 +1,103 @@ +setData($attributes['data']); + } + } + + /** + * Set a specific prop + * + * @param array $data + * @return void + */ + private function setData(array $data): void + { + $attrs = $this->attributes; + if (isset($attrs['data'])) { + unset($attrs['data']); + } + $data = $this->serializeData($data); + $this->setRawAttributes(\array_merge_recursive( + $attrs, + ['data' => $data] + )); + } + + /** + * Get data attribute + * Cast json_decode to object. + * + * @return object|null + */ + protected function getDataAttribute(): ?object + { + return \json_decode($this->getAttributes()['data'] ?? '[]'); + } + + /** + * Get data attribute + * Cast json_decode to object. + * + * @param array $data + * @return void + */ + protected function setDataAttribute(array $data): void + { + $this->setData($data); + } + + /** + * Serialize properties + * + * @param array $data + * @return string + * @throws \ErrorException If input type is no handled. + * @throws \Illuminate\Validation\ValidationException If url is a bo url. + * @phpcs:disable Squiz.Commenting.FunctionCommentThrowTag.WrongNumber + * @phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh + */ + private function serializeData(array $data): string + { + foreach ($data as $o => $input) { + switch ($input['inputType']->value ?? $input['inputType']['value']) { + case InputType::image()->value: + $data[$o]['value'] = ToolboxHelper::storeImage($this->getTable(), $input['value']); + break; + case InputType::boolean()->value: + case InputType::text()->value: + case InputType::number()->value: + case InputType::string()->value: + case InputType::videoVimeo()->value: + break; + case InputType::url()->value: + ToolboxHelper::assertNoInternalBoUrls('content', $input['value']); + break; + default: + throw new \ErrorException(sprintf( + 'Unknown input Type %s', + $input['inputType']->label ?? $input['inputType']['label'] + )); + } + }//end foreach + return json_encode($data); + } +} diff --git a/app/Traits/UpdateModelStatus.php b/app/Traits/UpdateModelStatus.php new file mode 100644 index 0000000..cc67e7e --- /dev/null +++ b/app/Traits/UpdateModelStatus.php @@ -0,0 +1,26 @@ +status = !$model->status; + $model->saveOrFail(); + return redirect()->back(); + } +} diff --git a/composer.json b/composer.json index 2b0c115..6e1006d 100644 --- a/composer.json +++ b/composer.json @@ -6,11 +6,17 @@ "license": "MIT", "require": { "php": "^7.3|^8.0", + "diglactic/laravel-breadcrumbs": "^7.2", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", + "kwaadpepper/exception-handler": "^0.0.8", "laravel/framework": "^8.75", "laravel/sanctum": "^2.11", - "laravel/tinker": "^2.5" + "laravel/tinker": "^2.5", + "laravel/ui": "^3.4", + "mews/purifier": "^3.3", + "slevomat/coding-standard": "^7.2", + "spatie/laravel-mix-preload": "^1.3" }, "require-dev": { "facade/ignition": "^2.5", @@ -55,7 +61,10 @@ "config": { "optimize-autoloader": true, "preferred-install": "dist", - "sort-packages": true + "sort-packages": true, + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } }, "minimum-stability": "dev", "prefer-stable": true diff --git a/composer.lock b/composer.lock index 9afb697..e6f9f3b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c61ff82cbf0142a401a48a8161e1595a", + "content-hash": "d1d7f10ebf8699ef02c0888a44a347da", "packages": [ { "name": "asm89/stack-cors", @@ -122,6 +122,152 @@ ], "time": "2021-08-15T20:50:18+00:00" }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.7.2", + "source": { + "type": "git", + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + }, + "time": "2022-02-04T12:51:07+00:00" + }, + { + "name": "diglactic/laravel-breadcrumbs", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/diglactic/laravel-breadcrumbs.git", + "reference": "309ec597d047b763d1df3c5113a3932cc771500f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/309ec597d047b763d1df3c5113a3932cc771500f", + "reference": "309ec597d047b763d1df3c5113a3932cc771500f", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "^1.0", + "laravel/framework": "^6.0 || ^7.0 || ^8.0 || ^9.0", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "davejamesmiller/laravel-breadcrumbs": "*" + }, + "require-dev": { + "orchestra/testbench": "^4.10 || ^5.9 || ^6.4 || ^7.0", + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpunit": "^8.5 || ^9.4", + "spatie/phpunit-snapshot-assertions": "^2.2 || ^4.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Diglactic\\Breadcrumbs\\ServiceProvider" + ], + "aliases": { + "Breadcrumbs": "Diglactic\\Breadcrumbs\\Breadcrumbs" + } + } + }, + "autoload": { + "psr-4": { + "Diglactic\\Breadcrumbs\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sheng Slogar", + "email": "sheng@diglactic.com", + "role": "Maintainer" + }, + { + "name": "Dave James Miller", + "email": "dave@davejamesmiller.com", + "role": "Original Creator" + } + ], + "description": "A simple Laravel-style way to create breadcrumbs.", + "homepage": "https://github.com/diglactic/laravel-breadcrumbs", + "keywords": [ + "laravel" + ], + "support": { + "issues": "https://github.com/diglactic/laravel-breadcrumbs/issues", + "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v7.2.0" + }, + "time": "2022-05-03T05:40:37+00:00" + }, { "name": "doctrine/inflector", "version": "2.0.4", @@ -418,6 +564,113 @@ ], "time": "2020-12-29T14:50:06+00:00" }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.13.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/08e27c97e4c6ed02f37c5b2b20488046c8d90d75", + "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "require-dev": { + "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" + }, + "type": "library", + "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/master" + }, + "time": "2020-06-29T00:56:53+00:00" + }, + { + "name": "facade/ignition-contracts", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" + }, { "name": "fruitcake/laravel-cors", "version": "v2.2.0", @@ -882,6 +1135,67 @@ ], "time": "2022-03-20T21:55:58+00:00" }, + { + "name": "kwaadpepper/exception-handler", + "version": "0.0.8", + "source": { + "type": "git", + "url": "https://github.com/Kwaadpepper/exception-handler.git", + "reference": "e8ba0e31ca2bf5971e459c623f0f5322a4c7a630" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kwaadpepper/exception-handler/zipball/e8ba0e31ca2bf5971e459c623f0f5322a4c7a630", + "reference": "e8ba0e31ca2bf5971e459c623f0f5322a4c7a630", + "shasum": "" + }, + "require": { + "illuminate/support": "~7|~8|~9", + "laravel/framework": "~7|~8|~9" + }, + "require-dev": { + "orchestra/testbench": "^6.13", + "phpunit/phpunit": "~9.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kwaadpepper\\ExceptionHandler\\ExceptionHandlerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kwaadpepper\\ExceptionHandler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Munsch", + "email": "github@jeremydev.ovh", + "homepage": "https://jeremydev.ovh" + } + ], + "description": "Send emails when exceptions occurs", + "homepage": "https://github.com/kwaadpepper/exception-handler", + "keywords": [ + "email", + "exception", + "laravel", + "policies" + ], + "support": { + "issues": "https://github.com/Kwaadpepper/exception-handler/issues", + "source": "https://github.com/Kwaadpepper/exception-handler/tree/0.0.8" + }, + "time": "2022-02-03T15:23:22+00:00" + }, { "name": "laravel/framework", "version": "v8.83.13", @@ -1247,6 +1561,67 @@ }, "time": "2022-03-23T12:38:24+00:00" }, + { + "name": "laravel/ui", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/laravel/ui.git", + "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/ui/zipball/65ec5c03f7fee2c8ecae785795b829a15be48c2c", + "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.42|^9.0", + "illuminate/filesystem": "^8.42|^9.0", + "illuminate/support": "^8.82|^9.0", + "illuminate/validation": "^8.42|^9.0", + "php": "^7.3|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Ui\\UiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel UI utilities and presets.", + "keywords": [ + "laravel", + "ui" + ], + "support": { + "source": "https://github.com/laravel/ui/tree/v3.4.6" + }, + "time": "2022-05-20T13:38:08+00:00" + }, { "name": "league/commonmark", "version": "1.6.7", @@ -1490,6 +1865,87 @@ ], "time": "2022-04-17T13:12:02+00:00" }, + { + "name": "mews/purifier", + "version": "3.3.7", + "source": { + "type": "git", + "url": "https://github.com/mewebstudio/Purifier.git", + "reference": "9844bc82886e4291b3116afbd9ab5f532856662a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mewebstudio/Purifier/zipball/9844bc82886e4291b3116afbd9ab5f532856662a", + "reference": "9844bc82886e4291b3116afbd9ab5f532856662a", + "shasum": "" + }, + "require": { + "ezyang/htmlpurifier": "4.13.*", + "illuminate/config": "^5.8|^6.0|^7.0|^8.0|^9.0", + "illuminate/filesystem": "^5.8|^6.0|^7.0|^8.0|^9.0", + "illuminate/support": "^5.8|^6.0|^7.0|^8.0|^9.0", + "php": "^7.2|^8.0" + }, + "require-dev": { + "graham-campbell/testbench": "^3.2|^5.5.1", + "mockery/mockery": "^1.3.3", + "phpunit/phpunit": "^8.0|^9.0" + }, + "suggest": { + "laravel/framework": "To test the Laravel bindings", + "laravel/lumen-framework": "To test the Lumen bindings" + }, + "type": "package", + "extra": { + "laravel": { + "providers": [ + "Mews\\Purifier\\PurifierServiceProvider" + ], + "aliases": { + "Purifier": "Mews\\Purifier\\Facades\\Purifier" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Mews\\Purifier\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Muharrem ERİN", + "email": "me@mewebstudio.com", + "homepage": "https://github.com/mewebstudio", + "role": "Developer" + } + ], + "description": "Laravel 5/6/7 HtmlPurifier Package", + "homepage": "https://github.com/mewebstudio/purifier", + "keywords": [ + "Purifier", + "htmlpurifier", + "laravel5 HtmlPurifier", + "laravel5 Purifier", + "laravel5 Security", + "laravel6 HtmlPurifier", + "laravel6 Purifier", + "laravel6 Security", + "security", + "xss" + ], + "support": { + "issues": "https://github.com/mewebstudio/Purifier/issues", + "source": "https://github.com/mewebstudio/Purifier/tree/3.3.7" + }, + "time": "2022-02-12T15:54:11+00:00" + }, { "name": "monolog/monolog", "version": "2.6.0", @@ -1883,6 +2339,50 @@ ], "time": "2021-12-04T23:24:31+00:00" }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "981cc368a216c988e862a75e526b6076987d1b50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/981cc368a216c988e862a75e526b6076987d1b50", + "reference": "981cc368a216c988e862a75e526b6076987d1b50", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.5.1" + }, + "time": "2022-05-05T11:32:40+00:00" + }, { "name": "psr/container", "version": "1.1.1", @@ -2539,6 +3039,191 @@ ], "time": "2021-09-25T23:10:38+00:00" }, + { + "name": "slevomat/coding-standard", + "version": "7.2.1", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/aff06ae7a84e4534bf6f821dc982a93a5d477c90", + "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.5.1", + "squizlabs/php_codesniffer": "^3.6.2" + }, + "require-dev": { + "phing/phing": "2.17.3", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.4.10|1.7.1", + "phpstan/phpstan-deprecation-rules": "1.0.0", + "phpstan/phpstan-phpunit": "1.0.0|1.1.1", + "phpstan/phpstan-strict-rules": "1.2.3", + "phpunit/phpunit": "7.5.20|8.5.21|9.5.20" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "support": { + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/7.2.1" + }, + "funding": [ + { + "url": "https://github.com/kukulich", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" + } + ], + "time": "2022-05-25T10:58:12+00:00" + }, + { + "name": "spatie/laravel-mix-preload", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-mix-preload.git", + "reference": "cfd4549939e7b7e0df9361b36eaa3ef11e8bc16f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-mix-preload/zipball/cfd4549939e7b7e0df9361b36eaa3ef11e8bc16f", + "reference": "cfd4549939e7b7e0df9361b36eaa3ef11e8bc16f", + "shasum": "" + }, + "require": { + "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "php": "^7.3|^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5.7" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\MixPreload\\MixPreloadServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\MixPreload\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Add preload and prefetch links based your Mix manifest", + "homepage": "https://github.com/spatie/laravel-mix-preload", + "keywords": [ + "laravel-mix-preload", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-mix-preload/issues", + "source": "https://github.com/spatie/laravel-mix-preload/tree/1.3.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://www.patreon.com/spatie", + "type": "patreon" + } + ], + "time": "2022-02-01T14:36:12+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.6.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a", + "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2021-12-12T21:44:58+00:00" + }, { "name": "swiftmailer/swiftmailer", "version": "v6.3.0", @@ -5295,59 +5980,6 @@ }, "time": "2022-02-23T18:31:24+00:00" }, - { - "name": "facade/ignition-contracts", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition-contracts.git", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v2.15.8", - "phpunit/phpunit": "^9.3.11", - "vimeo/psalm": "^3.17.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Facade\\IgnitionContracts\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://flareapp.io", - "role": "Developer" - } - ], - "description": "Solution contracts for Ignition", - "homepage": "https://github.com/facade/ignition-contracts", - "keywords": [ - "contracts", - "flare", - "ignition" - ], - "support": { - "issues": "https://github.com/facade/ignition-contracts/issues", - "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" - }, - "time": "2020-10-16T08:27:54+00:00" - }, { "name": "fakerphp/faker", "version": "v1.19.0", @@ -7598,5 +8230,5 @@ "php": "^7.3|^8.0" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/config/app.php b/config/app.php index a8d1a82..c98a813 100644 --- a/config/app.php +++ b/config/app.php @@ -3,53 +3,53 @@ return [ /* - |-------------------------------------------------------------------------- - | Application Name - |-------------------------------------------------------------------------- - | - | This value is the name of your application. This value is used when the - | framework needs to place the application's name in a notification or - | any other location as required by the application or its packages. - | + |-------------------------------------------------------------------------- + | Application Name + |-------------------------------------------------------------------------- + | + | This value is the name of your application. This value is used when the + | framework needs to place the application's name in a notification or + | any other location as required by the application or its packages. + | */ 'name' => env('APP_NAME', 'Laravel'), /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | */ 'env' => env('APP_ENV', 'production'), /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | */ - 'debug' => (bool) env('APP_DEBUG', false), + 'debug' => (bool)env('APP_DEBUG', false), /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | */ 'url' => env('APP_URL', 'http://localhost'), @@ -57,66 +57,66 @@ return [ 'asset_url' => env('ASSET_URL', null), /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | */ - 'timezone' => 'UTC', + 'timezone' => 'Europe/Paris', /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | */ - 'locale' => 'en', + 'locale' => 'fr', /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | */ 'fallback_locale' => 'en', /* - |-------------------------------------------------------------------------- - | Faker Locale - |-------------------------------------------------------------------------- - | - | This locale will be used by the Faker PHP library when generating fake - | data for your database seeds. For example, this will be used to get - | localized telephone numbers, street address information and more. - | + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | */ - 'faker_locale' => 'en_US', + 'faker_locale' => 'fr_FR', /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | */ 'key' => env('APP_KEY'), @@ -124,14 +124,14 @@ return [ 'cipher' => 'AES-256-CBC', /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | */ 'providers' => [ @@ -139,6 +139,7 @@ return [ /* * Laravel Framework Service Providers... */ + Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, Illuminate\Bus\BusServiceProvider::class, @@ -169,23 +170,24 @@ return [ /* * Application Service Providers... */ + App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, - // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, + App\Providers\TranslationServiceProvider::class, ], /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | */ 'aliases' => [ @@ -218,7 +220,6 @@ return [ 'Queue' => Illuminate\Support\Facades\Queue::class, 'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, - // 'Redis' => Illuminate\Support\Facades\Redis::class, 'Request' => Illuminate\Support\Facades\Request::class, 'Response' => Illuminate\Support\Facades\Response::class, 'Route' => Illuminate\Support\Facades\Route::class, diff --git a/config/auth.php b/config/auth.php index d8c6cee..f794833 100644 --- a/config/auth.php +++ b/config/auth.php @@ -3,60 +3,60 @@ return [ /* - |-------------------------------------------------------------------------- - | Authentication Defaults - |-------------------------------------------------------------------------- - | - | This option controls the default authentication "guard" and password - | reset options for your application. You may change these defaults - | as required, but they're a perfect start for most applications. - | + |-------------------------------------------------------------------------- + | Authentication Defaults + |-------------------------------------------------------------------------- + | + | This option controls the default authentication "guard" and password + | reset options for your application. You may change these defaults + | as required, but they're a perfect start for most applications. + | */ 'defaults' => [ - 'guard' => 'web', + 'guard' => 'backend', 'passwords' => 'users', ], /* - |-------------------------------------------------------------------------- - | Authentication Guards - |-------------------------------------------------------------------------- - | - | Next, you may define every authentication guard for your application. - | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | Supported: "session" - | + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | */ 'guards' => [ - 'web' => [ + 'backend' => [ 'driver' => 'session', 'provider' => 'users', ], ], /* - |-------------------------------------------------------------------------- - | User Providers - |-------------------------------------------------------------------------- - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then - | be assigned to any extra authentication guards you have defined. - | - | Supported: "database", "eloquent" - | + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | */ 'providers' => [ @@ -64,26 +64,21 @@ return [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], - - // 'users' => [ - // 'driver' => 'database', - // 'table' => 'users', - // ], ], /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. - | - | The expire time is the number of minutes that each reset token will be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | */ 'passwords' => [ @@ -96,14 +91,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Password Confirmation Timeout - |-------------------------------------------------------------------------- - | - | Here you may define the amount of seconds before a password confirmation - | times out and the user is prompted to re-enter their password via the - | confirmation screen. By default, the timeout lasts for three hours. - | + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | */ 'password_timeout' => 10800, diff --git a/config/broadcasting.php b/config/broadcasting.php index 2d52982..b80d371 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -3,29 +3,29 @@ return [ /* - |-------------------------------------------------------------------------- - | Default Broadcaster - |-------------------------------------------------------------------------- - | - | This option controls the default broadcaster that will be used by the - | framework when an event needs to be broadcast. You may set this to - | any of the connections defined in the "connections" array below. - | - | Supported: "pusher", "ably", "redis", "log", "null" - | + |-------------------------------------------------------------------------- + | Default Broadcaster + |-------------------------------------------------------------------------- + | + | This option controls the default broadcaster that will be used by the + | framework when an event needs to be broadcast. You may set this to + | any of the connections defined in the "connections" array below. + | + | Supported: "pusher", "ably", "redis", "log", "null" + | */ 'default' => env('BROADCAST_DRIVER', 'null'), /* - |-------------------------------------------------------------------------- - | Broadcast Connections - |-------------------------------------------------------------------------- - | - | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of - | each available type of connection are provided inside this array. - | + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | */ 'connections' => [ diff --git a/config/cache.php b/config/cache.php index 8736c7a..c15de39 100644 --- a/config/cache.php +++ b/config/cache.php @@ -5,30 +5,30 @@ use Illuminate\Support\Str; return [ /* - |-------------------------------------------------------------------------- - | Default Cache Store - |-------------------------------------------------------------------------- - | - | This option controls the default cache connection that gets used while - | using this caching library. This connection is used when another is - | not explicitly specified when executing a given caching function. - | + |-------------------------------------------------------------------------- + | Default Cache Store + |-------------------------------------------------------------------------- + | + | This option controls the default cache connection that gets used while + | using this caching library. This connection is used when another is + | not explicitly specified when executing a given caching function. + | */ 'default' => env('CACHE_DRIVER', 'file'), /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - | Supported drivers: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb", "octane", "null" - | + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | */ 'stores' => [ @@ -61,9 +61,7 @@ return [ env('MEMCACHED_USERNAME'), env('MEMCACHED_PASSWORD'), ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], + 'options' => [], 'servers' => [ [ 'host' => env('MEMCACHED_HOST', '127.0.0.1'), @@ -95,16 +93,16 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing a RAM based store such as APC or Memcached, there might + | be other applications utilizing the same cache. So, we'll specify a + | value to get prefixed to all our keys so we can avoid collisions. + | */ - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_cache'), ]; diff --git a/config/cors.php b/config/cors.php index 8a39e6d..32a0f68 100644 --- a/config/cors.php +++ b/config/cors.php @@ -3,16 +3,16 @@ return [ /* - |-------------------------------------------------------------------------- - | Cross-Origin Resource Sharing (CORS) Configuration - |-------------------------------------------------------------------------- - | - | Here you may configure your settings for cross-origin resource sharing - | or "CORS". This determines what cross-origin operations may execute - | in web browsers. You are free to adjust these settings as needed. - | - | To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - | + |-------------------------------------------------------------------------- + | Cross-Origin Resource Sharing (CORS) Configuration + |-------------------------------------------------------------------------- + | + | Here you may configure your settings for cross-origin resource sharing + | or "CORS". This determines what cross-origin operations may execute + | in web browsers. You are free to adjust these settings as needed. + | + | To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS + | */ 'paths' => ['api/*', 'sanctum/csrf-cookie'], diff --git a/config/database.php b/config/database.php index b42d9b3..ac4559f 100644 --- a/config/database.php +++ b/config/database.php @@ -5,32 +5,32 @@ use Illuminate\Support\Str; return [ /* - |-------------------------------------------------------------------------- - | Default Database Connection Name - |-------------------------------------------------------------------------- - | - | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. - | + |-------------------------------------------------------------------------- + | Default Database Connection Name + |-------------------------------------------------------------------------- + | + | Here you may specify which of the database connections below you wish + | to use as your default connection for all database work. Of course + | you may use many connections at once using the Database library. + | */ 'default' => env('DB_CONNECTION', 'mysql'), /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | */ 'connections' => [ @@ -94,27 +94,27 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | */ 'migrations' => 'migrations', /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer body of commands than a typical key-value system - | such as APC or Memcached. Laravel makes it easy to dig right in. - | + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | */ 'redis' => [ @@ -123,7 +123,7 @@ return [ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), ], 'default' => [ diff --git a/config/exception-handler.php b/config/exception-handler.php new file mode 100644 index 0000000..e552f74 --- /dev/null +++ b/config/exception-handler.php @@ -0,0 +1,15 @@ + !config('app.debug'), + + /** + * Put a developper secured mailbox in here + * so you can receive email if things go mad + */ + 'contactsList' => explode(',', env('MAIL_ERRORS')) +]; diff --git a/config/filesystems.php b/config/filesystems.php index 760ef97..0dece94 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -3,29 +3,29 @@ return [ /* - |-------------------------------------------------------------------------- - | Default Filesystem Disk - |-------------------------------------------------------------------------- - | - | Here you may specify the default filesystem disk that should be used - | by the framework. The "local" disk, as well as a variety of cloud - | based disks are available to your application. Just store away! - | + |-------------------------------------------------------------------------- + | Default Filesystem Disk + |-------------------------------------------------------------------------- + | + | Here you may specify the default filesystem disk that should be used + | by the framework. The "local" disk, as well as a variety of cloud + | based disks are available to your application. Just store away! + | */ 'default' => env('FILESYSTEM_DRIVER', 'local'), /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - | Supported Drivers: "local", "ftp", "sftp", "s3" - | + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | */ 'disks' => [ @@ -38,7 +38,7 @@ return [ 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', + 'url' => env('APP_URL') . '/storage', 'visibility' => 'public', ], @@ -56,14 +56,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Symbolic Links - |-------------------------------------------------------------------------- - | - | Here you may configure the symbolic links that will be created when the - | `storage:link` Artisan command is executed. The array keys should be - | the locations of the links and the values should be their targets. - | + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | */ 'links' => [ diff --git a/config/hashing.php b/config/hashing.php index bcd3be4..db3d9dd 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -3,29 +3,29 @@ return [ /* - |-------------------------------------------------------------------------- - | Default Hash Driver - |-------------------------------------------------------------------------- - | - | This option controls the default hash driver that will be used to hash - | passwords for your application. By default, the bcrypt algorithm is - | used; however, you remain free to modify this option if you wish. - | - | Supported: "bcrypt", "argon", "argon2id" - | + |-------------------------------------------------------------------------- + | Default Hash Driver + |-------------------------------------------------------------------------- + | + | This option controls the default hash driver that will be used to hash + | passwords for your application. By default, the bcrypt algorithm is + | used; however, you remain free to modify this option if you wish. + | + | Supported: "bcrypt", "argon", "argon2id" + | */ 'driver' => 'bcrypt', /* - |-------------------------------------------------------------------------- - | Bcrypt Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Bcrypt algorithm. This will allow you - | to control the amount of time it takes to hash the given password. - | + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | */ 'bcrypt' => [ @@ -33,14 +33,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Argon Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Argon algorithm. These will allow you - | to control the amount of time it takes to hash the given password. - | + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | */ 'argon' => [ diff --git a/config/logging.php b/config/logging.php index 880cd92..873bc0f 100644 --- a/config/logging.php +++ b/config/logging.php @@ -7,44 +7,44 @@ use Monolog\Handler\SyslogUdpHandler; return [ /* - |-------------------------------------------------------------------------- - | Default Log Channel - |-------------------------------------------------------------------------- - | - | This option defines the default log channel that gets used when writing - | messages to the logs. The name specified in this option should match - | one of the channels defined in the "channels" configuration array. - | + |-------------------------------------------------------------------------- + | Default Log Channel + |-------------------------------------------------------------------------- + | + | This option defines the default log channel that gets used when writing + | messages to the logs. The name specified in this option should match + | one of the channels defined in the "channels" configuration array. + | */ 'default' => env('LOG_CHANNEL', 'stack'), /* - |-------------------------------------------------------------------------- - | Deprecations Log Channel - |-------------------------------------------------------------------------- - | - | This option controls the log channel that should be used to log warnings - | regarding deprecated PHP and library features. This allows you to get - | your application ready for upcoming major versions of dependencies. - | + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | */ 'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), /* - |-------------------------------------------------------------------------- - | Log Channels - |-------------------------------------------------------------------------- - | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" - | + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | */ 'channels' => [ diff --git a/config/mail.php b/config/mail.php index f96c6c7..21fc106 100644 --- a/config/mail.php +++ b/config/mail.php @@ -3,34 +3,34 @@ return [ /* - |-------------------------------------------------------------------------- - | Default Mailer - |-------------------------------------------------------------------------- - | - | This option controls the default mailer that is used to send any email - | messages sent by your application. Alternative mailers may be setup - | and used as needed; however, this mailer will be used by default. - | + |-------------------------------------------------------------------------- + | Default Mailer + |-------------------------------------------------------------------------- + | + | This option controls the default mailer that is used to send any email + | messages sent by your application. Alternative mailers may be setup + | and used as needed; however, this mailer will be used by default. + | */ 'default' => env('MAIL_MAILER', 'smtp'), /* - |-------------------------------------------------------------------------- - | Mailer Configurations - |-------------------------------------------------------------------------- - | - | Here you may configure all of the mailers used by your application plus - | their respective settings. Several examples have been configured for - | you and you are free to add your own as your application requires. - | - | Laravel supports a variety of mail "transport" drivers to be used while - | sending an e-mail. You will specify which one you are using for your - | mailers below. You are free to add additional mailers as required. - | - | Supported: "smtp", "sendmail", "mailgun", "ses", - | "postmark", "log", "array", "failover" - | + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array", "failover" + | */ 'mailers' => [ @@ -81,14 +81,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | */ 'from' => [ @@ -97,14 +97,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | */ 'markdown' => [ diff --git a/config/purifier.php b/config/purifier.php new file mode 100644 index 0000000..29fd2ba --- /dev/null +++ b/config/purifier.php @@ -0,0 +1,119 @@ +set('Core.Encoding', $this->config->get('purifier.encoding')); + * $config->set('Cache.SerializerPath', $this->config->get('purifier.cachePath')); + * if ( ! $this->config->get('purifier.finalize')) { + * $config->autoFinalize = false; + * } + * $config->load [$this->getConfig()); + * + * You must NOT delete the default settings + * anything in settings should be compacted with params that needed to instance HTMLPurifier_Config. + * + * @link http://htmlpurifier.org/live/configdoc/plain.html + */ + +// phpcs:disable Generic.Files.LineLength.TooLong +return [ + 'encoding' => 'UTF-8', + 'finalize' => true, + 'cachePath' => storage_path('app/purifier'), + 'cacheFileMode' => 0755, + 'settings' => [ + 'default' => [ + 'HTML.SafeIframe' => true, + // * For iframes + 'URI.SafeIframeRegexp' => "%^(http://|https://|//)(vimeo.com)%", + 'HTML.Doctype' => 'HTML 4.01 Transitional', + 'HTML.Allowed' => 'h1[style],h2[style],h3[style],h4[style],h5[style],h6[style],figure[class|style],oembed[url],div[style],b,strong,i,em,u,a[href|title|target|rel],ul[style],ol[style],dl[style],li,p[style],br,span[style|class],img[width|height|alt|src|style|class|title],iframe[src|width|height|class|frameborder|style],table[style|align|border|cellspacing|cellpadding|width],thead,tbody,th[colspan|align|valign|style],tr[align|valign|style],td[style|colspan|rowspan|scope|align|valign],hr,dl,dt', + 'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align,list-style-type,float,width,height,vertical-align,border-color', + 'AutoFormat.AutoParagraph' => false, + 'AutoFormat.RemoveEmpty' => false, + 'AutoFormat.RemoveEmpty.RemoveNbsp' => false, + ], + "youtube" => [ + "HTML.SafeIframe" => 'true', + "URI.SafeIframeRegexp" => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/)%", + ], + 'custom_definition' => [ + 'id' => 'html5-definitions', + 'rev' => 1, + 'debug' => true, + 'elements' => [ + // * http://developers.whatwg.org/sections.html + ['section', 'Block', 'Flow', 'Common'], + ['nav', 'Block', 'Flow', 'Common'], + ['article', 'Block', 'Flow', 'Common'], + ['aside', 'Block', 'Flow', 'Common'], + ['header', 'Block', 'Flow', 'Common'], + ['footer', 'Block', 'Flow', 'Common'], + + // * Content model actually excludes several tags, not modelled here + ['address', 'Block', 'Flow', 'Common'], + ['hgroup', 'Block', 'Required: h1 | h2 | h3 | h4 | h5 | h6', 'Common'], + + // * http://developers.whatwg.org/grouping-content.html + ['figure', 'Block', 'Optional: (figcaption, Flow) | (Flow, figcaption) | Flow', 'Common'], + ['figcaption', 'Inline', 'Flow', 'Common'], + ['oembed', 'Inline', 'Flow', 'Common'], + + // * http://developers.whatwg.org/the-video-element.html#the-video-element + ['video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', [ + 'src' => 'URI', + 'type' => 'Text', + 'width' => 'Length', + 'height' => 'Length', + 'poster' => 'URI', + 'preload' => 'Enum#auto,metadata,none', + 'controls' => 'Bool', + ]], + ['source', 'Block', 'Flow', 'Common', [ + 'src' => 'URI', + 'type' => 'Text', + ]], + + // * http://developers.whatwg.org/text-level-semantics.html + ['s', 'Inline', 'Inline', 'Common'], + ['var', 'Inline', 'Inline', 'Common'], + ['sub', 'Inline', 'Inline', 'Common'], + ['sup', 'Inline', 'Inline', 'Common'], + ['mark', 'Inline', 'Inline', 'Common'], + ['wbr', 'Inline', 'Empty', 'Core'], + + // * http://developers.whatwg.org/edits.html + ['ins', 'Block', 'Flow', 'Common', ['cite' => 'URI', 'datetime' => 'CDATA']], + ['del', 'Block', 'Flow', 'Common', ['cite' => 'URI', 'datetime' => 'CDATA']], + ], + 'attributes' => [ + ['iframe', 'allowfullscreen', 'Bool'], + ['table', 'height', 'Text'], + ['td', 'border', 'Text'], + ['th', 'border', 'Text'], + ['tr', 'width', 'Text'], + ['tr', 'height', 'Text'], + ['tr', 'border', 'Text'], + ['figure', 'class', 'Text'], + ['figure', 'style', 'Text'], + ['oembed', 'url', 'Text'], + ['span', 'style', 'Text'], + ['img', 'style', 'Text'], + ], + ], + 'custom_attributes' => [ + ['a', 'target', 'Enum#_blank,_self,_target,_top'], + ['ol', 'style', 'Text'], + ['figure', 'style', 'Text'], + ['img', 'style', 'Text'], + ['span', 'style', 'Text'], + ['oembed', 'url', 'Text'], + ], + 'custom_elements' => [ + ['u', 'Inline', 'Inline', 'Common'], + ['oembed', 'Inline', 'Inline', 'Common'], + ], + ], +]; diff --git a/config/queue.php b/config/queue.php index 25ea5a8..c312794 100644 --- a/config/queue.php +++ b/config/queue.php @@ -3,29 +3,29 @@ return [ /* - |-------------------------------------------------------------------------- - | Default Queue Connection Name - |-------------------------------------------------------------------------- - | - | Laravel's queue API supports an assortment of back-ends via a single - | API, giving you convenient access to each back-end using the same - | syntax for every one. Here you may define a default connection. - | + |-------------------------------------------------------------------------- + | Default Queue Connection Name + |-------------------------------------------------------------------------- + | + | Laravel's queue API supports an assortment of back-ends via a single + | API, giving you convenient access to each back-end using the same + | syntax for every one. Here you may define a default connection. + | */ 'default' => env('QUEUE_CONNECTION', 'sync'), /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" - | + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | */ 'connections' => [ @@ -74,14 +74,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | */ 'failed' => [ diff --git a/config/recaptcha.php b/config/recaptcha.php new file mode 100644 index 0000000..806073d --- /dev/null +++ b/config/recaptcha.php @@ -0,0 +1,6 @@ + env('RECAPTCHA_3_PUB_KEY'), + 'private' => env('RECAPTCHA_3_PRIV_KEY') +]; diff --git a/config/sanctum.php b/config/sanctum.php index 9281c92..20676d0 100644 --- a/config/sanctum.php +++ b/config/sanctum.php @@ -3,58 +3,58 @@ return [ /* - |-------------------------------------------------------------------------- - | Stateful Domains - |-------------------------------------------------------------------------- - | - | Requests from the following domains / hosts will receive stateful API - | authentication cookies. Typically, these should include your local - | and production domains which access your API via a frontend SPA. - | + |-------------------------------------------------------------------------- + | Stateful Domains + |-------------------------------------------------------------------------- + | + | Requests from the following domains / hosts will receive stateful API + | authentication cookies. Typically, these should include your local + | and production domains which access your API via a frontend SPA. + | */ 'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( '%s%s', 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', - env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : '' + env('APP_URL') ? ',' . parse_url(env('APP_URL'), PHP_URL_HOST) : '' ))), /* - |-------------------------------------------------------------------------- - | Sanctum Guards - |-------------------------------------------------------------------------- - | - | This array contains the authentication guards that will be checked when - | Sanctum is trying to authenticate a request. If none of these guards - | are able to authenticate the request, Sanctum will use the bearer - | token that's present on an incoming request for authentication. - | + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | */ 'guard' => ['web'], /* - |-------------------------------------------------------------------------- - | Expiration Minutes - |-------------------------------------------------------------------------- - | - | This value controls the number of minutes until an issued token will be - | considered expired. If this value is null, personal access tokens do - | not expire. This won't tweak the lifetime of first-party sessions. - | + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. If this value is null, personal access tokens do + | not expire. This won't tweak the lifetime of first-party sessions. + | */ 'expiration' => null, /* - |-------------------------------------------------------------------------- - | Sanctum Middleware - |-------------------------------------------------------------------------- - | - | When authenticating your first-party SPA with Sanctum you may need to - | customize some of the middleware Sanctum uses while processing the - | request. You may change the middleware listed below as required. - | + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | */ 'middleware' => [ diff --git a/config/services.php b/config/services.php index 2a1d616..915dfe7 100644 --- a/config/services.php +++ b/config/services.php @@ -3,15 +3,15 @@ return [ /* - |-------------------------------------------------------------------------- - | Third Party Services - |-------------------------------------------------------------------------- - | - | This file is for storing the credentials for third party services such - | as Mailgun, Postmark, AWS and more. This file provides the de facto - | location for this type of information, allowing packages to have - | a conventional file to locate the various service credentials. - | + |-------------------------------------------------------------------------- + | Third Party Services + |-------------------------------------------------------------------------- + | + | This file is for storing the credentials for third party services such + | as Mailgun, Postmark, AWS and more. This file provides the de facto + | location for this type of information, allowing packages to have + | a conventional file to locate the various service credentials. + | */ 'mailgun' => [ diff --git a/config/session.php b/config/session.php index ac0802b..b096861 100644 --- a/config/session.php +++ b/config/session.php @@ -5,30 +5,30 @@ use Illuminate\Support\Str; return [ /* - |-------------------------------------------------------------------------- - | Default Session Driver - |-------------------------------------------------------------------------- - | - | This option controls the default session "driver" that will be used on - | requests. By default, we will use the lightweight native driver but - | you may specify any of the other wonderful drivers provided here. - | - | Supported: "file", "cookie", "database", "apc", - | "memcached", "redis", "dynamodb", "array" - | + |-------------------------------------------------------------------------- + | Default Session Driver + |-------------------------------------------------------------------------- + | + | This option controls the default session "driver" that will be used on + | requests. By default, we will use the lightweight native driver but + | you may specify any of the other wonderful drivers provided here. + | + | Supported: "file", "cookie", "database", "apc", + | "memcached", "redis", "dynamodb", "array" + | */ 'driver' => env('SESSION_DRIVER', 'file'), /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | */ 'lifetime' => env('SESSION_LIFETIME', 120), @@ -36,164 +36,164 @@ return [ 'expire_on_close' => false, /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | */ 'encrypt' => false, /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | */ 'files' => storage_path('framework/sessions'), /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | */ 'connection' => env('SESSION_CONNECTION', null), /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | */ 'table' => 'sessions', /* - |-------------------------------------------------------------------------- - | Session Cache Store - |-------------------------------------------------------------------------- - | - | While using one of the framework's cache driven session backends you may - | list a cache store that should be used for these sessions. This value - | must match with one of the application's configured cache "stores". - | - | Affects: "apc", "dynamodb", "memcached", "redis" - | + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | */ 'store' => env('SESSION_STORE', null), /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | */ 'lottery' => [2, 100], /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | */ 'cookie' => env( 'SESSION_COOKIE', - Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + Str::slug(env('APP_NAME', 'laravel'), '_') . '_session' ), /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | */ 'path' => '/', /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | */ 'domain' => env('SESSION_DOMAIN', null), /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you when it can't be done securely. - | + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | */ 'secure' => env('SESSION_SECURE_COOKIE'), /* - |-------------------------------------------------------------------------- - | HTTP Access Only - |-------------------------------------------------------------------------- - | - | Setting this value to true will prevent JavaScript from accessing the - | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. - | + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | */ 'http_only' => true, /* - |-------------------------------------------------------------------------- - | Same-Site Cookies - |-------------------------------------------------------------------------- - | - | This option determines how your cookies behave when cross-site requests - | take place, and can be used to mitigate CSRF attacks. By default, we - | will set this value to "lax" since this is a secure default value. - | - | Supported: "lax", "strict", "none", null - | + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | */ 'same_site' => 'lax', diff --git a/config/view.php b/config/view.php index 22b8a18..53008fd 100644 --- a/config/view.php +++ b/config/view.php @@ -3,14 +3,14 @@ return [ /* - |-------------------------------------------------------------------------- - | View Storage Paths - |-------------------------------------------------------------------------- - | - | Most templating systems load templates from disk. Here you may specify - | an array of paths that should be checked for your views. Of course - | the usual Laravel view path has already been registered for you. - | + |-------------------------------------------------------------------------- + | View Storage Paths + |-------------------------------------------------------------------------- + | + | Most templating systems load templates from disk. Here you may specify + | an array of paths that should be checked for your views. Of course + | the usual Laravel view path has already been registered for you. + | */ 'paths' => [ @@ -18,14 +18,14 @@ return [ ], /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | */ 'compiled' => env( diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index a3eb239..536b3c8 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -18,7 +18,8 @@ class UserFactory extends Factory 'name' => $this->faker->name(), 'email' => $this->faker->unique()->safeEmail(), 'email_verified_at' => now(), - 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + // * password + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'remember_token' => Str::random(10), ]; } @@ -30,6 +31,7 @@ class UserFactory extends Factory */ public function unverified() { + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass return $this->state(function (array $attributes) { return [ 'email_verified_at' => null, diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 621a24e..b21d566 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -20,6 +20,7 @@ class CreateUsersTable extends Migration $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); + $table->date('last_connection')->nullable(); $table->timestamps(); }); } diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php deleted file mode 100644 index 4315e16..0000000 --- a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->morphs('tokenable'); - $table->string('name'); - $table->string('token', 64)->unique(); - $table->text('abilities')->nullable(); - $table->timestamp('last_used_at')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('personal_access_tokens'); - } -} diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..fbf77ab --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,5 @@ + { + "include": [ + "./resources/js/**/*" + ] + } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..9a073ee --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16588 @@ +{ + "name": "loue", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "autoprefixer": "10.4.5" + }, + "devDependencies": { + "@fortawesome/fontawesome-free": "^6.1.1", + "@popperjs/core": "^2.11.5", + "axios": "^0.21", + "bootstrap": "^5.1.3", + "clean-webpack-plugin": "^4.0.0", + "laravel-mix": "^6.0.6", + "laravel-mix-clean": "^0.1.0", + "laravel-mix-polyfill": "^3.0.1", + "lodash": "^4.17.19", + "resolve-url-loader": "^5.0.0", + "sass": "^1.52.1", + "sass-loader": "^12.6.0", + "sweetalert2": "^11.4.17", + "vue": "^3.2.36", + "vue-loader": "^16.8.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.1.tgz", + "integrity": "sha512-J/3yg2AIXc9wznaVqpHVX3Wa5jwKovVF0AMYSnbmcXTiL3PpRPfF58pzWucCwEiCJBp+hCNRLWClTomD8SseKg==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/clean-css": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.5.tgz", + "integrity": "sha512-NEzjkGGpbs9S9fgC4abuBvTpVwE3i+Acu9BBod3PUyjDVZcNsGx61b8r2PphR61QGPnn0JHVs5ey6/I4eTrkxw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", + "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/imagemin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.0.tgz", + "integrity": "sha512-B9X2CUeDv/uUeY9CqkzSTfmsLkeJP6PkmXlh4lODBbf9SwpmNuLS30WzUOi863dgsjY3zt3gY5q2F+UdifRi1A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/imagemin-gifsicle": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz", + "integrity": "sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==", + "dev": true, + "dependencies": { + "@types/imagemin": "*" + } + }, + "node_modules/@types/imagemin-mozjpeg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz", + "integrity": "sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==", + "dev": true, + "dependencies": { + "@types/imagemin": "*" + } + }, + "node_modules/@types/imagemin-optipng": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", + "integrity": "sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==", + "dev": true, + "dependencies": { + "@types/imagemin": "*" + } + }, + "node_modules/@types/imagemin-svgo": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz", + "integrity": "sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ==", + "dev": true, + "dependencies": { + "@types/imagemin": "*", + "@types/svgo": "^1" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", + "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/svgo": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz", + "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz", + "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz", + "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz", + "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.36", + "@vue/compiler-dom": "3.2.36", + "@vue/compiler-ssr": "3.2.36", + "@vue/reactivity-transform": "3.2.36", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz", + "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz", + "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.36" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz", + "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.36", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz", + "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz", + "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.2.36", + "@vue/shared": "3.2.36", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz", + "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.2.36", + "@vue/shared": "3.2.36" + }, + "peerDependencies": { + "vue": "3.2.36" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz", + "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz", + "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001332", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.12.tgz", + "integrity": "sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/bootstrap": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "@popperjs/core": "^2.10.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001344", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", + "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dev": true, + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/collect.js": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.33.0.tgz", + "integrity": "sha512-jEFD39H+09JyvjxwwHGX6Z7j+SB4OdXxHWG8Dus5eVQmwngWGNluRBQ2qS92K9MkRH+fjh91u1TGa31LIeBKhQ==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz", + "integrity": "sha512-f/ZaH1aLe64qHgTILdldbvyfGiGF4uzeo9IuXUloIOLQzFmIPloy9QbZadNsuVv0j5qbKQvQb/H/UYf2UsKTpw==", + "dev": true, + "dependencies": { + "commander": "^2.9.0" + }, + "bin": { + "concat": "bin/concat" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.7.tgz", + "integrity": "sha512-Jt8SReuDKVNZnZEzyEQT5eK6T2RRCXkfTq7Lo09kpm+fHjgGewSbNjV+Wt4yZMhPDdzz2x1ulI5z/w4nxpBseg==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", + "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.10.tgz", + "integrity": "sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.10", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz", + "integrity": "sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.143", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.143.tgz", + "integrity": "sha512-2hIgvu0+pDfXIqmVmV5X6iwMjQ2KxDsWKwM+oI1fABEOy/Dqmll0QJRmIQ3rm+XaoUa/qKrmy5h7LSTFQ6Ldzg==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-loader": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz", + "integrity": "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==", + "dev": true, + "dependencies": { + "html-minifier-terser": "^5.1.1", + "htmlparser2": "^4.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/html-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/imagemin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz", + "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", + "dev": true, + "dependencies": { + "file-type": "^12.0.0", + "globby": "^10.0.0", + "graceful-fs": "^4.2.2", + "junk": "^3.1.0", + "make-dir": "^3.0.0", + "p-pipe": "^3.0.0", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imagemin/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imagemin/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/img-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz", + "integrity": "sha512-UwRcPQdwdOyEHyCxe1V9s9YFwInwEWCpoO+kJGfIqDrBDqA8jZUsEZTxQ0JteNPGw/Gupmwesk2OhLTcnw6tnQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "imagemin": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/img-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/img-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/laravel-mix": { + "version": "6.0.44", + "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.44.tgz", + "integrity": "sha512-yoszJ2cbISW21ljIkWnx/NIUaBZuKjhk9j9SbSbJi4uB6V8sHv/5SF3fQV50jlKfMOSdXdvdYxYzT9CM5ZBxAw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.15.8", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.15.8", + "@babel/preset-env": "^7.15.8", + "@babel/runtime": "^7.15.4", + "@types/babel__core": "^7.1.16", + "@types/clean-css": "^4.2.5", + "@types/imagemin-gifsicle": "^7.0.1", + "@types/imagemin-mozjpeg": "^8.0.1", + "@types/imagemin-optipng": "^5.2.1", + "@types/imagemin-svgo": "^8.0.0", + "autoprefixer": "^10.4.0", + "babel-loader": "^8.2.3", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "clean-css": "^5.2.4", + "cli-table3": "^0.6.0", + "collect.js": "^4.28.5", + "commander": "^7.2.0", + "concat": "^1.0.3", + "css-loader": "^5.2.6", + "cssnano": "^5.0.8", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "glob": "^7.2.0", + "html-loader": "^1.3.2", + "imagemin": "^7.0.1", + "img-loader": "^4.0.0", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "mini-css-extract-plugin": "^1.6.2", + "node-libs-browser": "^2.2.1", + "postcss-load-config": "^3.1.0", + "postcss-loader": "^6.2.0", + "semver": "^7.3.5", + "strip-ansi": "^6.0.0", + "style-loader": "^2.0.0", + "terser": "^5.9.0", + "terser-webpack-plugin": "^5.2.4", + "vue-style-loader": "^4.1.3", + "webpack": "^5.60.0", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.8.0", + "webpack-notifier": "^1.14.1", + "webpackbar": "^5.0.0-3", + "yargs": "^17.2.1" + }, + "bin": { + "laravel-mix": "bin/cli.js", + "mix": "bin/cli.js" + }, + "engines": { + "node": ">=12.14.0" + }, + "peerDependencies": { + "@babel/core": "^7.15.8", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.15.8", + "@babel/preset-env": "^7.15.8", + "postcss": "^8.3.11", + "webpack": "^5.60.0", + "webpack-cli": "^4.9.1" + } + }, + "node_modules/laravel-mix-clean": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/laravel-mix-clean/-/laravel-mix-clean-0.1.0.tgz", + "integrity": "sha512-iOgVELzL0zJ2SNEVEmzCoduZ7tBQNWa/ViWXSTg9Z2QVK05Sld2efzTybR82Lu6ohZaA4btr+KsBBw7kt8aqTQ==", + "dev": true + }, + "node_modules/laravel-mix-polyfill": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/laravel-mix-polyfill/-/laravel-mix-polyfill-3.0.1.tgz", + "integrity": "sha512-05Oldnhek6jkg9JMl7Nf/qnkwuTOlwR7DLFWntfy98QOx5o/ipmnsayP9qVTxdLZNcBRuMz6Agt9fxZdO2AUJw==", + "dev": true, + "dependencies": { + "core-js": "^2.6.9 || ^3.1.4", + "regenerator-runtime": "^0.13.2" + }, + "peerDependencies": { + "laravel-mix": "^6.0.0" + } + }, + "node_modules/laravel-mix/node_modules/css-loader": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", + "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/laravel-mix/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", + "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-notifier": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", + "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", + "dev": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", + "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.1.1.tgz", + "integrity": "sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw==", + "dev": true + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/sweetalert2": { + "version": "11.4.17", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.17.tgz", + "integrity": "sha512-z0iQW5fDdvtoDNle3iHTKunsuNWgPaMifVu0GPtdguR0uVPrvg9gg9bnSQeJ4tx3C7FwJOEnRshxrs6fFItRvw==", + "dev": true, + "funding": { + "type": "individual", + "url": "https://sweetalert2.github.io/#donations" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.0.tgz", + "integrity": "sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz", + "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.36", + "@vue/compiler-sfc": "3.2.36", + "@vue/runtime-dom": "3.2.36", + "@vue/server-renderer": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "node_modules/vue-loader": { + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + } + }, + "node_modules/vue-loader/node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-style-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.72.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", + "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", + "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-notifier": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz", + "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==", + "dev": true, + "dependencies": { + "node-notifier": "^9.0.0", + "strip-ansi": "^6.0.0" + }, + "peerDependencies": { + "@types/webpack": ">4.41.31" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", + "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true + }, + "@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@fortawesome/fontawesome-free": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.1.tgz", + "integrity": "sha512-J/3yg2AIXc9wznaVqpHVX3Wa5jwKovVF0AMYSnbmcXTiL3PpRPfF58pzWucCwEiCJBp+hCNRLWClTomD8SseKg==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/clean-css": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.5.tgz", + "integrity": "sha512-NEzjkGGpbs9S9fgC4abuBvTpVwE3i+Acu9BBod3PUyjDVZcNsGx61b8r2PphR61QGPnn0JHVs5ey6/I4eTrkxw==", + "dev": true, + "requires": { + "@types/node": "*", + "source-map": "^0.6.0" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", + "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/imagemin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.0.tgz", + "integrity": "sha512-B9X2CUeDv/uUeY9CqkzSTfmsLkeJP6PkmXlh4lODBbf9SwpmNuLS30WzUOi863dgsjY3zt3gY5q2F+UdifRi1A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/imagemin-gifsicle": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz", + "integrity": "sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==", + "dev": true, + "requires": { + "@types/imagemin": "*" + } + }, + "@types/imagemin-mozjpeg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz", + "integrity": "sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==", + "dev": true, + "requires": { + "@types/imagemin": "*" + } + }, + "@types/imagemin-optipng": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", + "integrity": "sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==", + "dev": true, + "requires": { + "@types/imagemin": "*" + } + }, + "@types/imagemin-svgo": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz", + "integrity": "sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ==", + "dev": true, + "requires": { + "@types/imagemin": "*", + "@types/svgo": "^1" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", + "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/svgo": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz", + "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==", + "dev": true + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@vue/compiler-core": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz", + "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz", + "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz", + "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.36", + "@vue/compiler-dom": "3.2.36", + "@vue/compiler-ssr": "3.2.36", + "@vue/reactivity-transform": "3.2.36", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz", + "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "@vue/reactivity": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz", + "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==", + "dev": true, + "requires": { + "@vue/shared": "3.2.36" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz", + "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.36", + "@vue/shared": "3.2.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz", + "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "@vue/runtime-dom": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz", + "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.36", + "@vue/shared": "3.2.36", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz", + "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==", + "dev": true, + "requires": { + "@vue/compiler-ssr": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "@vue/shared": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz", + "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "autoprefixer": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz", + "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==", + "requires": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001332", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour-service": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.12.tgz", + "integrity": "sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "bootstrap": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "dev": true, + "requires": {} + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "requires": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001344", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", + "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "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" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dev": true, + "requires": { + "del": "^4.1.1" + } + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "collect.js": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.33.0.tgz", + "integrity": "sha512-jEFD39H+09JyvjxwwHGX6Z7j+SB4OdXxHWG8Dus5eVQmwngWGNluRBQ2qS92K9MkRH+fjh91u1TGa31LIeBKhQ==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "concat": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz", + "integrity": "sha512-f/ZaH1aLe64qHgTILdldbvyfGiGF4uzeo9IuXUloIOLQzFmIPloy9QbZadNsuVv0j5qbKQvQb/H/UYf2UsKTpw==", + "dev": true, + "requires": { + "commander": "^2.9.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-js": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.7.tgz", + "integrity": "sha512-Jt8SReuDKVNZnZEzyEQT5eK6T2RRCXkfTq7Lo09kpm+fHjgGewSbNjV+Wt4yZMhPDdzz2x1ulI5z/w4nxpBseg==", + "dev": true + }, + "core-js-compat": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", + "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.10.tgz", + "integrity": "sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.10", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz", + "integrity": "sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.143", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.143.tgz", + "integrity": "sha512-2hIgvu0+pDfXIqmVmV5X6iwMjQ2KxDsWKwM+oI1fABEOy/Dqmll0QJRmIQ3rm+XaoUa/qKrmy5h7LSTFQ6Ldzg==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "html-loader": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz", + "integrity": "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==", + "dev": true, + "requires": { + "html-minifier-terser": "^5.1.1", + "htmlparser2": "^4.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + } + } + }, + "htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "imagemin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz", + "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", + "dev": true, + "requires": { + "file-type": "^12.0.0", + "globby": "^10.0.0", + "graceful-fs": "^4.2.2", + "junk": "^3.1.0", + "make-dir": "^3.0.0", + "p-pipe": "^3.0.0", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + } + } + }, + "img-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz", + "integrity": "sha512-UwRcPQdwdOyEHyCxe1V9s9YFwInwEWCpoO+kJGfIqDrBDqA8jZUsEZTxQ0JteNPGw/Gupmwesk2OhLTcnw6tnQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, + "laravel-mix": { + "version": "6.0.44", + "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.44.tgz", + "integrity": "sha512-yoszJ2cbISW21ljIkWnx/NIUaBZuKjhk9j9SbSbJi4uB6V8sHv/5SF3fQV50jlKfMOSdXdvdYxYzT9CM5ZBxAw==", + "dev": true, + "requires": { + "@babel/core": "^7.15.8", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.15.8", + "@babel/preset-env": "^7.15.8", + "@babel/runtime": "^7.15.4", + "@types/babel__core": "^7.1.16", + "@types/clean-css": "^4.2.5", + "@types/imagemin-gifsicle": "^7.0.1", + "@types/imagemin-mozjpeg": "^8.0.1", + "@types/imagemin-optipng": "^5.2.1", + "@types/imagemin-svgo": "^8.0.0", + "autoprefixer": "^10.4.0", + "babel-loader": "^8.2.3", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "clean-css": "^5.2.4", + "cli-table3": "^0.6.0", + "collect.js": "^4.28.5", + "commander": "^7.2.0", + "concat": "^1.0.3", + "css-loader": "^5.2.6", + "cssnano": "^5.0.8", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "glob": "^7.2.0", + "html-loader": "^1.3.2", + "imagemin": "^7.0.1", + "img-loader": "^4.0.0", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "mini-css-extract-plugin": "^1.6.2", + "node-libs-browser": "^2.2.1", + "postcss-load-config": "^3.1.0", + "postcss-loader": "^6.2.0", + "semver": "^7.3.5", + "strip-ansi": "^6.0.0", + "style-loader": "^2.0.0", + "terser": "^5.9.0", + "terser-webpack-plugin": "^5.2.4", + "vue-style-loader": "^4.1.3", + "webpack": "^5.60.0", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.8.0", + "webpack-notifier": "^1.14.1", + "webpackbar": "^5.0.0-3", + "yargs": "^17.2.1" + }, + "dependencies": { + "css-loader": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", + "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "laravel-mix-clean": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/laravel-mix-clean/-/laravel-mix-clean-0.1.0.tgz", + "integrity": "sha512-iOgVELzL0zJ2SNEVEmzCoduZ7tBQNWa/ViWXSTg9Z2QVK05Sld2efzTybR82Lu6ohZaA4btr+KsBBw7kt8aqTQ==", + "dev": true + }, + "laravel-mix-polyfill": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/laravel-mix-polyfill/-/laravel-mix-polyfill-3.0.1.tgz", + "integrity": "sha512-05Oldnhek6jkg9JMl7Nf/qnkwuTOlwR7DLFWntfy98QOx5o/ipmnsayP9qVTxdLZNcBRuMz6Agt9fxZdO2AUJw==", + "dev": true, + "requires": { + "core-js": "^2.6.9 || ^3.1.4", + "regenerator-runtime": "^0.13.2" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", + "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node-notifier": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", + "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-merge-longhand": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", + "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "std-env": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.1.1.tgz", + "integrity": "sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw==", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + }, + "sweetalert2": { + "version": "11.4.17", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.17.tgz", + "integrity": "sha512-z0iQW5fDdvtoDNle3iHTKunsuNWgPaMifVu0GPtdguR0uVPrvg9gg9bnSQeJ4tx3C7FwJOEnRshxrs6fFItRvw==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.0.tgz", + "integrity": "sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "3.2.36", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz", + "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.36", + "@vue/compiler-sfc": "3.2.36", + "@vue/runtime-dom": "3.2.36", + "@vue/server-renderer": "3.2.36", + "@vue/shared": "3.2.36" + } + }, + "vue-loader": { + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + } + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "5.72.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", + "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", + "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-notifier": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz", + "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==", + "dev": true, + "requires": { + "node-notifier": "^9.0.0", + "strip-ansi": "^6.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", + "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "dev": true, + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 00c6506..7f48ff4 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,23 @@ "production": "mix --production" }, "devDependencies": { + "@fortawesome/fontawesome-free": "^6.1.1", + "@popperjs/core": "^2.11.5", "axios": "^0.21", + "bootstrap": "^5.1.3", + "clean-webpack-plugin": "^4.0.0", "laravel-mix": "^6.0.6", + "laravel-mix-clean": "^0.1.0", + "laravel-mix-polyfill": "^3.0.1", "lodash": "^4.17.19", - "postcss": "^8.1.14" + "resolve-url-loader": "^5.0.0", + "sass": "^1.52.1", + "sass-loader": "^12.6.0", + "sweetalert2": "^11.4.17", + "vue": "^3.2.36", + "vue-loader": "^16.8.3" + }, + "dependencies": { + "autoprefixer": "10.4.5" } } diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 0000000..d81492f --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,129 @@ + + + Created with the PHP Coding Standard Generator. http://edorian.github.com/php-coding-standard-generator/ + + + app/ + config/ + database/factories + routes/ + tests/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */database/migrations/* + + + diff --git a/public/browserconfig.xml b/public/browserconfig.xml new file mode 100644 index 0000000..3cc6d6f --- /dev/null +++ b/public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #091c58 + + + diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..33182a5 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,14 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/assets/images/android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + } + ], + "theme_color": "#091c58", + "background_color": "#091c58", + "display": "standalone" +} diff --git a/resources/assets/images/android-chrome-144x144.png b/resources/assets/images/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..5314dfd39e021c4086f34489a40f655b8eade499 GIT binary patch literal 4501 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%0A;=) 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 literal 0 HcmV?d00001 diff --git a/resources/assets/images/favicon-32x32.png b/resources/assets/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0fd02c58ccab246a2e04e5de9475d5601bf551 GIT binary patch literal 896 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 literal 0 HcmV?d00001 diff --git a/resources/assets/images/mstile-150x150.png b/resources/assets/images/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..cde34db43c0e97a42352db978bb34778facbad17 GIT binary patch literal 4826 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 W + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + diff --git a/resources/css/app.css b/resources/css/app.css deleted file mode 100644 index e69de29..0000000 diff --git a/resources/js/app.js b/resources/js/app.js deleted file mode 100644 index 40c55f6..0000000 --- a/resources/js/app.js +++ /dev/null @@ -1 +0,0 @@ -require('./bootstrap'); diff --git a/resources/js/back.js b/resources/js/back.js new file mode 100644 index 0000000..db3dc75 --- /dev/null +++ b/resources/js/back.js @@ -0,0 +1,47 @@ +require('./common'); +require('./vue'); + +window.addEventListener('DOMContentLoaded', () => { + let elements = document.getElementsByClassName('confirmDeleteJS') + for (let element of elements) { + element.addEventListener('submit', function (e) { + e.preventDefault() + confirmJS( + 'Confirmez', + 'Voulez-vous vraiment supprimer cet élément ?', + this, + function (response) { this.submit() }, + { 'icon': 'error' } + ) + return false + }) + } + elements = document.getElementsByClassName('confirmDoneJS') + for (let element of elements) { + element.addEventListener('submit', function (e) { + e.preventDefault() + confirmJS( + 'Confirmez', + 'Voulez-vous vraiment marquer cet élément comme traité ?', + this, + function (response) { this.submit() }, + { 'icon': 'info' } + ) + return false + }) + } + elements = document.getElementsByClassName('confirmSubmitJS') + for (let element of elements) { + element.addEventListener('submit', function (e) { + e.preventDefault() + confirmJS( + 'Confirmez', + 'Voulez-vous enregistrer cet élément tel-quel ?', + this, + function (response) { this.submit() }, + { 'icon': 'warning' } + ) + return false + }) + } +}) diff --git a/resources/js/back/LaravelFileManager.js b/resources/js/back/LaravelFileManager.js new file mode 100644 index 0000000..f84fa7b --- /dev/null +++ b/resources/js/back/LaravelFileManager.js @@ -0,0 +1,91 @@ +import Swal from 'sweetalert2'; +import Plugin from './../vendor/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/plugin'; +import imageIcon from './../vendor/ckeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/image.svg'; +import ButtonView from './../vendor/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/buttonview'; + +export default class LaravelFileManager extends Plugin { + init() { + const editor = this.editor; + + editor.ui.componentFactory.add('laravelFileManager', locale => { + const view = new ButtonView(locale); + + const _onMessage = (event) => { + if (window.location.origin.toLowerCase().indexOf(event.origin.toLowerCase()) == 0) { + if (event.data.sender == 'calliopeWysiwyg') { + let imageURL = (new URL(event.data.message).pathname) + .replace(new RegExp("^[\/]+"), "").replace(/^/, '/'); + + if (!['jpg', 'png', 'jpeg', 'gif', 'mp4'].includes(imageURL.split('.').pop())) { + if (Swal) { + Swal.fire({ + title: 'Impossible d\'ajouter le fichier', + text: 'Seule les images (jpg, jpeg, png, gif) et les vidéos (mp4) sont supportées.', + icon: 'error', + }); + } else { + alert('Impossible d\'ajouter le fichier: Seule les images (jpg, jpeg, png, gif) sont supportées.'); + } + return; + } + + if (imageURL.split('.').pop() === 'mp4') { + editor.model.change(writer => { + const oembed = writer.createElement('oembed', { url: imageURL }) + const figure = writer.createElement('figure', { class: 'media' }, [oembed]) + + const p = writer.createElement('p', null, 'fofofo') + + // < video controls allowfullscreen style = "max-width: 90%; margin: 0 auto; display: block;" > ' + + // `` + + // `

Votre navigateur ne prend pas en charge les vidéos HTML5. Voici un lien pour télécharger la vidéo.

` + + // ' + + // Insert the oembed video in the current selection location. + // editor.model.insertContent(p, editor.model.document.selection); + // console.log('insert') + // const insertPosition = editor.model.document.selection.getFirstPosition(); + // writer.insertText('foo', insertPosition); + // editor.model.insertContent(p, insertPosition); + // editor.model.insertContent(figure, insertPosition); + // console.log(imageURL) + editor.execute('mediaEmbed', imageURL); + }); + } else { + editor.model.change(writer => { + const imageElement = writer.createElement('imageBlock', { + src: imageURL + }); + + // Insert the image in the current selection location. + editor.model.insertContent(imageElement, editor.model.document.selection); + }); + } + } + } + }; + + view.set({ + label: 'Insert image', + icon: imageIcon, + tooltip: true + }); + + view.on('execute', () => { + if (window.removeEventListener) { + window.removeEventListener('message', _onMessage, false) + } else { + window.detachEvent('onmessage', _onMessage) + } + window.open('/file-manager/fm-button?wysiwyg=1', 'fm', 'width=1400,height=800'); + if (window.addEventListener) { + window.addEventListener('message', _onMessage, false); + } else { + window.attachEvent('onmessage', _onMessage) + } + }); + + return view; + }); + } +} diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js index 6922577..dcdc4df 100644 --- a/resources/js/bootstrap.js +++ b/resources/js/bootstrap.js @@ -1,5 +1,9 @@ window._ = require('lodash'); +try { + require('bootstrap'); +} catch (e) {} + /** * We'll load the axios HTTP library which allows us to easily issue requests * to our Laravel back-end. This library automatically handles sending the diff --git a/resources/js/common.js b/resources/js/common.js new file mode 100644 index 0000000..a719f06 --- /dev/null +++ b/resources/js/common.js @@ -0,0 +1,29 @@ +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +window.axios = require('axios') + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest' + +let bootstrap = require('bootstrap') + +// enable bs tooltips +var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) +tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) +}) + +// SweetAlert +import Swal from 'sweetalert2' + +// bootstrap styling +window.Swal = Swal.mixin({ + customClass: { + confirmButton: 'btn btn-lg btn-success ms-3 me-3', + cancelButton: 'btn btn-lg btn-danger ms-3 me-3' + }, + buttonsStyling: false +}) diff --git a/resources/js/components/bo/ckEditorBoComponent.vue b/resources/js/components/bo/ckEditorBoComponent.vue new file mode 100644 index 0000000..e02619d --- /dev/null +++ b/resources/js/components/bo/ckEditorBoComponent.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/resources/js/front.js b/resources/js/front.js new file mode 100644 index 0000000..3254cf9 --- /dev/null +++ b/resources/js/front.js @@ -0,0 +1,5 @@ +// LIBS +import './common' +import './vue' + +// Local diff --git a/resources/js/modules/asset.js b/resources/js/modules/asset.js new file mode 100644 index 0000000..ed53e21 --- /dev/null +++ b/resources/js/modules/asset.js @@ -0,0 +1,8 @@ +export default { + methods: { + asset(path) { + return window.__SYSTEM._asset + path; + } + }, +} + diff --git a/resources/js/modules/confirm.js b/resources/js/modules/confirm.js new file mode 100644 index 0000000..bfdc00f --- /dev/null +++ b/resources/js/modules/confirm.js @@ -0,0 +1,37 @@ +export default { + methods: { + confirm(title, text = '', self, after, options = {}) { + if (!self) { + throw Error('self is needed to set "this" on callback'); + } + if (!after) { + throw Error('callback is needed when using confirm'); + } + let icon = options.icon ?? 'warning' + let confirm = options.confirm ?? 'Oui' + let cancel = options.confirm ?? 'Annuler' + Swal.fire({ + title: title, + text: text, + icon: icon, + showCancelButton: true, + confirmButtonText: confirm, + cancelButtonText: cancel, + reverseButtons: true + }).then((result) => { + if (result.isConfirmed) { + if (after) { + after.apply(self, [result]) + } + } else if ( + /* Read more about handling dismissals below */ + result.dismiss === Swal.DismissReason.cancel + ) { + Swal.fire('L\'opération n\'as pas été effectuée') + } + }) + return false; + } + }, +} + diff --git a/resources/js/modules/route.js b/resources/js/modules/route.js new file mode 100644 index 0000000..ce77a66 --- /dev/null +++ b/resources/js/modules/route.js @@ -0,0 +1,43 @@ +export default { + methods: { + route(routeName, parameters = []) { + let route = Object.keys(window.__SYSTEM._routes).indexOf(routeName) !== -1 ? + window.__SYSTEM._routes[routeName] : null; + if (!route) { + return route; + } + // copy parameters + let iParameters = Object.assign({}, parameters); + let origin = window.location.origin; + let pathname = route.replace(origin, ''); + let search = window.location.search + let hash = window.location.hash; + + // replace in path name + for (let paramName in iParameters) { + let paramValue = parameters[paramName]; + if (pathname.indexOf(paramName) !== -1) { + pathname = pathname.replace(paramName, paramValue); + } + delete parameters[paramName]; + } + + for (let paramName in parameters) { + let paramValue = parameters[paramName]; + if (search.indexOf(paramName + "=") >= 0) { + prefix = search.substring(0, search.indexOf(paramName + "=")); + suffix = search.substring(search.indexOf(paramName + "=")); + suffix = suffix.substring(suffix.indexOf("=") + 1); + suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : ''; + search = prefix + paramName + "=" + paramValue + suffix; + } else if (search.indexOf("?") < 0) { + search += "?" + paramName + "=" + paramValue + } else { + search += "&" + paramName + "=" + paramValue + } + } + return origin + pathname + search + hash; + } + }, +} + diff --git a/resources/js/modules/trans.js b/resources/js/modules/trans.js new file mode 100644 index 0000000..11e74d2 --- /dev/null +++ b/resources/js/modules/trans.js @@ -0,0 +1,40 @@ +export default { + data() { + return { + locale: window.__SYSTEM._locale + }; + }, + methods: { + /** + * Translate the given key. + */ + __(key, replace) { + let translation, translationNotFound = true, vars; + + try { + translation = key.split('.').reduce((t, i) => t[i] || null, window.__SYSTEM._translations.php) + if (translation) { + translationNotFound = false; + } + } catch (e) { + translation = key; + } + + if (translationNotFound) { + translation = window.__SYSTEM._translations['json'][key] ? window.__SYSTEM._translations['json'][key] : key; + } + vars = translation.match(/:[0-9A-Za-z_]+/g); + if (vars) { + for (let match of vars) { + try { + translation = translation.replace(new RegExp(match, 'g'), replace[match.substr(1)]); + } catch (e) { + console.error('String replace failed ', e); + } + } + } + return translation + } + }, +} + diff --git a/resources/js/vendor/ckeditor/.gitignore b/resources/js/vendor/ckeditor/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/resources/js/vendor/ckeditor/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/resources/js/vendor/ckeditor/LICENSE.md b/resources/js/vendor/ckeditor/LICENSE.md new file mode 100644 index 0000000..95eabee --- /dev/null +++ b/resources/js/vendor/ckeditor/LICENSE.md @@ -0,0 +1,49 @@ +Software License Agreement +========================== + +Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved. + +Online builder code samples are licensed under the terms of the MIT License (see Appendix A): + + http://en.wikipedia.org/wiki/MIT_License + +CKEditor 5 collaboration features are only available under a commercial license. [Contact us](https://ckeditor.com/contact/) for more details. + +Free 30-days trials of CKEditor 5 collaboration features are available: + * https://ckeditor.com/collaboration/ - Real-time collaboration (with all features). + * https://ckeditor.com/collaboration/comments/ - Inline comments feature (without real-time collaborative editing). + * https://ckeditor.com/collaboration/track-changes/ - Track changes feature (without real-time collaborative editing). + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand +and product names are trademarks, registered trademarks or service +marks of their respective holders. + +--- + +Appendix A: The MIT License +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2014-2021, CKSource - Frederico Knabben + +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/resources/js/vendor/ckeditor/README.md b/resources/js/vendor/ckeditor/README.md new file mode 100644 index 0000000..9290930 --- /dev/null +++ b/resources/js/vendor/ckeditor/README.md @@ -0,0 +1,68 @@ +# CKEditor 5 editor generated with the online builder + +This repository presents a CKEditor 5 editor build generated by the [Online builder tool](https://ckeditor.com/ckeditor-5/online-builder) + +## Quick start + +1. Open the `sample/index.html` page in the browser. + +If you picked the real-time collaboration plugins: + +2. Fill the dialog with correct token, websocket and upload URL endpoints. If you do not have these yet or do not know their meaning, [contact us](https://ckeditor.com/contact/). + +3. Copy the URL and share it or paste in another tab to enjoy real-time collaborative editing. + +If you picked the non-real-time collaboration plugins: + +2. Fill the prompt with the license key. If you do not have the license key yet [contact us](https://ckeditor.com/contact/). + +## Configuring build + +Changes like changing toolbar items, changing order of icons or customizing plugin configurations should be relatively easy to make. Open the `sample/index.html` file and edit the script that initialized the CKEditor 5. Save the file and refresh the browser. That's all. + +*Note:* If you have any problems with browser caching use the `Ctrl + R` or `Cmd + R` shortcut depending on your system. + +However if you want to remove or add a plugin to the build you need to follow the next step of this guide. + +Note that it is also possible to go back to the [Online builder tool](https://ckeditor.com/ckeditor-5/online-builder) and pick other set of plugins. But we encourage you to try the harder way and to learn the principles of Node.js and CKEditor 5 ecosystems that will allow you to do more cool things in the future! + +### Installation + +In order to rebuild the application you need to install all dependencies first. To do it, open the terminal in the project directory and type: + +``` +npm install +``` + +Make sure that you have the `node` and `npm` installed first. If not, then follow the instructions on the [Node.js documentation page](https://nodejs.org/en/). + +### Adding or removing plugins + +Now you can install additional plugin in the build. Just follow the [Adding a plugin to an editor tutorial](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/installing-plugins.html#adding-a-plugin-to-an-editor) + +### Rebuilding editor + +If you have already done the [Installation](#installation) and [Adding or removing plugins](#adding-or-removing-plugins) steps, you're ready to rebuild the editor by running the following command: + +``` +npm run build +``` + +This will build the CKEditor 5 to the `build` directory. You can open your browser and you should be able to see the changes you've made in the code. If not, then try to refresh also the browser cache by typing `Ctrl + R` or `Cmd + R` depending on your system. + +## What's next? + +Follow the guides available on https://ckeditor.com/docs/ckeditor5/latest/framework/index.html and enjoy the document editing. + +## FAQ +| Where is the place to report bugs and feature requests? + +You can create an issue on https://github.com/ckeditor/ckeditor5/issues including the build id - `unyb7c61pdjq-xt0bz4ltrghq`. Make sure that the question / problem is unique, please look for a possibly asked questions in the search box. Duplicates will be closed. + +| Where can I learn more about the CKEditor 5 framework? + +Here: https://ckeditor.com/docs/ckeditor5/latest/framework/ + +| Is it possible to use online builder with common frameworks like React, Vue or Angular? + +Not yet, but it these integrations will be available at some point in the future. diff --git a/resources/js/vendor/ckeditor/build/ckeditor.js b/resources/js/vendor/ckeditor/build/ckeditor.js new file mode 100644 index 0000000..878056f --- /dev/null +++ b/resources/js/vendor/ckeditor/build/ckeditor.js @@ -0,0 +1,7 @@ +!function(t){const e=t.fr=t.fr||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 sur %1","Align cell text to the bottom":"Aligner le texte en bas","Align cell text to the center":"Aligner la cellule au centre","Align cell text to the left":"Aligner la cellule à gauche","Align cell text to the middle":"Aligner le texte au milieu","Align cell text to the right":"Aligner la cellule à droite","Align cell text to the top":"Aligner le texte en haut","Align center":"Centrer","Align left":"Aligner à gauche","Align right":"Aligner à droite","Align table to the left":"Aligner le tableau à gauche","Align table to the right":"Aligner le tableau à droite",Alignment:"Alignement",Aquamarine:"Bleu vert",Background:"Fond",Big:"Grand",Black:"Noir","Block quote":"Citation",Blue:"Bleu",Bold:"Gras",Border:"Bordure","Break text":"","Bulleted List":"Liste à puces","Bulleted list styles toolbar":"Barre d'outils des styles de liste à puce",Cancel:"Annuler","Cell properties":"Propriétés de la cellule","Center table":"Centrer le tableau ","Centered image":"Image centrée","Change image text alternative":"Changer le texte alternatif à l’image","Characters: %0":"Caractères : %0","Choose heading":"Choisir l'en-tête",Circle:"Cercle",Color:"Couleur","Color picker":"Pipette à couleurs",Column:"Colonne",Dashed:"Tirets",Decimal:"Chiffres","Decimal with leading zero":"Chiffres avec des zéros supplémentaire","Decrease indent":"Diminuer le retrait",Default:"Par défaut","Delete column":"Supprimer la colonne","Delete row":"Supprimer la ligne","Dim grey":"Gris pâle",Dimensions:"Dimensions",Disc:"Disque","Document colors":"Couleurs du document",Dotted:"Pointillés",Double:"Double",Downloadable:"Fichier téléchargeable","Dropdown toolbar":"Barre d'outils dans un menu déroulant","Edit block":"Modifier le bloc","Edit link":"Modifier le lien","Editor toolbar":"Barre d'outils de l'éditeur","Enter table caption":"","Font Color":"Couleur de police","Font Family":"Police","Font Size":"Taille de police","Full size image":"Image taille réelle",Green:"Vert",Grey:"Gris",Groove:"Rainuré","Header column":"Colonne d'entête","Header row":"Ligne d'entête",Heading:"En-tête","Heading 1":"Titre 1","Heading 2":"Titre 2","Heading 3":"Titre 3","Heading 4":"Titre 4","Heading 5":"Titre 5","Heading 6":"Titre 6",Height:"Hauteur","Horizontal line":"Ligne horizontale","Horizontal text alignment toolbar":"Barre d'outils pour modifier l'alignement horizontal du texte",Huge:"Enorme","Image resize list":"Liste des tailles d'images","Image toolbar":"Barre d'outils des images","image widget":"Objet image","In line":"","Increase indent":"Augmenter le retrait","Insert column left":"Insérer une colonne à gauche","Insert column right":"Insérer une colonne à droite","Insert image":"Insérer une image","Insert media":"Insérer un média","Insert paragraph after block":"Insérer du texte après ce bloc","Insert paragraph before block":"Insérer du texte avant ce bloc","Insert row above":"Insérer une ligne au-dessus","Insert row below":"Insérer une ligne en-dessous","Insert table":"Insérer un tableau",Inset:"Relief intérieur",Italic:"Italique",Justify:"Justifier","Justify cell text":"Justifier le contenu de la cellule","Left aligned image":"Image alignée à gauche","Light blue":"Bleu clair","Light green":"Vert clair","Light grey":"Gris clair",Link:"Lien","Link image":"Lien d'image","Link URL":"URL du lien","List properties":"","Lower-latin":"Lettres minuscules","Lower–roman":"Chiffres romains en minuscules","Media URL":"URL de média","media widget":"Widget média","Merge cell down":"Fusionner la cellule en-dessous","Merge cell left":"Fusionner la cellule à gauche","Merge cell right":"Fusionner la cellule à droite","Merge cell up":"Fusionner la cellule au-dessus","Merge cells":"Fusionner les cellules",Next:"Suivant",None:"Aucun","Numbered List":"Liste numérotée","Numbered list styles toolbar":"Barre d'outils des styles de liste numérotée","Open in a new tab":"Ouvrir dans un nouvel onglet","Open link in new tab":"Ouvrir le lien dans un nouvel onglet",Orange:"Orange",Original:"Taille originale",Outset:"Relief extérieur",Padding:"Remplissage pour aérer le texte",Paragraph:"Paragraphe","Paste the media URL in the input.":"Coller l'URL du média",Previous:"Précedent",Purple:"Violet",Red:"Rouge",Redo:"Restaurer","Remove color":"Enlever la couleur","Remove Format":"Enlever le format","Resize image":"Redimensionner l'image","Resize image to %0":"Redimensionner à %0","Resize image to the original size":"Appliquer les dimensions d'origine","Restore default":"","Reversed order":"","Rich Text Editor":"Éditeur de texte enrichi","Rich Text Editor, %0":"Éditeur de texte enrichi, %0",Ridge:"Relief","Right aligned image":"Image alignée à droite",Row:"Ligne",Save:"Enregistrer","Select all":"Sélectionner tout","Select column":"Sélectionner la colonne","Select row":"Sélectionner la ligne","Show more items":"Montrer plus d'éléments","Side image":"Image latérale",Small:"Petit",Solid:"Continu","Split cell horizontally":"Scinder la cellule horizontalement","Split cell vertically":"Scinder la cellule verticalement",Square:"Carré","Start at":"","Start index must be greater than 0.":"",Style:"Style","Table alignment toolbar":"Barre d'outils pour modifier l'alignement du tableau","Table cell text alignment":"Alignement du texte de la cellule","Table properties":"Propriétés du tableau","Table toolbar":"Barre d'outils des tableaux","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte","Text alternative":"Texte alternatif",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'La couleur est invalide. Essayez "#FF0000" ou "rgb(255,0,0)" ou "red".',"The URL must not be empty.":"L'URL ne doit pas être vide.",'The value is invalid. Try "10px" or "2em" or simply "2".':'La valeur est invalide. Essayez "10px" ou "2em" ou simplement "2".',"This link has no URL":"Ce lien n'a pas d'URL","This media URL is not supported.":"Cette URL de média n'est pas supportée.",Tiny:"Minuscule","Tip: Paste the URL into the content to embed faster.":"Astuce : Copier l'URL du média dans le contenu pour l'insérer plus rapidement","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":'Activer / désactiver le style de liste "cercle"',"Toggle the decimal list style":'Activer / désactiver le style de liste "chiffres"',"Toggle the decimal with leading zero list style":'Activer / désactiver le style de liste "chiffres de mêmes longueurs"',"Toggle the disc list style":'Activer / désactiver le style de liste "disque"',"Toggle the lower–latin list style":'Activer / désactiver le style de liste "lettres minuscules"',"Toggle the lower–roman list style":'Activer / désactiver le style de liste "chiffres romains en minuscules"',"Toggle the square list style":'Activer / désactiver le style de liste "carré"',"Toggle the upper–latin list style":'Activer / désactiver le style de liste "lettres majuscules"',"Toggle the upper–roman list style":'Activer / désactiver le style de liste "chiffres romains en majuscules"',Turquoise:"Turquoise",Underline:"Souligné",Undo:"Annuler",Unlink:"Supprimer le lien","Upload failed":"Échec de l'envoi","Upload in progress":"Téléchargement en cours","Upper-latin":"Lettres majuscules","Upper-roman":"Chiffres romains en majuscules","Vertical text alignment toolbar":"Barre d'outils pour modifier l'alignement vertical du texte",White:"Blanc","Widget toolbar":"Barre d'outils du widget",Width:"Largeur","Words: %0":"Mots : %0","Wrap text":"",Yellow:"Jaune"}),e.getPluralForm=function(t){return t>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), +/*! + * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md. + */ +function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClassicEditor=e():t.ClassicEditor=e()}(self,(()=>(()=>{"use strict";var t={636:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},390:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CCzBF,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CA2DF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border)\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(var(--ck-clipboard-drop-target-dot-height) * -.5);\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t// Horizontal drop target (between blocks).\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\ttext-align: initial;\n\n\t\t& .ck-clipboard-drop-target__line {\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 0;\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-top: -1px;\n\n\t\t\t&::before {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) 0 var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size)) var(--ck-clipboard-drop-target-dot-size) 0;\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3638:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-editor-classic/theme/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,gDCED,eDKC,CAPA,uICMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAIF,CAPA,gDAMC,qBACD,CAEA,iFACC,uBAAwB,CCR1B,eDaC,CANA,yMCHA,qCAAsC,CDOpC,eAEF,CAKF,yCAEC,0CAA2C,CCpB3C,eD8BD,CAZA,yHCdE,qCAAsC,CDmBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-modal);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-toolbar {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\n\t\t& .ck-sticky-panel__content_sticky .ck-toolbar {\n\t\t\tborder-bottom-width: 1px;\n\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8894:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n"],sourceRoot:""}]);const a=s},4401:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},2585:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-button.ck-color-table__remove-color{align-items:center;display:flex;width:100%}label.ck.ck-color-grid__label{font-weight:unset}.ck .ck-button.ck-color-table__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck .ck-button.ck-color-table__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-base-border)}[dir=ltr] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-font/theme/fontcolor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-font/fontcolor.css"],names:[],mappings:"AAKA,4CAEC,kBAAmB,CADnB,YAAa,CAEb,UACD,CAEA,8BACC,iBACD,CCNA,4CAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,wDACC,mDACD,CAEA,kEAEE,uCAMF,CARA,kEAME,sCAEF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-button.ck-color-table__remove-color {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n}\n\nlabel.ck.ck-color-grid__label {\n\tfont-weight: unset;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck .ck-button.ck-color-table__remove-color {\n\tpadding: calc(var(--ck-spacing-standard) / 2 ) var(--ck-spacing-standard);\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n\n\t&:not(:focus) {\n\t\tborder-bottom: 1px solid var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const a=s},6203:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css"],names:[],mappings:"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */\n\n/* Styles should be prefixed with the `.ck-content` class.\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\n.ck-content {\n\t& .text-tiny {\n\t\tfont-size: .7em;\n\t}\n\n\t& .text-small {\n\t\tfont-size: .85em;\n\t}\n\n\t& .text-big {\n\t\tfont-size: 1.4em;\n\t}\n\n\t& .text-huge {\n\t\tfont-size: 1.8em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3230:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},2536:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css"],names:[],mappings:"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n\n.ck-editor__editable .ck-horizontal-line {\n\t/* Necessary to render properly next to floated objects, e.g. side image case. */\n\tdisplay: flow-root;\n}\n\n.ck-content hr {\n\tmargin: 15px 0;\n\theight: 4px;\n\tbackground: hsl(0, 0%, 87%);\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},9048:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBAuBD,CAbC,uBAEC,aAAc,CAGd,aAAc,CAGd,cAAe,CAGf,cACD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAWA,2GACC,SAUD,CAHC,qEACC,YACD,CAOA,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the
in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of
.\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\n\t/*\n\t * Make sure the selected inline image always stays on top of its siblings.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t */\n\t& .image.ck-widget_selected {\n\t\tz-index: 1;\n\t}\n\n\t& .image-inline.ck-widget_selected {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the native browser selection style is not displayed.\n\t\t * Inline image widgets have their own styles for the selected state and\n\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t */\n\t\t& ::selection {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},1043:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAKA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `
` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\n\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\n\tFortunately, since we control the width, there is no risk that the image will look bad.\n\t*/\n\tdisplay: block;\n\tbox-sizing: border-box;\n\n\t& img {\n\t\t/* For resized images it is the `
` element that determines the image width. */\n\t\twidth: 100%;\n\t}\n\n\t& > figcaption {\n\t\t/* The `
` element uses `display:block`, so `
` also has to. */\n\t\tdisplay: block;\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/* The resized inline image nested in the table should respect its parent size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline.image_resized img {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-right: var(--ck-spacing-standard);\n}\n\n[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\n\twidth: 4em;\n}\n'],sourceRoot:""}]);const a=s},4622:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9899:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFA0BD,CAtBC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},9825:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},5870:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBACD,CAID,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},6831:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},399:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/link.css"],names:[],mappings:"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Class added to span element surrounding currently selected link. */\n.ck .ck-link_selected {\n\tbackground: var(--ck-color-link-selected-background);\n\n\t/* Give linked inline images some outline to let the user know they are also part of the link. */\n\t& span.image-inline {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\n\t}\n}\n\n/*\n * Classes used by the "fake visual selection" displayed in the content when an input\n * in the link UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-link-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-link-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n'],sourceRoot:""}]);const a=s},9465:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css"],names:[],mappings:"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCKA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDvDD,oCC2DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CAGD,gJAME,aAEF,CD1ED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-link-actions__preview {\n\t\tdisplay: inline-block;\n\n\t\t& .ck-button__label {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-link-actions__preview {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\t& .ck-button.ck-link-actions__preview {\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\t& .ck-button__label {\n\t\t\tpadding: 0 var(--ck-spacing-medium);\n\t\t\tcolor: var(--ck-color-link-default);\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n\n\t\t\t/* Match the box model of the link editor form\'s input so the balloon\n\t\t\tdoes not change width when moving between actions and the form. */\n\t\t\tmax-width: var(--ck-input-width);\n\t\t\tmin-width: 3em;\n\t\t\ttext-align: center;\n\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t&,\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t& .ck-button__label {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-button:not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-button:not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\t& .ck-button.ck-link-actions__preview {\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\n\n\t\t\t& .ck-button__label {\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},4827:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical .ck-button{border:0;border-radius:0;border-top:1px solid var(--ck-color-base-border);margin:0;padding:var(--ck-spacing-standard);width:50%}[dir=ltr] .ck.ck-link-form_layout-vertical .ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{border:0;padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css"],names:[],mappings:"AAOA,iBACC,YAiBD,CAfC,2BACC,YACD,CCNA,oCDCD,iBAQE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CCfD,CDuBD,iCACC,aAYD,CALE,wHAEC,mCACD,CE/BF,iCAEC,+BAAgC,CADhC,SA+CD,CA5CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,QAAS,CADT,eAAgB,CAEhB,gDAAiD,CAHjD,QAAS,CADT,kCAAmC,CAKnC,SAaD,CAnBA,4GAaE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,yDAWD,CATC,wEACC,QAAS,CACT,SAAU,CACV,UAKD,CAHC,8EACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-form {\n\tdisplay: flex;\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tdisplay: block;\n\n\t/*\n\t * Whether the form is in the responsive mode or not, if there are decorator buttons\n\t * keep the top margin of action buttons medium.\n\t */\n\t& .ck-button {\n\t\t&.ck-button-save,\n\t\t&.ck-button-cancel {\n\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tpadding: 0;\n\tmin-width: var(--ck-input-width);\n\n\t& .ck-labeled-field-view {\n\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\n\n\t\t& .ck-input-text {\n\t\t\tmin-width: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t& .ck-button {\n\t\tpadding: var(--ck-spacing-standard);\n\t\tmargin: 0;\n\t\tborder-radius: 0;\n\t\tborder: 0;\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\twidth: 50%;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: 0;\n\n\t\t\t&:last-of-type {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\n\t& .ck.ck-list {\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\n\t\t& .ck-button.ck-switchbutton {\n\t\t\tborder: 0;\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},3858:(t,e,n)=>{n.d(e,{Z:()=>h});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r),a=n(1667),l=n.n(a),c=new URL(n(8491),n.b),d=s()(i()),u=l()(c);d.push([t.id,".ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{display:block;position:absolute}:root{--ck-link-image-indicator-icon-size:20;--ck-link-image-indicator-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{background-color:rgba(0,0,0,.4);background-image:url("+u+');background-position:50%;background-repeat:no-repeat;background-size:14px;border-radius:100%;content:"";height:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size));overflow:hidden;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);width:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size))}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkimage.css"],names:[],mappings:"AASE,+FACC,aAAc,CACd,iBACD,CCPF,MAEC,sCAAuC,CACvC,oEACD,CAME,+FAUC,+BAAqC,CACrC,wDAA+3B,CAG/3B,uBAA2B,CAD3B,2BAA4B,CAD5B,oBAAqB,CAGrB,kBAAmB,CAdnB,UAAW,CAsBX,oGAAuG,CAFvG,eAAgB,CAbhB,sCAAwC,CADxC,oCAAsC,CAetC,mGAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Match the icon size with the upload indicator brought by the image upload feature. */\n\t--ck-link-image-indicator-icon-size: 20;\n\t--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tcontent: "";\n\n\t\t\t/*\n\t\t\t * Smaller images should have the icon closer to the border.\n\t\t\t * Match the icon position with the upload indicator brought by the image upload feature.\n\t\t\t */\n\t\t\ttop: min(var(--ck-spacing-medium), 6%);\n\t\t\tright: min(var(--ck-spacing-medium), 6%);\n\n\t\t\tbackground-color: hsla(0, 0%, 0%, .4);\n\t\t\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+");\n\t\t\tbackground-size: 14px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tborder-radius: 100%;\n\n\t\t\t/*\n\t\t\t* Use CSS math to simulate container queries.\n\t\t\t* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t\t\t*/\n\t\t\toverflow: hidden;\n\t\t\twidth: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t\theight: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const h=d},3195:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:0 var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/collapsible.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/collapsible.css"],names:[],mappings:"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAFhB,eAAiB,CACjB,wDAAyD,CAFzD,UAmBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,yDACD,CAGC,mEACC,wBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-collapsible.ck-collapsible_collapsed {\n\t& > .ck-collapsible__children {\n\t\tdisplay: none;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-collapsible {\n\t& > .ck.ck-button {\n\t\twidth: 100%;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\n\t\tborder-radius: 0;\n\n\t\t&:focus {\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t&:active, &:not(:focus), &:hover:not(:focus) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t& > .ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\twidth: var(--ck-collapsible-arrow-size);\n\t\t}\n\t}\n\n\t& > .ck-collapsible__children {\n\t\tpadding: 0 var(--ck-spacing-large) var(--ck-spacing-large);\n\t}\n\n\t&.ck-collapsible_collapsed {\n\t\t& > .ck.ck-button .ck-icon {\n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7133:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css"],names:[],mappings:"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-properties {\n\t/* When there are no list styles and there is no collapsible. */\n\t&.ck-list-properties_without-styles {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * {\n\t\t\tmin-width: 14em;\n\n\t\t\t& + * {\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * When the numbered list property fields (start at, reversed) should be displayed,\n\t * more horizontal space is needed. Reconfigure the style grid to create that space.\n\t */\n\t&.ck-list-properties_with-numbered-properties {\n\t\t& > .ck-list-styles-list {\n\t\t\tgrid-template-columns: repeat( 4, auto );\n\t\t}\n\n\t\t/* When list styles are rendered and property fields are in a collapsible. */\n\t\t& > .ck-collapsible {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t& > .ck-collapsible__children {\n\t\t\t\t& > * {\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\t& + * {\n\t\t\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-numbered-list-properties__start-index .ck-input {\n\t\tmin-width: auto;\n\t\twidth: 100%;\n\t}\n\n\t& .ck.ck-numbered-list-properties__reversed-order {\n\t\tbackground: transparent;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\n\n\t\t&:active, &:hover {\n\t\t\tbox-shadow: none;\n\t\t\tborder-color: transparent;\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4553:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css"],names:[],mappings:"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-styles-list {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-list-style-button-size: 44px;\n}\n\n.ck.ck-list-styles-list {\n\tgrid-template-columns: repeat( 3, auto );\n\trow-gap: var(--ck-spacing-medium);\n\tcolumn-gap: var(--ck-spacing-medium);\n\tpadding: var(--ck-spacing-large);\n\n\t& .ck-button {\n\t\t/* Make the button look like a thumbnail (the icon "takes it all"). */\n\t\twidth: var(--ck-list-style-button-size);\n\t\theight: var(--ck-list-style-button-size);\n\t\tpadding: 0;\n\n\t\t/*\n\t\t * Buttons are aligned by the grid so disable default button margins to not collide with the\n\t\t * gaps in the grid.\n\t\t */\n\t\tmargin: 0;\n\n\t\t/*\n\t\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\n\t\t * from the button dimensions and, as a result, decrease the size of the icon\n\t\t * (which becomes blurry as it scales down).\n\t\t */\n\t\tbox-sizing: content-box;\n\n\t\t& .ck-icon {\n\t\t\twidth: var(--ck-list-style-button-size);\n\t\t\theight: var(--ck-list-style-button-size);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5777:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .media{clear:both;display:block;margin:.9em 0;min-width:15em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css"],names:[],mappings:"AAKA,mBAGC,UAAW,CASX,aAAc,CAJd,aAAe,CAQf,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .media {\n\t/* Don\'t allow floated content overlap the media.\n\thttps://github.com/ckeditor/ckeditor5-media-embed/issues/53 */\n\tclear: both;\n\n\t/* Make sure there is some space between the content and the media. */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em 0;\n\n\t/* Make sure media is not overriden with Bootstrap default `flex` value.\n\tSee: https://github.com/ckeditor/ckeditor5/issues/1373. */\n\tdisplay: block;\n\n\t/* Give the media some minimal width in the content to prevent them\n\tfrom being "squashed" in tight spaces, e.g. in table cells (#44) */\n\tmin-width: 15em;\n}\n'],sourceRoot:""}]);const a=s},952:(t,e,n)=>{n.d(e,{Z:()=>b});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r),a=n(1667),l=n.n(a),c=new URL(n(4493),n.b),d=new URL(n(2739),n.b),u=new URL(n(6631),n.b),h=new URL(n(7511),n.b),m=s()(i()),g=l()(c),p=l()(d),f=l()(u),k=l()(h);m.push([t.id,'.ck-media__wrapper .ck-media__placeholder{align-items:center;display:flex;flex-direction:column}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:block}@media (hover:none){.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:none}}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip{opacity:1;visibility:visible}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{display:block;overflow:hidden}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{background:var(--ck-color-base-foreground);padding:calc(var(--ck-spacing-standard)*3)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{background-position:50%;background-size:cover;height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);min-width:var(--ck-media-embed-placeholder-icon-size)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{height:100%;width:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);font-style:italic;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-height:380px;max-width:300px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url('+g+')}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+p+')}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+f+')}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+k+')}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-media-embed/mediaembedediting.css"],names:[],mappings:"AAQC,0CAGC,kBAAmB,CAFnB,YAAa,CACb,qBAoBD,CCpBA,kFACC,aAqBD,CAHC,oBAnBD,kFAoBE,YAEF,CADC,CDlBA,sEAIC,cAAe,CAEf,iBAUD,CCoBD,wFAEC,SAAU,CADV,kBAED,CD3BE,wGAEC,aAAc,CADd,eAED,CAWD,6kBACC,YACD,CAYF,2LACC,mBACD,CElDA,MACC,0CAA2C,CAE3C,mDAA4D,CAC5D,2EACD,CAEA,mBACC,aA+FD,CA7FC,0CAEC,0CAA2C,CAD3C,0CA6BD,CA1BC,uEAIC,uBAA2B,CAC3B,qBAAsB,CAHtB,kDAAmD,CACnD,qCAAsC,CAFtC,qDAUD,CAJC,gFAEC,WAAY,CADZ,UAED,CAGD,4EACC,sDAAuD,CAGvD,iBAAkB,CADlB,iBAAkB,CAElB,sBAAuB,CAHvB,kBAUD,CALC,kFACC,4DAA6D,CAC7D,cAAe,CACf,yBACD,CAIF,wDAEC,gBAAiB,CADjB,eAED,CAEA,4UAIC,wDACD,CAEA,2EACC,kBAaD,CAXC,wGACC,wDACD,CAEA,6GACC,UAKD,CAHC,mHACC,UACD,CAIF,4EACC,2DAcD,CAZC,yGACC,wDACD,CAGA,8GACC,aAKD,CAHC,oHACC,UACD,CAIF,6EAEC,iDAaD,CAXC,0GACC,wDACD,CAEA,+GACC,aAKD,CAHC,qHACC,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css";\n\n.ck-media__wrapper {\n\t& .ck-media__placeholder {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\n\t\t& .ck-media__placeholder__url {\n\t\t\t@mixin ck-tooltip_enabled;\n\n\t\t\t/* Otherwise the URL will overflow when the content is very narrow. */\n\t\t\tmax-width: 100%;\n\n\t\t\tposition: relative;\n\n\t\t\t&:hover {\n\t\t\t\t@mixin ck-tooltip_visible;\n\t\t\t}\n\n\t\t\t& .ck-media__placeholder__url__text {\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"],\n\t&[data-oembed-url*="google.com/maps"],\n\t&[data-oembed-url*="goo.gl/maps"],\n\t&[data-oembed-url*="maps.google.com"],\n\t&[data-oembed-url*="maps.app.goo.gl"],\n\t&[data-oembed-url*="facebook.com"],\n\t&[data-oembed-url*="instagram.com"] {\n\t\t& .ck-media__placeholder__icon * {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/* Disable all mouse interaction as long as the editor is not read–only.\n https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */\n.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {\n\tpointer-events: none;\n}\n\n/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).\n https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */\n.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {\n\tpointer-events: none;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-media-embed-placeholder-icon-size: 3em;\n\n\t--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);\n\t--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);\n}\n\n.ck-media__wrapper {\n\tmargin: 0 auto;\n\n\t& .ck-media__placeholder {\n\t\tpadding: calc( 3 * var(--ck-spacing-standard) );\n\t\tbackground: var(--ck-color-base-foreground);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tmin-width: var(--ck-media-embed-placeholder-icon-size);\n\t\t\theight: var(--ck-media-embed-placeholder-icon-size);\n\t\t\tmargin-bottom: var(--ck-spacing-large);\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: cover;\n\n\t\t\t& .ck-icon {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text);\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: center;\n\t\t\tfont-style: italic;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text-hover);\n\t\t\t\tcursor: pointer;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="open.spotify.com"] {\n\t\tmax-width: 300px;\n\t\tmax-height: 380px;\n\t}\n\n\t&[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {\n\t\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);\n\t}\n\n\t&[data-oembed-url*="facebook.com"] .ck-media__placeholder {\n\t\tbackground: hsl(220, 46%, 48%);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(220, 100%, 90%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="instagram.com"] .ck-media__placeholder {\n\t\tbackground: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);\n\t\t}\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(302, 100%, 94%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {\n\t\t/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */\n\t\tbackground: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(201, 100%, 86%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const b=m},3525:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-media-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,kBAEC,sBAAuB,CADvB,YAAa,CAEb,kBAAmB,CACnB,gBAqBD,CAnBC,yCACC,oBACD,CAEA,4BACC,YACD,CCbA,oCDCD,kBAeE,cAUF,CARE,yCACC,eACD,CAEA,6BACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-media-form {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},671:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-source-editing-area{overflow:hidden;position:relative}.ck-source-editing-area textarea,.ck-source-editing-area:after{border:1px solid transparent;font-family:monospace;font-size:var(--ck-font-size-normal);line-height:var(--ck-line-height-base);margin:0;padding:var(--ck-spacing-large);white-space:pre-wrap}.ck-source-editing-area:after{content:attr(data-value) " ";display:block;visibility:hidden}.ck-source-editing-area textarea{border-color:var(--ck-color-base-border);border-radius:0;box-sizing:border-box;height:100%;outline:none;overflow:hidden;position:absolute;resize:none;width:100%}.ck-rounded-corners .ck-source-editing-area textarea,.ck-source-editing-area textarea.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck-source-editing-area textarea:not([readonly]):focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-source-editing/theme/sourceediting.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,wBAEC,eAAgB,CADhB,iBAED,CAEA,+DAIC,4BAA6B,CAG7B,qBAAsB,CADtB,oCAAqC,CADrC,sCAAuC,CAFvC,QAAS,CADT,+BAAgC,CAMhC,oBACD,CAEA,8BACC,4BAA6B,CAE7B,aAAc,CADd,iBAED,CAEA,iCASC,wCAAyC,CC7BzC,eAAgB,CD2BhB,qBAAsB,CAJtB,WAAY,CAEZ,YAAa,CACb,eAAgB,CALhB,iBAAkB,CAGlB,WAAY,CAFZ,UAkBD,CApBA,yGChBE,qCAAsC,CD4BtC,wBAAyB,CACzB,yBAOF,CAJC,uDEpCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFwCA",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css";\n\n.ck-source-editing-area {\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.ck-source-editing-area::after,\n.ck-source-editing-area textarea {\n\tpadding: var(--ck-spacing-large);\n\tmargin: 0;\n\tborder: 1px solid transparent;\n\tline-height: var(--ck-line-height-base);\n\tfont-size: var(--ck-font-size-normal);\n\tfont-family: monospace;\n\twhite-space: pre-wrap;\n}\n\n.ck-source-editing-area::after {\n\tcontent: attr(data-value) " ";\n\tvisibility: hidden;\n\tdisplay: block;\n}\n\n.ck-source-editing-area textarea {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tresize: none;\n\toutline: none;\n\toverflow: hidden;\n\tbox-sizing: border-box;\n\n\tborder-color: var(--ck-color-base-border);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not([readonly]):focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},4082:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom:1px solid var(--ck-color-input-border);border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAQF,CAVA,+CAQE,2BAA4B,CAD5B,wBAGF,CAGC,wEACC,SAoCD,CArCA,kFAME,2BAA4B,CAF5B,mBAAoB,CACpB,wBAgCF,CArCA,kFAYE,4BAA6B,CAF7B,oBAAqB,CACrB,yBA0BF,CAtBC,oFACC,oDACD,CAEA,4GC9BF,eD+CE,CAjBA,+PC1BD,qCD2CC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAEC,oDAAqD,CAGrD,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CAFxE,UAuBD,CAxBA,8DASE,yBAeF,CAxBA,8DAaE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-input-color {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\n\t& > input.ck.ck-input-text {\n\t\tmin-width: auto;\n\t\tflex-grow: 1;\n\t}\n\n\t& > div.ck.ck-dropdown {\n\t\tmin-width: auto;\n\n\t\t/* This dropdown has no arrow but a color preview instead. */\n\t\t& > .ck-input-color__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__button {\n\t\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\n\t\tdisplay: flex;\n\n\t\t& .ck.ck-input-color__button__preview {\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_rounded.css";\n\n.ck.ck-input-color {\n\t& > .ck.ck-input-text {\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t& > .ck.ck-dropdown {\n\t\t& > .ck.ck-button.ck-input-color__button {\n\t\t\tpadding: 0;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tborder-left-width: 0;\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\t&.ck-disabled {\n\t\t\t\tbackground: var(--ck-color-input-disabled-background);\n\t\t\t}\n\n\t\t\t& > .ck.ck-input-color__button__preview {\n\t\t\t\t@mixin ck-rounded-corners;\n\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tborder: 1px solid var(--ck-color-input-border);\n\n\t\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\t\ttop: -30%;\n\t\t\t\t\tleft: 50%;\n\t\t\t\t\theight: 150%;\n\t\t\t\t\twidth: 8%;\n\t\t\t\t\tbackground: hsl(0, 100%, 50%);\n\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\ttransform: rotate(45deg);\n\t\t\t\t\ttransform-origin: 50%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__remove-color {\n\t\twidth: 100%;\n\t\tborder-bottom: 1px solid var(--ck-color-input-border);\n\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\n\t\tborder-bottom-left-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t}\n\n\t\t& .ck.ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4880:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/form.css"],names:[],mappings:"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form {\n\tpadding: 0 0 var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t& .ck.ck-input-text {\n\t\tmin-width: 100%;\n\t\twidth: 0;\n\t}\n\n\t& .ck.ck-dropdown {\n\t\tmin-width: 100%;\n\n\t\t& .ck-dropdown__button {\n\t\t\t&:not(:focus) {\n\t\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck-button__label {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9865:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css"],names:[],mappings:"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-form__row {\n\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\t& + * {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-label {\n\t\twidth: 100%;\n\t\tmin-width: 100%;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8085:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);width:var(--ck-insert-table-dropdown-box-width)}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,qCACC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAHlB,iDAAkD,CAClD,iDAAkD,CAFlD,+CAUD,CAJC,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\twidth: var(--ck-insert-table-dropdown-box-width);\n\theight: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},4104:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent
. Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s},9888:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-table-caption-background:#f7f7f7;--ck-color-table-caption-text:#333;--ck-color-table-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-table-caption-background);caption-side:top;color:var(--ck-color-table-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-table-caption-highlighted-background)}to{background-color:var(--ck-color-table-caption-background)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css"],names:[],mappings:"AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAMC,yDAA0D,CAJ1D,gBAAiB,CAGjB,wCAAyC,CAJzC,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAOD,CAIC,qEACC,iDACD,CAEA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-table-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-table-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .table > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: top;\n\tword-break: break-word;\n\ttext-align: center;\n\tcolor: var(--ck-color-table-caption-text);\n\tbackground-color: var(--ck-color-table-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .table > figcaption {\n\t&.table__caption_highlighted {\n\t\tanimation: ck-table-caption-highlight .6s ease-out;\n\t}\n\n\t&.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n@keyframes ck-table-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-table-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-table-caption-background);\n\t}\n}\n"],sourceRoot:""}]);const a=s},5737:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css"],names:[],mappings:"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\t&:first-of-type {\n\t\t\t\t\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\n\t\t\t\t\tflex-grow: 0.57;\n\t\t\t\t}\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\n\t\t\t\t\tflex-grow: 0.43;\n\t\t\t\t}\n\n\t\t\t\t& .ck-button {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__padding-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\t\t\twidth: 25%;\n\t\t}\n\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4777:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-table-focused-cell-background:rgba(158,207,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,6DACD,CAKE,8QAGC,wDAAyD,CAKzD,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-focused-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-table-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},198:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:"";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCAyBD,CAvBC,8ECxCD,eDyDC,CAjBA,mMCpCA,qCDqDA,CAjBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAUD,CAPC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEACD,CAGA,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__background-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\talign-items: center;\n\n\t\t\t\t& .ck.ck-dropdown {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\tflex-grow: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\t/* Allow absolute positioning of the status (error) balloons. */\n\t\tposition: relative;\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\ttransform: translate(-50%,100%);\n\n\t\t\t/* Make sure the balloon status stays on top of other form elements. */\n\t\t\tz-index: 1;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX( -50% );\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-table-properties-error-arrow-size: 6px;\n\t--ck-table-properties-min-error-width: 150px;\n}\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\t& > .ck-label {\n\t\t\t\t\tfont-size: var(--ck-font-size-tiny);\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__border-style,\n\t\t\t& .ck-table-form__border-width {\n\t\t\t\twidth: 80px;\n\t\t\t\tmin-width: 80px;\n\t\t\t\tmax-width: 80px;\n\t\t\t}\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tpadding: 0;\n\n\t\t\t& .ck-table-form__dimensions-row__width,\n\t\t\t& .ck-table-form__dimensions-row__height {\n\t\t\t\tmargin: 0\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\talign-self: flex-end;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: var(--ck-ui-component-min-height);\n\t\t\t\tline-height: var(--ck-ui-component-min-height);\n\t\t\t\tmargin: 0 var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: var(--ck-spacing-standard);\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\t@mixin ck-rounded-corners;\n\n\t\t\tbackground: var(--ck-color-base-error);\n\t\t\tcolor: var(--ck-color-base-background);\n\t\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\t\tmin-width: var(--ck-table-properties-min-error-width);\n\t\t\ttext-align: center;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\n\t\t\t\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\n\t\t}\n\n\t\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\n\t\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n@keyframes ck-table-form-labeled-view-status-appear {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9221:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css"],names:[],mappings:"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\t\t\tflex-basis: 0;\n\t\t\talign-content: baseline;\n\n\t\t\t& .ck.ck-toolbar .ck-toolbar__items {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t\t\t& .ck-toolbar__items > * {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},5593:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4499:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-button,a.ck.ck-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:block}@media (hover:none){.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:none}}.ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;justify-content:left;position:relative}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button:hover .ck-tooltip,a.ck.ck-button:hover .ck-tooltip{opacity:1;visibility:visible}.ck.ck-button:focus:not(:hover) .ck-tooltip,a.ck.ck-button:focus:not(:hover) .ck-tooltip{display:none}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-default-active-shadow)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-on-active-shadow)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-action-active-shadow)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAQA,6BCCC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6BD,CE/BC,qDACC,aAqBD,CAHC,oBAnBD,qDAoBE,YAEF,CADC,CFvBF,6BAOC,kBAAmB,CADnB,mBAAoB,CAEpB,oBAAqB,CAHrB,iBA4BD,CAvBC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEkBA,iEAEC,SAAU,CADV,kBAED,CAbA,yFACC,YACD,CC7BD,6BCAC,oDD0ID,CCvIE,6EACC,0DACD,CAEA,+EACC,2DAA4C,CAC5C,uEACD,CAID,qDACC,6DACD,CDhBD,6BEDC,eF2ID,CA1IA,wIEGE,qCFuIF,CA1IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAqID,CA3GC,oFGhCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHqCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAYD,CAbA,6FAIE,mCASF,CAbA,6FAQE,oCAKF,CAbA,yEAWC,eAAiB,CACjB,UACD,CAIC,oIIrFD,oDJyFC,CAOA,gLKhGD,kCLkGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCC/HA,+CDiIA,CC9HC,yFACC,qDACD,CAEA,2FACC,sDAA4C,CAC5C,kEACD,CAID,iEACC,wDACD,CDmHA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CC7IC,mDDkJD,CC/IE,2FACC,yDACD,CAEA,6FACC,0DAA4C,CAC5C,sEACD,CAID,mEACC,4DACD,CD6HD,2CAIC,wCACD,CAEA,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n@import "../tooltip/mixins/_tooltip.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\t@mixin ck-tooltip_enabled;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: left;\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n\n\t&:hover {\n\t\t@mixin ck-tooltip_visible;\n\t}\n\n\t/* Get rid of the native focus outline around the tooltip when focused (but not :hover). */\n\t&:focus:not(:hover) {\n\t\t@mixin ck-tooltip_disabled;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\tfont-weight: bold;\n\t\topacity: .7;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t\tbox-shadow: inset 0 2px 2px var($(prefix)-active-shadow);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9681:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:1.0769230769em;--ck-switch-button-toggle-spacing:1px;--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - var(--ck-switch-button-toggle-spacing)*2)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);transition:background .4s ease;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);margin:var(--ck-switch-button-toggle-spacing);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,mDAAoD,CACpD,qCAAsC,CACtC,gKAKD,CAGC,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDC3BA,eDoEA,CAzCA,yICvBC,qCDgED,CAzCA,2DAKE,gBAoCF,CAzCA,2DAUE,iBA+BF,CAzCA,iDAiBC,uDAAwD,CAHxD,8BAAiC,CAEjC,0CAyBD,CAtBC,2EC9CD,eD2DC,CAbA,6LC1CA,qCAAsC,CD4CpC,8CAWF,CAbA,2EASC,yDAA0D,CAD1D,gDAAiD,CAFjD,6CAA8C,CAM9C,uBAA0B,CAL1B,+CAMD,CAEA,uDACC,6DAKD,CAHC,iFACC,+DACD,CAIF,6DExEA,kCF0EA,CAEA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: 1.0769230769em;\n\t--ck-switch-button-toggle-spacing: 1px;\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2 * var(--ck-switch-button-toggle-spacing)\n\t);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease;\n\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\t/* Leave some tiny bit of space around the inner part of the switch */\n\t\t\tmargin: var(--ck-switch-button-toggle-spacing);\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t&.ck-on .ck-button__toggle {\n\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t}\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t/*\n\t\t\t * Move the toggle switch to the right. It will be animated.\n\t\t\t */\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},4923:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#000}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css"],names:[],mappings:"AAKA,kBACC,YACD,CCAA,MACC,8BAA+B,CAK/B,qCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBAOC,QAAS,CALT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CACV,8BAA+B,CAL/B,oCAyCD,CAjCC,oCACC,YAAa,CACb,gBACD,CAEA,4DACC,gDACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAEA,8BACC,8FAKD,CAHC,0CACC,aACD,CAGD,8HAIC,QACD,CAEA,gGAEC,iGACD,CAGD,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(0, 0%, 0%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\twidth: var(--ck-color-grid-tile-size);\n\theight: var(--ck-color-grid-tile-size);\n\tmin-width: var(--ck-color-grid-tile-size);\n\tmin-height: var(--ck-color-grid-tile-size);\n\tpadding: 0;\n\ttransition: .2s ease box-shadow;\n\tborder: 0;\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t&.ck-color-table__color-tile_bordered {\n\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&.ck-on,\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\t/* Disable the default .ck-button\'s border ring. */\n\t\tborder: 0;\n\t}\n\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n'],sourceRoot:""}]);const a=s},3488:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip{display:none}.ck.ck-dropdown .ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-modal)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBAqFD,CAnFC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UAOD,CCUA,iEACC,YACD,CDVA,oCAGC,kCAAmC,CAEnC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CEhGA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eH8GD,CA5BA,qFG9EE,qCH0GF,CA5BA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAmBD,CAfC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"../tooltip/mixins/_tooltip.css\";\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\n\t\t/* Disable main button's tooltip when the dropdown is open. Otherwise the panel may\n\t\tpartially cover the tooltip */\n\t\t&.ck-on {\n\t\t\t@mixin ck-tooltip_disabled;\n\t\t}\n\t}\n\n\t& .ck-dropdown__panel {\n\t\t/* This is to get rid of flickering when the tooltip is shown under the panel,\n\t\twhich looks like the panel moves vertically a pixel down and up. */\n\t\t-webkit-backface-visibility: hidden;\n\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-modal);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-modal) + 1 );\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\t\t\t\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6875:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown .ck-dropdown__panel .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},66:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button .ck-tooltip{display:none}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,mBAEC,iBAUD,CARC,iDACC,qCACD,CC0BA,8DACC,YACD,CClCD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CASA,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCC7EA,eDuFA,CAVA,qHCzEC,qCDmFD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../tooltip/mixins/_tooltip.css";\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n\n\t/* Disable tooltips for the buttons when the button is "open" */\n\t&.ck-splitbutton_open > .ck-button {\n\t\t@mixin ck-tooltip_disabled;\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5075:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},4547:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,mDACD,CAIA,gEACC,gDACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-base-foreground);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-base-foreground);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},5523:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-form__header .ck-form__header__label{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BACD,CCNA,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAQD,CAHC,4CACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-form-header-height: 38px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& .ck-form__header__label {\n\t\tfont-weight: bold;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1174:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{color:inherit;cursor:inherit}.ck.ck-icon :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAY1B,qBAcD,CAZC,0BARA,aAAc,CAGd,cAgBA,CAJC,yBAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\tcolor: inherit;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\n\t\t/* Allows dynamic coloring of the icons. */\n\t\tcolor: inherit;\n\n\t\t&:not([fill]) {\n\t\t\t/* Needed by FF. */\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},6985:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eD2CD,CAtCA,iECDE,qCDuCF,CAtCA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DA0BD,CAxBC,mBEnBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YFuBA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BG/BD,oDHkCC,CAGD,sBAEC,sCAAuC,CADvC,+CAMD,CAHC,4BGzCD,iDH2CC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2751:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},8111:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,yEACD,CAEA,0BCHC,eD4GD,CAzGA,2FCCE,qCDwGF,CAtGC,mEACC,UAmCD,CAjCC,gFACC,KA+BD,CAhCA,0FAIE,MA4BF,CAhCA,0FAQE,OAwBF,CAhCA,gFAiBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAP9C,mBAAoB,CAYpB,sBAAuB,CARvB,6DAA+D,CAH/D,oBAAqB,CAgBrB,+JAID,CAQA,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,oUAGE,wFAYF,CAfA,oUAOE,iGAQF,CAfA,gTAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\t\t\ttransform-origin: 0 0;\n\n\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-spacing-medium), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1162:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{border-radius:0;min-height:unset;padding:calc(var(--ck-line-height-base)*.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*.4*var(--ck-font-size-base));text-align:left;width:100%}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEfD,YCEC,eDGD,CALA,+DCME,qCDDF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAIC,eAAgB,CAHhB,gBAAiB,CAQjB,iIAEiE,CARjE,eAAgB,CADhB,UAwCD,CA7BC,+CAEC,yEACD,CAEA,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,2DACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tborder-radius: 0;\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t because e.g. different heading styles may have different height\n\t\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding:\n\t\t\tcalc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\n\t\t& .ck-button__label {\n\t\t\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\t\tline-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8245:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow))}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCJC,eD4ID,CAxIA,iFCAE,qCDwIF,CAxIA,qBAMC,2CAA4C,CAC5C,6CAA8C,CEb9C,oCAA8B,CFU9B,eAoID,CA9HE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EACD,CAEA,2CACC,iFAAkF,CAClF,yCACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDACD,CAEA,2CACC,iFAAkF,CAClF,4CACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-modal);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: var(--ck-balloon-arrow-offset);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: var(--ck-balloon-arrow-offset);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1757:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3553:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-modal) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3609:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-modal)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-modal); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1590:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-vertical-form .ck-button:after{bottom:var(--ck-spacing-small);content:"";position:absolute;right:-1px;top:var(--ck-spacing-small);width:0;z-index:1}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:var(--ck-spacing-small);content:"";position:absolute;right:-1px;top:var(--ck-spacing-small);width:0;z-index:1}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border:0;border-radius:0;border-top:1px solid var(--ck-color-base-border);margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after,[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css"],names:[],mappings:"AAOA,mCAMC,8BAA+B,CAL/B,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,2BAA4B,CAH5B,OAAQ,CAKR,SACD,CCTC,oCDaC,wCAMC,8BAA+B,CAL/B,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,2BAA4B,CAH5B,OAAQ,CAKR,SACD,CCnBD,CCAD,qDACC,kDACD,CAEA,uBACC,+BAkED,CAhEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA6CF,CA3CE,8CACC,wDAWD,CATC,6DACC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAID,iGAMC,QAAS,CADT,eAAgB,CAEhB,gDAAiD,CAJjD,kCAAmC,CADnC,kCAkBD,CApBA,0OAcE,aAMF,CAGC,yMACC,kDACD,CDpEF",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button::after {\n\tcontent: "";\n\twidth: 0;\n\tposition: absolute;\n\tright: -1px;\n\ttop: var(--ck-spacing-small);\n\tbottom: var(--ck-spacing-small);\n\tz-index: 1;\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button::after {\n\t\t\tcontent: "";\n\t\t\twidth: 0;\n\t\t\tposition: absolute;\n\t\t\tright: -1px;\n\t\t\ttop: var(--ck-spacing-small);\n\t\t\tbottom: var(--ck-spacing-small);\n\t\t\tz-index: 1;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t\tborder-radius: 0;\n\t\t\tborder: 0;\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},6706:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},5571:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border:0;border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eD0FD,CA7FA,qECOE,qCDsFF,CA7FA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAyFD,CAtFC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAgBD,CAbC,0DAWC,QAAS,CAHT,eAAgB,CAHhB,QAAS,CAHT,UAUD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAvFF,qCA2FE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so any border is pointless. */\n\t\t\tborder: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9948:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-tooltip,.ck.ck-tooltip .ck-tooltip__text:after{-webkit-backface-visibility:hidden;pointer-events:none;position:absolute}.ck.ck-tooltip{display:none;opacity:0;visibility:hidden;z-index:var(--ck-z-modal)}.ck.ck-tooltip .ck-tooltip__text{display:inline-block}.ck.ck-tooltip .ck-tooltip__text:after{content:"";height:0;width:0}:root{--ck-tooltip-arrow-size:5px}.ck.ck-tooltip{left:50%;top:0;transition:opacity .2s ease-in-out .2s}.ck.ck-tooltip .ck-tooltip__text{border-radius:0}.ck-rounded-corners .ck.ck-tooltip .ck-tooltip__text,.ck.ck-tooltip .ck-tooltip__text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-tooltip .ck-tooltip__text{background:var(--ck-color-tooltip-background);color:var(--ck-color-tooltip-text);font-size:.9em;left:-50%;line-height:1.5;padding:var(--ck-spacing-small) var(--ck-spacing-medium);position:relative}.ck.ck-tooltip .ck-tooltip__text:after{border-style:solid;left:50%;transition:opacity .2s ease-in-out .2s}.ck.ck-tooltip.ck-tooltip_s,.ck.ck-tooltip.ck-tooltip_se,.ck.ck-tooltip.ck-tooltip_sw{bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(100%)}.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{border-color:transparent transparent var(--ck-color-tooltip-background) transparent;border-width:0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);top:calc(var(--ck-tooltip-arrow-size)*-1 + 1px);transform:translateX(-50%)}.ck.ck-tooltip.ck-tooltip_sw{left:auto;right:50%}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text{left:auto;right:calc(var(--ck-tooltip-arrow-size)*-2)}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{left:auto;right:0}.ck.ck-tooltip.ck-tooltip_se{left:50%;right:auto}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text{left:calc(var(--ck-tooltip-arrow-size)*-2);right:auto}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after{left:0;right:auto;transform:translateX(50%)}.ck.ck-tooltip.ck-tooltip_n{top:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(-100%)}.ck.ck-tooltip.ck-tooltip_n .ck-tooltip__text:after{border-color:var(--ck-color-tooltip-background) transparent transparent transparent;border-width:var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateX(-50%)}.ck.ck-tooltip.ck-tooltip_e{left:calc(100% + var(--ck-tooltip-arrow-size));top:50%}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text:after{border-color:transparent var(--ck-color-tooltip-background) transparent transparent;border-width:var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0;left:calc(var(--ck-tooltip-arrow-size)*-1);top:calc(50% - var(--ck-tooltip-arrow-size)*1)}.ck.ck-tooltip.ck-tooltip_w{left:auto;right:calc(100% + var(--ck-tooltip-arrow-size));top:50%}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text:after{border-color:transparent transparent transparent var(--ck-color-tooltip-background);border-width:var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);left:100%;top:calc(50% - var(--ck-tooltip-arrow-size)*1)}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,sDASC,kCAAmC,CAJnC,mBAAoB,CAHpB,iBAQD,CAEA,eAIC,YAAa,CADb,SAAU,CADV,iBAAkB,CAGlB,yBAWD,CATC,iCACC,oBAOD,CALC,uCACC,UAAW,CAEX,QAAS,CADT,OAED,CCxBF,MACC,2BACD,CAEA,eACC,QAAS,CAMT,KAAM,CAON,sCAwKD,CAtKC,iCChBA,eDqCA,CArBA,yGCZC,qCDiCD,CArBA,iCAOC,6CAA8C,CAF9C,kCAAmC,CAFnC,cAAe,CAMf,SAAU,CALV,eAAgB,CAEhB,wDAAyD,CAEzD,iBAaD,CAVC,uCAOC,kBAAmB,CACnB,QAAS,CAFT,sCAGD,CAYD,sFAGC,4CAA+C,CAC/C,0BASD,CAPC,8JAIC,mFAAoF,CACpF,qGAAsG,CAHtG,+CAAkD,CAClD,0BAGD,CAaD,6BAEC,SAAU,CADV,SAYD,CATC,+CACC,SAAU,CACV,2CACD,CAEA,qDACC,SAAU,CACV,OACD,CAYD,6BACC,QAAS,CACT,UAYD,CAVC,+CAEC,0CAA8C,CAD9C,UAED,CAEA,qDAEC,MAAO,CADP,UAAW,CAEX,yBACD,CAYD,4BACC,yCAA4C,CAC5C,2BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,4CAA+C,CAC/C,0BAGD,CAUD,4BACC,8CAA+C,CAC/C,OAaD,CAXC,8CACC,MAAO,CACP,0BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,0CAA6C,CAC7C,8CAGD,CAWF,4BAEC,SAAU,CADV,+CAAgD,CAEhD,OAaD,CAXC,8CACC,MAAO,CACP,0BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,SAAU,CACV,8CAGD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-tooltip,\n.ck.ck-tooltip .ck-tooltip__text::after {\n\tposition: absolute;\n\n\t/* Without this, hovering the tooltip could keep it visible. */\n\tpointer-events: none;\n\n\t/* This is to get rid of flickering when transitioning opacity in Chrome.\n\tIt\'s weird but it works. */\n\t-webkit-backface-visibility: hidden;\n}\n\n.ck.ck-tooltip {\n\t/* Tooltip is hidden by default. */\n\tvisibility: hidden;\n\topacity: 0;\n\tdisplay: none;\n\tz-index: var(--ck-z-modal);\n\n\t& .ck-tooltip__text {\n\t\tdisplay: inline-block;\n\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-tooltip-arrow-size: 5px;\n}\n\n.ck.ck-tooltip {\n\tleft: 50%;\n\n\t/*\n\t * Prevent blurry tooltips in LoDPI environments.\n\t * See https://github.com/ckeditor/ckeditor5/issues/1802.\n\t */\n\ttop: 0;\n\n\t/*\n\t * For the transition to work, the tooltip must be controlled\n\t * using visibility+opacity. A delay prevents a "tooltip avalanche"\n\t * i.e. when scanning the toolbar with mouse cursor.\n\t */\n\ttransition: opacity .2s ease-in-out .2s;\n\n\t& .ck-tooltip__text {\n\t\t@mixin ck-rounded-corners;\n\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\tbackground: var(--ck-color-tooltip-background);\n\t\tposition: relative;\n\t\tleft: -50%;\n\n\t\t&::after {\n\t\t\t/*\n\t\t\t * For the transition to work, the tooltip must be controlled\n\t\t\t * using visibility+opacity. A delay prevents a "tooltip avalanche"\n\t\t\t * i.e. when scanning the toolbar with mouse cursor.\n\t\t\t */\n\t\t\ttransition: opacity .2s ease-in-out .2s;\n\t\t\tborder-style: solid;\n\t\t\tleft: 50%;\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\t&.ck-tooltip_s,\n\t&.ck-tooltip_sw,\n\t&.ck-tooltip_se {\n\t\tbottom: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\ttransform: translateY( 100% );\n\n\t\t& .ck-tooltip__text::after {\n\t\t\t/* 1px addresses gliches in rendering causing gap between the triangle and the text */\n\t\t\ttop: calc(-1 * var(--ck-tooltip-arrow-size) + 1px);\n\t\t\ttransform: translateX( -50% );\n\t\t\tborder-color: transparent transparent var(--ck-color-tooltip-background) transparent;\n\t\t\tborder-width: 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south-west of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\n\t&.ck-tooltip_sw {\n\t\tright: 50%;\n\t\tleft: auto;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: auto;\n\t\t\tright: calc( -2 * var(--ck-tooltip-arrow-size));\n\t\t}\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south-east of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\t&.ck-tooltip_se {\n\t\tleft: 50%;\n\t\tright: auto;\n\n\t\t& .ck-tooltip__text {\n\t\t\tright: auto;\n\t\t\tleft: calc( -2 * var(--ck-tooltip-arrow-size));\n\t\t}\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tright: auto;\n\t\t\tleft: 0;\n\t\t\ttransform: translateX( 50% );\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip north of the element.\n\t *\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t * V\n\t * [element]\n\t */\n\t&.ck-tooltip_n {\n\t\ttop: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\ttransform: translateY( -100% );\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tbottom: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\t\ttransform: translateX( -50% );\n\t\t\tborder-color: var(--ck-color-tooltip-background) transparent transparent transparent;\n\t\t\tborder-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip east of the element.\n\t *\n\t * +----------+\n\t * [element] < | east |\n\t * +----------+\n\t */\n\t&.ck-tooltip_e {\n\t\tleft: calc(100% + var(--ck-tooltip-arrow-size));\n\t\ttop: 50%;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: 0;\n\t\t\ttransform: translateY( -50% );\n\n\t\t\t&::after {\n\t\t\t\tleft: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\t\t\ttop: calc(50% - 1 * var(--ck-tooltip-arrow-size));\n\t\t\t\tborder-color: transparent var(--ck-color-tooltip-background) transparent transparent;\n\t\t\t\tborder-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip west of the element.\n\t *\n\t * +----------+\n\t * | west | > [element]\n\t * +----------+\n\t */\n\t&.ck-tooltip_w {\n\t\tright: calc(100% + var(--ck-tooltip-arrow-size));\n\t\tleft: auto;\n\t\ttop: 50%;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: 0;\n\t\t\ttransform: translateY( -50% );\n\n\t\t\t&::after {\n\t\t\t\tleft: 100%;\n\t\t\t\ttop: calc(50% - 1 * var(--ck-tooltip-arrow-size));\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-color-tooltip-background);\n\t\t\t\tborder-width: var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6150:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-hidden{display:none!important}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{box-sizing:border-box;height:auto;position:static;width:auto}:root{--ck-z-default:1;--ck-z-modal:calc(var(--ck-z-default) + 999)}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#c4c4c4;--ck-color-base-action:#61b045;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#198cf0;--ck-color-base-active-focus:#0e7fe1;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:208,79%,51%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#bcdefb;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#e6e6e6;--ck-color-button-default-active-background:#d9d9d9;--ck-color-button-default-active-shadow:#bfbfbf;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#dedede;--ck-color-button-on-hover-background:#c4c4c4;--ck-color-button-on-active-background:#bababa;--ck-color-button-on-active-shadow:#a1a1a1;--ck-color-button-on-disabled-background:#dedede;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#579e3d;--ck-color-button-action-active-background:#53973b;--ck-color-button-action-active-shadow:#498433;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#b0b0b0;--ck-color-switch-button-off-hover-background:#a3a3a3;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#579e3d;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:#c7c7c7;--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:#c7c7c7;--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-base-active);--ck-color-list-button-on-background-focus:var(--ck-color-base-active-focus);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-foreground);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{word-wrap:break-word;background:transparent;border:0;margin:0;padding:0;text-decoration:none;transition:none;vertical-align:middle}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_hidden.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_reset.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_zindex.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_transition.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"AAQA,WAGC,sBACD,CCPA,2EAGC,qBAAsB,CAEtB,WAAY,CACZ,eAAgB,CAFhB,UAGD,CCPA,MACC,gBAAiB,CACjB,4CACD,CCAA,oDAEC,yBACD,CCNA,MACC,kCAAmD,CACnD,+BAAoD,CACpD,8BAAgD,CAChD,8BAAmD,CACnD,6BAAmD,CACnD,yBAA+C,CAC/C,8BAAmD,CACnD,oCAAuD,CACvD,6BAAkD,CAIlD,+CAAwD,CACxD,qEAA+E,CAC/E,qCAAwD,CACxD,qDAA8D,CAC9D,gDAAyD,CACzD,yCAAqD,CACrD,sCAAsD,CACtD,4CAA0D,CAC1D,sCAAsD,CAItD,gDAAuD,CACvD,kDAA+D,CAC/D,mDAAgE,CAChE,+CAA6D,CAC7D,yDAA8D,CAE9D,uCAAuD,CACvD,6CAA4D,CAC5D,8CAA4D,CAC5D,0CAAyD,CACzD,gDAA8D,CAE9D,+DAAsE,CACtE,iDAAkE,CAClE,kDAAkE,CAClE,8CAA+D,CAC/D,oDAAoE,CACpE,6DAAsE,CAEtE,8BAAoD,CACpD,gCAAqD,CAErD,+CAA4D,CAC5D,qDAAiE,CACjE,+EAAqF,CACrF,oDAAmE,CACnE,yEAA8E,CAC9E,oDAAgE,CAIhE,oEAA2E,CAC3E,4DAAoE,CAIpE,2DAAoE,CACpE,+BAAiD,CACjD,wDAAgE,CAChE,+CAA0D,CAC1D,4CAA2D,CAC3D,wCAAwD,CACxD,sCAAsD,CAItD,0DAAmE,CACnE,uFAA6F,CAC7F,gEAAuE,CACvE,4EAAiF,CACjF,8DAAsE,CAItE,2DAAoE,CACpE,mDAA6D,CAI7D,6DAAsE,CACtE,qDAA+D,CAI/D,uDAAgE,CAChE,uDAAiE,CAIjE,0CAAyD,CAIzD,wCAA2D,CAI3D,+BAAoD,CACpD,uDAAmE,CACnE,kDAAgE,CCpGhE,wBAAyB,CCAzB,0CAA2C,CAK3C,gGAAiG,CAKjG,4GAA6G,CAK7G,sGAAuG,CAKvG,sDAAuD,CCvBvD,wBAAyB,CACzB,6BAA8B,CAC9B,wDAA6D,CAE7D,yBAA0B,CAC1B,2BAA4B,CAC5B,yBAA0B,CAC1B,wBAAyB,CACzB,0BAA2B,CCJ3B,kCJoGD,CI9FA,2EAaC,oBAAqB,CANrB,sBAAuB,CADvB,QAAS,CAFT,QAAS,CACT,SAAU,CAGV,oBAAqB,CAErB,eAAgB,CADhB,qBAKD,CAKA,8DAGC,wBAAyB,CAEzB,0BAA2B,CAG3B,WAAY,CACZ,UAAW,CALX,iGAAkG,CAElG,eAAgB,CAChB,kBAGD,CAGC,qDACC,gBACD,CAEA,mDAEC,sBACD,CAEA,qDACC,oBACD,CAEA,mLAGC,WACD,CAEA,iNAGC,cACD,CAEA,qDAEC,yBAAoC,CADpC,YAED,CAEA,qEAGC,QAAQ,CADR,SAED,CAMD,8BAEC,gBACD,CCnFA,MACC,sBAAuB,CCAvB,gEAAiE,CAKjE,0DAA2D,CAK3D,wEAAyE,CCbzE,uBAA8B,CAC9B,mDAA2D,CAC3D,4CAAkD,CAClD,oDAA4D,CAC5D,mDAA2D,CAC3D,kDAA2D,CAC3D,yDFFD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-modal: calc( var(--ck-z-default) + 999 );\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(0, 0%, 77%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 44%, 48%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(208, 88%, 52%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(208, 88%, 47%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t208, 79%, 51%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(207, 89%, 86%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 90%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 85%);\n\t--ck-color-button-default-active-shadow: \t\t\t\t\thsl(0, 0%, 75%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(0, 0%, 87%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(0, 0%, 77%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(0, 0%, 73%);\n\t--ck-color-button-on-active-shadow: \t\t\t\t\t\thsl(0, 0%, 63%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(0, 0%, 87%);\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 44%, 43%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 44%, 41%);\n\t--ck-color-button-action-active-shadow: \t\t\t\t\thsl(104, 44%, 36%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 69%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 64%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 44%, 43%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\thsl(0, 0%, 78%);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\thsl(0, 0%, 78%);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-base-active);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-base-active-focus);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-foreground);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},6507:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background);border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CCjFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAUD,CARC,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAWD,CAPC,yGAKC,iEAAkE,CCnCnE,2BAA2B,CCF3B,qCAA8B,CDC9B,YDqCA,CAIA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAgCD,CAnBC,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAWD,CANC,kHACC,SAAU,CAGV,+DACD,CAID,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\n\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2263:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},5137:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAkDD,CA1CC,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAoBD,CAdC,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DAcD,CARE,kEACC,oDACD,CAEA,8DACC,wDACD,CAUF,uKAvED,SAAU,CACV,mBAwEC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAlJD,SAAU,CACV,mBAmJC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAlMF,SAAU,CACV,mBAmME,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3645:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",o=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),o&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),o&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,o,i,r){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(o)for(var a=0;a0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),e.push(d))}},e}},1667:t=>{t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]|(%20)/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t):t}},7537:t=>{t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),r="/*# ".concat(i," */"),s=n.sources.map((function(t){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(t," */")}));return[e].concat(s).concat([r]).join("\n")}return[e].join("\n")}},3379:t=>{var e=[];function n(t){for(var n=-1,o=0;o{var e={};t.exports=function(t,n){var o=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},9216:t=>{t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},8575:t=>{t.exports=function(t,e){Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])}))}},9037:t=>{var e,n=(e=[],function(t,n){return e[t]=n,e.filter(Boolean).join("\n")});function o(t,e,o,i){var r;if(o)r="";else{r="",i.supports&&(r+="@supports (".concat(i.supports,") {")),i.media&&(r+="@media ".concat(i.media," {"));var s=void 0!==i.layer;s&&(r+="@layer".concat(i.layer.length>0?" ".concat(i.layer):""," {")),r+=i.css,s&&(r+="}"),i.media&&(r+="}"),i.supports&&(r+="}")}if(t.styleSheet)t.styleSheet.cssText=n(e,r);else{var a=document.createTextNode(r),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(a,l[e]):t.appendChild(a)}}var i={singleton:null,singletonCounter:0};t.exports=function(t){var e=i.singletonCounter++,n=i.singleton||(i.singleton=t.insertStyleElement(t));return{update:function(t){o(n,e,!1,t)},remove:function(t){o(n,e,!0,t)}}}},8491:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+"},2739:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4="},6631:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OVptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OVoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzNabTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1Wk00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg=="},7511:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},4493:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Im0yMDYuNDc3IDI2MC45LTI4Ljk4NyAyOC45ODdhNS4yMTggNS4yMTggMCAwIDAgMy43OCAxLjYxaDQ5LjYyMWMxLjY5NCAwIDMuMTktLjc5OCA0LjE0Ni0yLjAzN3oiIGZpbGw9IiM1Yzg4YzUiLz48cGF0aCBkPSJNMjI2Ljc0MiAyMjIuOTg4Yy05LjI2NiAwLTE2Ljc3NyA3LjE3LTE2Ljc3NyAxNi4wMTQuMDA3IDIuNzYyLjY2MyA1LjQ3NCAyLjA5MyA3Ljg3NS40My43MDMuODMgMS40MDggMS4xOSAyLjEwNy4zMzMuNTAyLjY1IDEuMDA1Ljk1IDEuNTA4LjM0My40NzcuNjczLjk1Ny45ODggMS40NCAxLjMxIDEuNzY5IDIuNSAzLjUwMiAzLjYzNyA1LjE2OC43OTMgMS4yNzUgMS42ODMgMi42NCAyLjQ2NiAzLjk5IDIuMzYzIDQuMDk0IDQuMDA3IDguMDkyIDQuNiAxMy45MTR2LjAxMmMuMTgyLjQxMi41MTYuNjY2Ljg3OS42NjcuNDAzLS4wMDEuNzY4LS4zMTQuOTMtLjc5OS42MDMtNS43NTYgMi4yMzgtOS43MjkgNC41ODUtMTMuNzk0Ljc4Mi0xLjM1IDEuNjczLTIuNzE1IDIuNDY1LTMuOTkgMS4xMzctMS42NjYgMi4zMjgtMy40IDMuNjM4LTUuMTY5LjMxNS0uNDgyLjY0NS0uOTYyLjk4OC0xLjQzOS4zLS41MDMuNjE3LTEuMDA2Ljk1LTEuNTA4LjM1OS0uNy43Ni0xLjQwNCAxLjE5LTIuMTA3IDEuNDI2LTIuNDAyIDItNS4xMTQgMi4wMDQtNy44NzUgMC04Ljg0NC03LjUxMS0xNi4wMTQtMTYuNzc2LTE2LjAxNHoiIGZpbGw9IiNkZDRiM2UiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PGVsbGlwc2Ugcnk9IjUuNTY0IiByeD0iNS44MjgiIGN5PSIyMzkuMDAyIiBjeD0iMjI2Ljc0MiIgZmlsbD0iIzgwMmQyNyIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMTkwLjMwMSAyMzcuMjgzYy00LjY3IDAtOC40NTcgMy44NTMtOC40NTcgOC42MDZzMy43ODYgOC42MDcgOC40NTcgOC42MDdjMy4wNDMgMCA0LjgwNi0uOTU4IDYuMzM3LTIuNTE2IDEuNTMtMS41NTcgMi4wODctMy45MTMgMi4wODctNi4yOSAwLS4zNjItLjAyMy0uNzIyLS4wNjQtMS4wNzloLTguMjU3djMuMDQzaDQuODVjLS4xOTcuNzU5LS41MzEgMS40NS0xLjA1OCAxLjk4Ni0uOTQyLjk1OC0yLjAyOCAxLjU0OC0zLjkwMSAxLjU0OC0yLjg3NiAwLTUuMjA4LTIuMzcyLTUuMjA4LTUuMjk5IDAtMi45MjYgMi4zMzItNS4yOTkgNS4yMDgtNS4yOTkgMS4zOTkgMCAyLjYxOC40MDcgMy41ODQgMS4yOTNsMi4zODEtMi4zOGMwLS4wMDItLjAwMy0uMDA0LS4wMDQtLjAwNS0xLjU4OC0xLjUyNC0zLjYyLTIuMjE1LTUuOTU1LTIuMjE1em00LjQzIDUuNjYuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0ibTIxNS4xODQgMjUxLjkyOS03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVhNS4yMzMgNS4yMzMgMCAwIDAgLjQ0OS0yLjEyM3YtMzEuMTY1Yy0uNDY5LjY3NS0uOTM0IDEuMzQ5LTEuMzgyIDIuMDA1LS43OTIgMS4yNzUtMS42ODIgMi42NC0yLjQ2NSAzLjk5LTIuMzQ3IDQuMDY1LTMuOTgyIDguMDM4LTQuNTg1IDEzLjc5NC0uMTYyLjQ4NS0uNTI3Ljc5OC0uOTMuNzk5LS4zNjMtLjAwMS0uNjk3LS4yNTUtLjg3OS0uNjY3di0uMDEyYy0uNTkzLTUuODIyLTIuMjM3LTkuODItNC42LTEzLjkxNC0uNzgzLTEuMzUtMS42NzMtMi43MTUtMi40NjYtMy45OS0xLjEzNy0xLjY2Ni0yLjMyNy0zLjQtMy42MzctNS4xNjlsLS4wMDItLjAwM3oiIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJtMjEyLjk4MyAyNDguNDk1LTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOCA1LjIzOGgxLjAxNWwzNS42NjYtMzUuNjY2YTEzNi4yNzUgMTM2LjI3NSAwIDAgMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAgMC0uOTg5LTEuNDQgMzUuMTI3IDM1LjEyNyAwIDAgMC0uOTUtMS41MDhjLS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJtMjExLjk5OCAyNjEuMDgzLTYuMTUyIDYuMTUxIDI0LjI2NCAyNC4yNjRoLjc4MWE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4="}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={id:o,exports:{}};return t[o](r,r.exports,n),r.exports}n.m=t,n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.b=document.baseURI||self.location.href;var o={};return(()=>{n.d(o,{default:()=>Rx});const t=function(){return function t(){t.called=!0}};class e{constructor(e,n){this.source=e,this.name=n,this.path=[],this.stop=t(),this.off=t()}}const i=new Array(256).fill().map(((t,e)=>("0"+e.toString(16)).slice(-2)));function r(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0;return"e"+i[t>>0&255]+i[t>>8&255]+i[t>>16&255]+i[t>>24&255]+i[e>>0&255]+i[e>>8&255]+i[e>>16&255]+i[e>>24&255]+i[n>>0&255]+i[n>>8&255]+i[n>>16&255]+i[n>>24&255]+i[o>>0&255]+i[o>>8&255]+i[o>>16&255]+i[o>>24&255]}const s={get(t){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function a(t,e){const n=s.get(e.priority);for(let o=0;o{if("object"==typeof e&&null!==e){if(n.has(e))return`[object ${e.constructor.name}]`;n.add(e)}return e},i=e?` ${JSON.stringify(e,o)}`:"",r=d(t);return t+i+r}(t,n)),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new l(t.message,e);throw n.stack=t.stack,n}}function c(t,e){console.warn(...u(t,e))}function d(t){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${t}`}function u(t,e){const n=d(t);return e?[t,e,n]:[t,n]}const h="34.1.0",m="object"==typeof window?window:n.g;if(m.CKEDITOR_VERSION)throw new l("ckeditor-duplicated-modules",null);m.CKEDITOR_VERSION=h;const g=Symbol("listeningTo"),p=Symbol("emitterId"),f={on(t,e,n={}){this.listenTo(this,t,e,n)},once(t,e,n){let o=!1;this.listenTo(this,t,(function(t,...n){o||(o=!0,t.off(),e.call(this,t,...n))}),n)},off(t,e){this.stopListening(this,t,e)},listenTo(t,e,n,o={}){let i,r;this[g]||(this[g]={});const s=this[g];w(t)||b(t);const a=w(t);(i=s[a])||(i=s[a]={emitter:t,callbacks:{}}),(r=i.callbacks[e])||(r=i.callbacks[e]=[]),r.push(n),function(t,e,n,o,i){e._addEventListener?e._addEventListener(n,o,i):t._addEventListener.call(e,n,o,i)}(this,t,e,n,o)},stopListening(t,e,n){const o=this[g];let i=t&&w(t);const r=o&&i&&o[i],s=r&&e&&r.callbacks[e];if(!(!o||t&&!r||e&&!s))if(n){y(this,t,e,n);-1!==s.indexOf(n)&&(1===s.length?delete r.callbacks[e]:y(this,t,e,n))}else if(s){for(;n=s.pop();)y(this,t,e,n);delete r.callbacks[e]}else if(r){for(e in r.callbacks)this.stopListening(t,e);delete o[i]}else{for(i in o)this.stopListening(o[i].emitter);delete this[g]}},fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=o.name;let r=C(this,i);if(o.path.push(this),r){const t=[o,...n];r=Array.from(r);for(let e=0;e{this._delegations||(this._delegations=new Map),t.forEach((t=>{const o=this._delegations.get(t);o?o.set(e,n):this._delegations.set(t,new Map([[e,n]]))}))}}},stopDelegating(t,e){if(this._delegations)if(t)if(e){const n=this._delegations.get(t);n&&n.delete(e)}else this._delegations.delete(t);else this._delegations.clear()},_addEventListener(t,e,n){!function(t,e){const n=A(t);if(n[e])return;let o=e,i=null;const r=[];for(;""!==o&&!n[o];)n[o]={callbacks:[],childEvents:[]},r.push(n[o]),i&&n[o].childEvents.push(i),i=o,o=o.substr(0,o.lastIndexOf(":"));if(""!==o){for(const t of r)t.callbacks=n[o].callbacks.slice();n[o].childEvents.push(i)}}(this,t);const o=_(this,t),i={callback:e,priority:s.get(n.priority)};for(const t of o)a(t,i)},_removeEventListener(t,e){const n=_(this,t);for(const t of n)for(let n=0;n-1?C(t,e.substr(0,e.lastIndexOf(":"))):null}function v(t,n,o){for(let[i,r]of t){r?"function"==typeof r&&(r=r(n.name)):r=n.name;const t=new e(n.source,r);t.path=[...n.path],i.fire(t,...o)}}function y(t,e,n,o){e._removeEventListener?e._removeEventListener(n,o):t._removeEventListener.call(e,n,o)}const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const E="object"==typeof global&&global&&global.Object===Object&&global;var D="object"==typeof self&&self&&self.Object===Object&&self;const S=E||D||Function("return this")();const I=S.Symbol;var M=Object.prototype,T=M.hasOwnProperty,B=M.toString,N=I?I.toStringTag:void 0;const z=function(t){var e=T.call(t,N),n=t[N];try{t[N]=void 0;var o=!0}catch(t){}var i=B.call(t);return o&&(e?t[N]=n:delete t[N]),i};var P=Object.prototype.toString;const L=function(t){return P.call(t)};var O=I?I.toStringTag:void 0;const R=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":O&&O in Object(t)?z(t):L(t)};const j=function(t){if(!x(t))return!1;var e=R(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e};const V=S["__core-js_shared__"];var F=function(){var t=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();const H=function(t){return!!F&&F in t};var U=Function.prototype.toString;const W=function(t){if(null!=t){try{return U.call(t)}catch(t){}try{return t+""}catch(t){}}return""};var G=/^\[object .+?Constructor\]$/,q=Function.prototype,Z=Object.prototype,Y=q.toString,K=Z.hasOwnProperty,$=RegExp("^"+Y.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const Q=function(t){return!(!x(t)||H(t))&&(j(t)?$:G).test(W(t))};const J=function(t,e){return null==t?void 0:t[e]};const X=function(t,e){var n=J(t,e);return Q(n)?n:void 0};const tt=function(){try{var t=X(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();const et=function(t,e,n){"__proto__"==e&&tt?tt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n};const nt=function(t,e){return t===e||t!=t&&e!=e};var ot=Object.prototype.hasOwnProperty;const it=function(t,e,n){var o=t[e];ot.call(t,e)&&nt(o,n)&&(void 0!==n||e in t)||et(t,e,n)};const rt=function(t,e,n,o){var i=!n;n||(n={});for(var r=-1,s=e.length;++r0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const gt=mt(ut);const pt=function(t,e){return gt(ct(t,e,st),t+"")};const ft=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991};const kt=function(t){return null!=t&&ft(t.length)&&!j(t)};var bt=/^(?:0|[1-9]\d*)$/;const wt=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&bt.test(t))&&t>-1&&t%1==0&&t1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(i--,r):void 0,s&&At(n[0],n[1],s)&&(r=i<3?void 0:r,i=1),e=Object(e);++o{this.set(e,t[e])}),this);se(this);const n=this[Xt];if(t in this&&!n.has(t))throw new l("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const o=n.get(t);let i=this.fire("set:"+t,t,e,o);void 0===i&&(i=e),o===i&&n.has(t)||(n.set(t,i),this.fire("change:"+t,t,i,o))}}),this[t]=e},bind(...t){if(!t.length||!ce(t))throw new l("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new l("observable-bind-duplicate-properties",this);se(this);const e=this[ee];t.forEach((t=>{if(e.has(t))throw new l("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const o={property:t,to:[]};e.set(t,o),n.set(t,o)})),{to:ae,toMany:le,_observable:this,_bindProperties:t,_to:[],_bindings:n}},unbind(...t){if(!this[Xt])return;const e=this[ee],n=this[te];if(t.length){if(!ce(t))throw new l("observable-unbind-wrong-properties",this);t.forEach((t=>{const o=e.get(t);if(!o)return;let i,r,s,a;o.to.forEach((t=>{i=t[0],r=t[1],s=n.get(i),a=s[r],a.delete(o),a.size||delete s[r],Object.keys(s).length||(n.delete(i),this.stopListening(i,"change"))})),e.delete(t)}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()},decorate(t){const e=this[t];if(!e)throw new l("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][oe]=e,this[ne]||(this[ne]=[]),this[ne].push(t)}};Jt(ie,k),ie.stopListening=function(t,e,n){if(!t&&this[ne]){for(const t of this[ne])this[t]=this[t][oe];delete this[ne]}k.stopListening.call(this,t,e,n)};const re=ie;function se(t){t[Xt]||(Object.defineProperty(t,Xt,{value:new Map}),Object.defineProperty(t,te,{value:new Map}),Object.defineProperty(t,ee,{value:new Map}))}function ae(...t){const e=function(...t){if(!t.length)throw new l("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new l("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),o=n.length;if(!e.callback&&e.to.length>1)throw new l("observable-bind-to-no-callback",this);if(o>1&&e.callback)throw new l("observable-bind-to-extra-callback",this);var i;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==o)throw new l("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),i=this._observable,this._to.forEach((t=>{const e=i[te];let n;e.get(t.observable)||i.listenTo(t.observable,"change",((o,r)=>{n=e.get(t.observable)[r],n&&n.forEach((t=>{de(i,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,o)=>{t._to.forEach((i=>{e=i.properties[n.callback?0:t._bindProperties.indexOf(o)],n.to.push([i.observable,e]),function(t,e,n,o){const i=t[te],r=i.get(n),s=r||{};s[o]||(s[o]=new Set);s[o].add(e),r||i.set(n,s)}(t._observable,n,i.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{de(this._observable,t)}))}function le(t,e,n){if(this._bindings.size>1)throw new l("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function ce(t){return t.every((t=>"string"==typeof t))}function de(t,e){const n=t[ee].get(e);let o;n.callback?o=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(o=n.to[0],o=o[0][o[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=o:t.set(e,o)}function ue(t,...e){e.forEach((e=>{Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)).forEach((n=>{if(n in t.prototype)return;const o=Object.getOwnPropertyDescriptor(e,n);o.enumerable=!1,Object.defineProperty(t.prototype,n,o)}))}))}class he{constructor(t){this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",me,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",me),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function me(t){t.return=!1,t.stop()}ue(he,re);class ge{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this.affectsData=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"}),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n&&this.affectsData?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}))}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",pe,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",pe),this.refresh())}execute(){}destroy(){this.stopListening()}}function pe(t){t.return=!1,t.stop()}ue(ge,re);class fe extends ge{constructor(t){super(t),this._childCommandsDefinitions=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return!!e&&e.execute(t)}registerChildCommand(t,e={priority:"normal"}){a(this._childCommandsDefinitions,{command:t,priority:e.priority}),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){const t=this._childCommandsDefinitions.find((({command:t})=>t.isEnabled));return t&&t.command}}const ke=function(t,e){return function(n){return t(e(n))}};const be=ke(Object.getPrototypeOf,Object);var we=Function.prototype,Ae=Object.prototype,_e=we.toString,Ce=Ae.hasOwnProperty,ve=_e.call(Object);const ye=function(t){if(!vt(t)||"[object Object]"!=R(t))return!1;var e=be(t);if(null===e)return!0;var n=Ce.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&_e.call(n)==ve};const xe=function(){this.__data__=[],this.size=0};const Ee=function(t,e){for(var n=t.length;n--;)if(nt(t[n][0],e))return n;return-1};var De=Array.prototype.splice;const Se=function(t){var e=this.__data__,n=Ee(e,t);return!(n<0)&&(n==e.length-1?e.pop():De.call(e,n,1),--this.size,!0)};const Ie=function(t){var e=this.__data__,n=Ee(e,t);return n<0?void 0:e[n][1]};const Me=function(t){return Ee(this.__data__,t)>-1};const Te=function(t,e){var n=this.__data__,o=Ee(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this};function Be(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e{this._setToTarget(t,o,e[o],n)}))}}function xo(t){return Co(t,Eo)}function Eo(t){return vo(t)?t:void 0}function Do(t){return!(!t||!t[Symbol.iterator])}class So{constructor(t={},e={}){const n=Do(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new l("collection-add-item-invalid-index",this);for(let n=0;n{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding((e=>t(e))):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,o,i)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(o);if(r&&s)this._bindToExternalToInternalMap.set(o,s),this._bindToInternalToExternalMap.set(s,o);else{const n=t(o);if(!n)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const t of this._skippedIndexesFromExternal)i>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(o,n),this._bindToInternalToExternalMap.set(n,o),this.add(n,r);for(let t=0;t{const o=this._bindToExternalToInternalMap.get(e);o&&this.remove(o),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new l("collection-add-invalid-id",this);if(this.get(n))throw new l("collection-add-item-already-exists",this)}else t[e]=n=r();return n}_remove(t){let e,n,o,i=!1;const r=this._idProperty;if("string"==typeof t?(n=t,o=this._itemMap.get(n),i=!o,o&&(e=this._items.indexOf(o))):"number"==typeof t?(e=t,o=this._items[e],i=!o,o&&(n=o[r])):(o=t,n=o[r],e=this._items.indexOf(o),i=-1==e||!this._itemMap.get(n)),i)throw new l("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(o);return this._bindToInternalToExternalMap.delete(o),this._bindToExternalToInternalMap.delete(s),this.fire("remove",o,e),[o,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}ue(So,k);class Io{constructor(t,e=[],n=[]){this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new l("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const o=this,i=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!o._availablePlugins.has(e.pluginName)&&o._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const r=[...function t(e,n=new Set){return e.map((t=>a(t)?t:o._availablePlugins.get(t))).reduce(((e,o)=>n.has(o)?e:(n.add(o),o.requires&&(h(o.requires,o),t(o.requires,n).forEach((t=>e.add(t)))),e.add(o))),new Set)}(t.filter((t=>!d(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new l("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new l("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new l("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const i=o._availablePlugins.get(e);if(!i)throw new l("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const r=t.indexOf(i);if(-1===r){if(o._contextPlugins.has(i))return;throw new l("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(i.requires&&i.requires.length)throw new l("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(r,1,n),o._availablePlugins.set(e,n)}}(r,n);const s=function(t){return t.map((t=>{const e=o._contextPlugins.get(t)||new t(i);return o._add(t,e),e}))}(r);return m(s,"init").then((()=>m(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&t.isContextPlugin}function d(t,e){return e.some((e=>e===t||(u(t)===e||u(e)===t)))}function u(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:o._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(a(t))return;if(e)throw new l("plugincollection-soft-required",i,{missingPlugin:t,requiredBy:u(e)});throw new l("plugincollection-plugin-not-found",i,{plugin:t})}(t,n),function(t,e){if(!c(e))return;if(c(t))return;throw new l("plugincollection-context-required",i,{plugin:u(t),requiredBy:u(e)})}(t,n),function(t,n){if(!n)return;if(!d(t,e))return;throw new l("plugincollection-required",i,{plugin:u(t),requiredBy:u(n)})}(t,n)}))}function m(t,e){return t.reduce(((t,n)=>n[e]?o._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new l("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function Mo(t){return Array.isArray(t)?t:[t]}function To(t,e,n=1){if("number"!=typeof n)throw new l("translation-service-quantity-not-a-number",null,{quantity:n});const o=Object.keys(window.CKEDITOR_TRANSLATIONS).length;1===o&&(t=Object.keys(window.CKEDITOR_TRANSLATIONS)[0]);const i=e.id||e.string;if(0===o||!function(t,e){return!!window.CKEDITOR_TRANSLATIONS[t]&&!!window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,i))return 1!==n?e.plural:e.string;const r=window.CKEDITOR_TRANSLATIONS[t].dictionary,s=window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1);if("string"==typeof r[i])return r[i];const a=Number(s(n));return r[i][a]}ue(Io,k),window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={});const Bo=["ar","ara","fa","per","fas","he","heb","ku","kur","ug","uig"];function No(t){return Bo.includes(t)?"rtl":"ltr"}class zo{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=No(this.uiLanguage),this.contentLanguageDirection=No(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=Mo(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nt.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new l("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class Lo{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}function Oo(t,e){const n=Math.min(t.length,e.length);for(let o=0;ot.data.length)throw new l("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new l("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function Ho(t){return Do(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}class Uo{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=Wo(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const o=Wo(n,t);o&&e.push({element:n,pattern:t,match:o})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function Wo(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return!!e.match(t);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());ye(t)?(void 0!==t.style&&c("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&c("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class"));return Go(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)?null:!(e.classes&&(n.classes=function(t,e){return Go(t,e.getClassNames())}(e.classes,t),!n.classes))&&(!(e.styles&&(n.styles=function(t,e){return Go(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles))&&n)}function Go(t,e,n){const o=function(t){if(Array.isArray(t))return t.map((t=>ye(t)?(void 0!==t.key&&void 0!==t.value||c("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0]));if(ye(t))return Object.entries(t);return[[t,!0]]}(t),i=Array.from(e),r=[];return o.forEach((([t,e])=>{i.forEach((o=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&e.match(t)})(t,o)&&function(t,e,n){if(!0===t)return!0;const o=n(e);return t===o||t instanceof RegExp&&!!String(o).match(t)}(e,o,n)&&r.push(o)}))})),!o.length||r.lengthi?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(i);++oe===t));return Array.isArray(e)}set(t,e){if(x(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Si(t);gi(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!x(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){if(this.isEmpty)return[];if(t)return this._styleProcessor.getStyleNames(this._styles);return this._getStylesEntries().map((([t])=>t))}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),o=pi(this._styles,n);if(!o)return;!Array.from(Object.keys(o)).length&&this.remove(n)}}class Di{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(x(e))Ii(n,Si(t),e);else if(this._normalizers.has(t)){const o=this._normalizers.get(t),{path:i,value:r}=o(e);Ii(n,i,r)}else Ii(n,t,e)}getNormalized(t,e){if(!t)return vi({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return pi(e,n);const o=n(t,e);if(o)return o}return pi(e,Si(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n.values())}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Si(t){return t.replace("-",".")}function Ii(t,e,n){let o=n;x(n)&&(o=vi({},pi(t,e),n)),xi(t,e,o)}class Mi extends jo{constructor(t,e,n,o){if(super(t),this.name=e,this._attrs=function(t){t=Ho(t);for(const[e,n]of t)null===n?t.delete(e):"string"!=typeof n&&t.set(e,String(n));return t}(n),this._children=[],o&&this._insertChild(0,o),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Ti(this._classes,t),this._attrs.delete("class")}this._styles=new Ei(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map,this._unsafeAttributesToRender=[]}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}is(t,e=null){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof Mi))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t=!1){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new Uo(...t);let n=this.parent;for(;n;){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":` ${n}`)}shouldRenderUnsafeAttribute(t){return this._unsafeAttributesToRender.includes(t)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new Vo(t,e)];Do(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Vo(t,e):e instanceof Fo?new Vo(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of Mo(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of Mo(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of Mo(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Ti(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}class Bi extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ni}is(t,e=null){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}}function Ni(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}class zi extends Bi{constructor(t,e,n,o){super(t,e,n,o),this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}is(t,e=null){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}destroy(){this.stopListening()}}ue(zi,re);const Pi=Symbol("rootName");class Li extends zi{constructor(t,e){super(t,e),this.rootName="main"}is(t,e=null){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}get rootName(){return this.getCustomProperty(Pi)}set rootName(t){this._setCustomProperty(Pi,t)}set _name(t){this.name=t}}class Oi{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new l("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=Ri._createAt(t.startPosition):this.position=Ri._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,o;do{o=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0};let o;if(n instanceof Vo){if(t.isAtEnd)return this.position=Ri._createAfter(n),this._next();o=n.data[t.offset]}else o=n.getChild(t.offset);if(o instanceof Mi)return this.shallow?t.offset++:t=new Ri(o,0),this.position=t,this._formatReturnValue("elementStart",o,e,t,1);if(o instanceof Vo){if(this.singleCharacters)return t=new Ri(o,0),this.position=t,this._next();{let n,i=o.data.length;return o==this._boundaryEndParent?(i=this.boundaries.end.offset,n=new Fo(o,0,i),t=Ri._createAfter(n)):(n=new Fo(o,0,o.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{o=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const i=new Fo(n,t.offset,o);return t.offset+=o,this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ri._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0};let o;if(n instanceof Vo){if(t.isAtStart)return this.position=Ri._createBefore(n),this._previous();o=n.data[t.offset-1]}else o=n.getChild(t.offset-1);if(o instanceof Mi)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",o,e,t,1)):(t=new Ri(o,o.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",o,e,t));if(o instanceof Vo){if(this.singleCharacters)return t=new Ri(o,o.data.length),this.position=t,this._previous();{let n,i=o.data.length;if(o==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new Fo(o,e,o.data.length-e),i=n.data.length,t=Ri._createBefore(n)}else n=new Fo(o,0,o.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;o=t.offset-e}t.offset-=o;const i=new Fo(n,t.offset,o);return this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ri._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,o,i){return e instanceof Fo&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Ri._createAfter(e.textNode):(o=Ri._createAfter(e.textNode),this.position=o)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Ri._createBefore(e.textNode):(o=Ri._createBefore(e.textNode),this.position=o))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}}class Ri{constructor(t,e){this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof zi);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Ri._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Oi(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let o=0;for(;e[o]==n[o]&&e[o];)o++;return 0===o?null:e[o-1]}is(t){return"position"===t||"view:position"===t}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const o=Oo(e,n);switch(o){case"prefix":return"before";case"extension":return"after";default:return e[o]0?new this(n,o):new this(o,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Ri._createBefore(t),e)}}function Vi(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function Fi(t){let e=0;for(const n of t)e++;return e}class Hi{constructor(t=null,e,n){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",this.setTo(t,e,n)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=Fi(this.getRanges());if(e!=Fi(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let o of t.getRanges())if(o=o.getTrimmed(),e.start.isEqual(o.start)&&e.end.isEqual(o.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(t,e,n){if(null===t)this._setRanges([]),this._setFakeOptions(e);else if(t instanceof Hi||t instanceof Ui)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof ji)this._setRanges([t],e&&e.backward),this._setFakeOptions(e);else if(t instanceof Ri)this._setRanges([new ji(t)]),this._setFakeOptions(e);else if(t instanceof jo){const o=!!n&&!!n.backward;let i;if(void 0===e)throw new l("view-selection-setto-required-second-parameter",this);i="in"==e?ji._createIn(t):"on"==e?ji._createOn(t):new ji(Ri._createAt(t,e)),this._setRanges([i],o),this._setFakeOptions(n)}else{if(!Do(t))throw new l("view-selection-setto-not-selectable",this);this._setRanges(t,e&&e.backward),this._setFakeOptions(e)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new l("view-selection-setfocus-no-ranges",this);const n=Ri._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.pop(),"before"==n.compareWith(o)?this._addRange(new ji(n,o),!0):this._addRange(new ji(o,n)),this.fire("change")}is(t){return"selection"===t||"view:selection"===t}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof ji))throw new l("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new l("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new ji(t.start,t.end))}}ue(Hi,k);class Ui{constructor(t=null,e,n){this._selection=new Hi,this._selection.delegate("change").to(this),this._selection.setTo(t,e,n)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}is(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setFocus(t,e){this._selection.setFocus(t,e)}}ue(Ui,k);class Wi extends e{constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Gi=Symbol("bubbling contexts"),qi={fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=Qi(this);if(!i.size)return;if(Yi(o,"capturing",this),Ki(i,"$capture",o,...n))return o.return;const r=o.startRange||this.selection.getFirstRange(),s=r?r.getContainedElement():null,a=!!s&&Boolean($i(i,s));let l=s||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,o=e.getPath(),i=n.getPath();return o.length>i.length?e:n}(r);if(Yi(o,"atTarget",l),!a){if(Ki(i,"$text",o,...n))return o.return;Yi(o,"bubbling",l)}for(;l;){if(l.is("rootElement")){if(Ki(i,"$root",o,...n))return o.return}else if(l.is("element")&&Ki(i,l.name,o,...n))return o.return;if(Ki(i,l,o,...n))return o.return;l=l.parent,Yi(o,"bubbling",l)}return Yi(o,"bubbling",this),Ki(i,"$document",o,...n),o.return}catch(t){l.rethrowUnexpectedError(t,this)}},_addEventListener(t,e,n){const o=Mo(n.context||"$document"),i=Qi(this);for(const r of o){let o=i.get(r);o||(o=Object.create(k),i.set(r,o)),this.listenTo(o,t,e,n)}},_removeEventListener(t,e){const n=Qi(this);for(const o of n.values())this.stopListening(o,t,e)}},Zi=qi;function Yi(t,e,n){t instanceof Wi&&(t._eventPhase=e,t._currentTarget=n)}function Ki(t,e,n,...o){const i="string"==typeof e?t.get(e):$i(t,e);return!!i&&(i.fire(n,...o),n.stop.called)}function $i(t,e){for(const[n,o]of t)if("function"==typeof n&&n(e))return o;return null}function Qi(t){return t[Gi]||(t[Gi]=new Map),t[Gi]}class Ji{constructor(t){this.selection=new Ui,this.roots=new So({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}ue(Ji,Zi),ue(Ji,re);class Xi extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=tr,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new l("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}is(t,e=null){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function tr(){if(er(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(er(t)>1)return null;t=t.parent}return!t||er(t)>1?null:this.childCount}function er(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}Xi.DEFAULT_PRIORITY=10;class nr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=or}is(t,e=null){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-emptyelement-cannot-add",[this,e])}}function or(){return null}const ir=navigator.userAgent.toLowerCase(),rr={isMac:ar(ir),isWindows:function(t){return t.indexOf("windows")>-1}(ir),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(ir),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(ir),isiOS:function(t){return!!t.match(/iphone|ipad/i)||ar(t)&&navigator.maxTouchPoints>0}(ir),isAndroid:function(t){return t.indexOf("android")>-1}(ir),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(ir),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}},sr=rr;function ar(t){return t.indexOf("macintosh")>-1}const lr={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},cr={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},dr=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){const n=String.fromCharCode(e);t[n.toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;for(const e of"`-=[];',./\\")t[e]=e.charCodeAt(0);return t}(),ur=Object.fromEntries(Object.entries(dr).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)])));function hr(t){let e;if("string"==typeof t){if(e=dr[t.toLowerCase()],!e)throw new l("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?dr.alt:0)+(t.ctrlKey?dr.ctrl:0)+(t.shiftKey?dr.shift:0)+(t.metaKey?dr.cmd:0);return e}function mr(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return hr(t.slice(0,-1));const e=hr(t);return sr.isMac&&e==dr.ctrl?dr.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function gr(t){let e=mr(t);return Object.entries(sr.isMac?lr:cr).reduce(((t,[n,o])=>(0!=(e&dr[n])&&(e&=~dr[n],t+=o),t)),"")+(e?ur[e]:"")}function pr(t,e){const n="ltr"===e;switch(t){case dr.arrowleft:return n?"left":"right";case dr.arrowright:return n?"right":"left";case dr.arrowup:return"up";case dr.arrowdown:return"down"}}class fr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=br}is(t,e=null){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-uielement-cannot-add",this)}render(t){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function kr(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==dr.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),o=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(o||e.shiftKey){const e=t.focusNode,i=t.focusOffset,r=n.domPositionToView(e,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);o?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function br(){return null}class wr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ar}is(t,e=null){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-rawelement-cannot-add",[this,e])}}function Ar(){return null}class _r{constructor(t,e){this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"view:documentFragment"===t}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new Vo(t,e)];Do(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Vo(t,e):e instanceof Fo?new Vo(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{}),o.renderUnsafeAttributes&&i._unsafeAttributesToRender.push(...o.renderUnsafeAttributes),i}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){ye(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}breakAttributes(t){return t instanceof Ri?this._breakAttributes(t):this._breakAttributesRange(t)}breakContainer(t){const e=t.parent;if(!e.is("containerElement"))throw new l("view-writer-break-non-container-element",this.document);if(!e.parent)throw new l("view-writer-break-root",this.document);if(t.isAtStart)return Ri._createBefore(e);if(!t.isAtEnd){const n=e._clone(!1);this.insert(Ri._createAfter(e),n);const o=new ji(t,Ri._createAt(e,"end")),i=new Ri(n,0);this.move(o,i)}return Ri._createAfter(e)}mergeAttributes(t){const e=t.offset,n=t.parent;if(n.is("$text"))return t;if(n.is("attributeElement")&&0===n.childCount){const t=n.parent,e=n.index;return n._remove(),this._removeFromClonedElementsGroup(n),this.mergeAttributes(new Ri(t,e))}const o=n.getChild(e-1),i=n.getChild(e);if(!o||!i)return t;if(o.is("$text")&&i.is("$text"))return Dr(o,i);if(o.is("attributeElement")&&i.is("attributeElement")&&o.isSimilar(i)){const t=o.childCount;return o._appendChild(i.getChildren()),i._remove(),this._removeFromClonedElementsGroup(i),this.mergeAttributes(new Ri(o,t))}return t}mergeContainers(t){const e=t.nodeBefore,n=t.nodeAfter;if(!(e&&n&&e.is("containerElement")&&n.is("containerElement")))throw new l("view-writer-merge-containers-invalid-position",this.document);const o=e.getChild(e.childCount-1),i=o instanceof Vo?Ri._createAt(o,"end"):Ri._createAt(e,"end");return this.move(ji._createIn(n),Ri._createAt(e,"end")),this.remove(ji._createOn(n)),i}insert(t,e){Sr(e=Do(e)?[...e]:[e],this.document);const n=e.reduce(((t,e)=>{const n=t[t.length-1],o=!e.is("uiElement");return n&&n.breakAttributes==o?n.nodes.push(e):t.push({breakAttributes:o,nodes:[e]}),t}),[]);let o=null,i=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(i,t,e);o||(o=n.start),i=n.end}return o?new ji(o,i):new ji(t)}remove(t){const e=t instanceof ji?t:ji._createOn(t);if(Tr(e,this.document),e.isCollapsed)return new _r(this.document);const{start:n,end:o}=this._breakAttributesRange(e,!0),i=n.parent,r=o.offset-n.offset,s=i._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new _r(this.document,s)}clear(t,e){Tr(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const o of n){const n=o.item;let i;if(n.is("element")&&e.isSimilar(n))i=ji._createOn(n);else if(!o.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(i=ji._createIn(t))}i&&(i.end.isAfter(t.end)&&(i.end=t.end),i.start.isBefore(t.start)&&(i.start=t.start),this.remove(i))}}move(t,e){let n;if(e.isAfter(t.end)){const o=(e=this._breakAttributes(e,!0)).parent,i=o.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=o.childCount-i}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof Xi))throw new l("view-writer-wrap-invalid-attribute",this.document);if(Tr(t,this.document),t.isCollapsed){let o=t.start;o.parent.is("element")&&(n=o.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(o=o.getLastMatchingPosition((t=>t.item.is("uiElement")))),o=this._wrapPosition(o,e);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(t.start)&&this.setSelection(o),new ji(o)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof Xi))throw new l("view-writer-unwrap-invalid-attribute",this.document);if(Tr(t,this.document),t.isCollapsed)return t;const{start:n,end:o}=this._breakAttributesRange(t,!0),i=n.parent,r=this._unwrapChildren(i,n.offset,o.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new ji(s,a)}rename(t,e){const n=new Bi(this.document,t,e.getAttributes());return this.insert(Ri._createAfter(e),n),this.move(ji._createIn(e),Ri._createAt(n,0)),this.remove(ji._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Ri._createAt(t,e)}createPositionAfter(t){return Ri._createAfter(t)}createPositionBefore(t){return Ri._createBefore(t)}createRange(t,e){return new ji(t,e)}createRangeOn(t){return ji._createOn(t)}createRangeIn(t){return ji._createIn(t)}createSelection(t,e,n){return new Hi(t,e,n)}createSlot(t){if(!this._slotFactory)throw new l("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,t)}_registerSlotFactory(t){this._slotFactory=t}_clearSlotFactory(){this._slotFactory=null}_insertNodes(t,e,n){let o,i;if(o=n?vr(t):t.parent.is("$text")?t.parent.parent:t.parent,!o)throw new l("view-writer-invalid-position-container",this.document);i=n?this._breakAttributes(t,!0):t.parent.is("$text")?Er(t):t;const r=o._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const c=this.mergeAttributes(s);return new ji(a,c)}_wrapChildren(t,e,n,o){let i=e;const r=[];for(;i!1,t.parent._insertChild(t.offset,n);const o=new ji(t,t.getShiftedBy(1));this.wrap(o,e);const i=new Ri(n.parent,n.index);n._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof Vo&&s instanceof Vo?Dr(r,s):xr(i)}_wrapAttributeElement(t,e){if(!Br(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Br(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,o=t.end;if(Tr(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new ji(n,n)}const i=this._breakAttributes(o,e),r=i.parent.childCount,s=this._breakAttributes(n,e);return i.offset+=i.parent.childCount-r,new ji(s,i)}_breakAttributes(t,e=!1){const n=t.offset,o=t.parent;if(t.parent.is("emptyElement"))throw new l("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new l("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new l("view-writer-cannot-break-raw-element",this.document);if(!e&&o.is("$text")&&Mr(o.parent))return t.clone();if(Mr(o))return t.clone();if(o.is("$text"))return this._breakAttributes(Er(t),e);if(n==o.childCount){const t=new Ri(o.parent,o.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Ri(o.parent,o.index);return this._breakAttributes(t,e)}{const t=o.index+1,i=o._clone();o.parent._insertChild(t,i),this._addToClonedElementsGroup(i);const r=o.childCount-n,s=o._removeChildren(n,r);i._appendChild(s);const a=new Ri(o.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function vr(t){let e=t.parent;for(;!Mr(e);){if(!e)return;e=e.parent}return e}function yr(t,e){return t.prioritye.priority)&&t.getIdentity()n instanceof t)))throw new l("view-writer-insert-invalid-node-type",e);n.is("$text")||Sr(n.getChildren(),e)}}const Ir=[Vo,Xi,Bi,nr,wr,fr];function Mr(t){return t&&(t.is("containerElement")||t.is("documentFragment"))}function Tr(t,e){const n=vr(t.start),o=vr(t.end);if(!n||!o||n!==o)throw new l("view-writer-invalid-range-container",e)}function Br(t,e){return null===t.id&&null===e.id}function Nr(t){return"[object Text]"==Object.prototype.toString.call(t)}const zr=t=>t.createTextNode(" "),Pr=t=>{const e=t.createElement("span");return e.dataset.ckeFiller=!0,e.innerHTML=" ",e},Lr=t=>{const e=t.createElement("br");return e.dataset.ckeFiller=!0,e},Or="⁠".repeat(7);function Rr(t){return Nr(t)&&t.data.substr(0,7)===Or}function jr(t){return 7==t.data.length&&Rr(t)}function Vr(t){return Rr(t)?t.data.slice(7):t.data}function Fr(t,e){if(e.keyCode==dr.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Rr(e)&&n<=7&&t.collapse(e,0)}}}function Hr(t,e,n,o=!1){n=n||function(t,e){return t===e},Array.isArray(t)||(t=Array.prototype.slice.call(t)),Array.isArray(e)||(e=Array.prototype.slice.call(e));const i=function(t,e,n){const o=Ur(t,e,n);if(-1===o)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=Wr(t,o),r=Wr(e,o),s=Ur(i,r,n),a=t.length-s,l=e.length-s;return{firstIndex:o,lastIndexOld:a,lastIndexNew:l}}(t,e,n);return o?function(t,e){const{firstIndex:n,lastIndexOld:o,lastIndexNew:i}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));i-n>0&&(r=r.concat(Array(i-n).fill("insert")));o-n>0&&(r=r.concat(Array(o-n).fill("delete")));i0&&n.push({index:o,type:"insert",values:t.slice(o,r)});i-o>0&&n.push({index:o+(r-o),type:"delete",howMany:i-o});return n}(e,i)}function Ur(t,e,n){for(let o=0;o200||i>200||o+i>300)return Gr.fastDiff(t,e,n,!0);let r,s;if(ic?-1:1;d[o+h]&&(d[o]=d[o+h].slice(0)),d[o]||(d[o]=[]),d[o].push(i>c?r:s);let m=Math.max(i,c),g=m-o;for(;gc;m--)u[m]=h(m);u[c]=h(c),g++}while(u[c]!==l);return d[c].slice(1)}function qr(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function Zr(t){const e=t.parentNode;e&&e.removeChild(t)}function Yr(t){return t&&t.nodeType===Node.COMMENT_NODE}function Kr(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}Gr.fastDiff=Hr;var $r=n(3379),Qr=n.n($r),Jr=n(9037),Xr=n.n(Jr),ts=n(569),es=n.n(ts),ns=n(8575),os=n.n(ns),is=n(9216),rs=n.n(is),ss=n(4401),as={attributes:{"data-cke":!0}};as.setAttributes=os(),as.insert=es().bind(null,"head"),as.domAPI=Xr(),as.insertStyleElement=rs();Qr()(ss.Z,as);ss.Z&&ss.Z.locals&&ss.Z.locals;class ls{constructor(t,e){this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.set("isFocused",!1),this.set("isSelecting",!1),sr.isBlink&&!sr.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()})),this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new l("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){let t;const e=!(sr.isBlink&&!sr.isAndroid)||!this.isSelecting;for(const t of this.markedChildren)this._updateChildrenMappings(t);e?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(t=this.domConverter.domPositionToView(this._inlineFiller));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(e)if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Rr(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=cs(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(this.domConverter.mapViewToDom(t).childNodes),o=Array.from(this.domConverter.viewChildrenToDom(t,e.ownerDocument,{withChildren:!1})),i=this._diffNodeLists(n,o),r=this._findReplaceActions(i,n,o);if(-1!==r.indexOf("replace")){const e={equal:0,insert:0,delete:0};for(const i of r)if("replace"===i){const i=e.equal+e.insert,r=e.equal+e.delete,s=t.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[r]),Zr(o[i]),e.equal++}else e[i]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Ri._createBefore(this.selection.getFirstPosition().parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&Nr(e.parent)&&Rr(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Rr(t))throw new l("view-renderer-filler-was-lost",this);jr(t)?t.remove():t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const o=t.nodeBefore,i=t.nodeAfter;return!(o instanceof Vo||i instanceof Vo)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t),o=this.domConverter.viewToDom(t,n.ownerDocument),i=n.data;let r=o.data;const s=e.inlineFillerPosition;if(s&&s.parent==t.parent&&s.offset==t.index&&(r=Or+r),i!=r){const t=Hr(i,r);for(const e of t)"insert"===e.type?n.insertData(e.index,e.values.join("")):n.deleteData(e.index,e.howMany)}}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),o=t.getAttributeKeys();for(const n of o)this.domConverter.setDomElementAttribute(e,n,t.getAttribute(n),t);for(const o of n)t.hasAttribute(o)||this.domConverter.removeDomElementAttribute(e,o)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;const o=e.inlineFillerPosition,i=this.domConverter.mapViewToDom(t).childNodes,r=Array.from(this.domConverter.viewChildrenToDom(t,n.ownerDocument,{bind:!0}));o&&o.parent===t&&cs(n.ownerDocument,r,o.offset);const s=this._diffNodeLists(i,r);let a=0;const l=new Set;for(const t of s)"delete"===t?(l.add(i[a]),Zr(i[a])):"equal"===t&&a++;a=0;for(const t of s)"insert"===t?(qr(n,a,r[a]),a++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(r[a])),a++);for(const t of l)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return Gr(t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;n[n.length-1]==e&&n.pop();return n}(t,this._fakeSelectionContainer),e,us.bind(null,this.domConverter))}_findReplaceActions(t,e,n){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let o=[],i=[],r=[];const s={equal:0,insert:0,delete:0};for(const a of t)"insert"===a?r.push(n[s.equal+s.insert]):"delete"===a?i.push(e[s.equal+s.delete]):(o=o.concat(Gr(i,r,ds).map((t=>"equal"===t?"replace":t))),o.push("equal"),i=[],r=[]),s[a]++;return o.concat(Gr(i,r,ds).map((t=>"equal"===t?"replace":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(sr.isBlink&&!sr.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):(this._removeFakeSelection(),this._updateDomSelection(t)))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const o=e.getSelection(),i=e.createRange();o.removeAllRanges(),i.selectNodeContents(n),o.addRange(i)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);e.collapse(n.parent,n.offset),e.extend(o.parent,o.offset),sr.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const o=n.childNodes[t.offset];o&&"BR"==o.tagName&&e.addRange(e.getRangeAt(0))}(o,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){if(t.getSelection().rangeCount){const e=t.activeElement,n=this.domConverter.mapDomToView(e);e&&n&&t.getSelection().removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function cs(t,e,n){const o=e instanceof Array?e:e.childNodes,i=o[n];if(Nr(i))return i.data=Or+i.data,i;{const i=t.createTextNode(Or);return Array.isArray(e)?o.splice(n,0,i):qr(e,n,i),i}}function ds(t,e){return Kr(t)&&Kr(e)&&!Nr(t)&&!Nr(e)&&!Yr(t)&&!Yr(e)&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function us(t,e,n){return e===n||(Nr(e)&&Nr(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}ue(ls,re);const hs={window,document};function ms(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function gs(t){const e=[];for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}const ps=Lr(document),fs=zr(document),ks=Pr(document),bs="data-ck-unsafe-attribute-",ws="data-ck-unsafe-element",As=["script","style"];class _s{constructor(t,e={}){this.document=t,this.renderingMode=e.renderingMode||"editing",this.blockFillerMode=e.blockFillerMode||("editing"===this.renderingMode?"br":"nbsp"),this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new Uo,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new Hi(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of t.childNodes)this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}shouldRenderAttribute(t,e,n){return"data"===this.renderingMode||!(t=t.toLowerCase()).startsWith("on")&&(("srcdoc"!==t||!e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===n&&("src"===t||"srcset"===t)||("source"===n&&"srcset"===t||!e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(t,e){if("data"===this.renderingMode)return void(t.innerHTML=e);const n=(new DOMParser).parseFromString(e,"text/html"),o=n.createDocumentFragment(),i=n.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);const r=n.createTreeWalker(o,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const t of s){for(const e of t.getAttributeNames())this.setDomElementAttribute(t,e,t.getAttribute(e));const e=t.tagName.toLowerCase();this._shouldRenameElement(e)&&(ys(e),t.replaceWith(this._createReplacementDomElement(e,t)))}for(;t.firstChild;)t.firstChild.remove();t.append(o)}viewToDom(t,e,n={}){if(t.is("$text")){const n=this._processDataFromViewText(t);return e.createTextNode(n)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let o;if(t.is("documentFragment"))o=e.createDocumentFragment(),n.bind&&this.bindDocumentFragments(o,t);else{if(t.is("uiElement"))return o="$comment"===t.name?e.createComment(t.getCustomProperty("$rawContent")):t.render(e,this),n.bind&&this.bindElements(o,t),o;this._shouldRenameElement(t.name)?(ys(t.name),o=this._createReplacementDomElement(t.name)):o=t.hasAttribute("xmlns")?e.createElementNS(t.getAttribute("xmlns"),t.name):e.createElement(t.name),t.is("rawElement")&&t.render(o,this),n.bind&&this.bindElements(o,t);for(const e of t.getAttributeKeys())this.setDomElementAttribute(o,e,t.getAttribute(e),t)}if(!1!==n.withChildren)for(const i of this.viewChildrenToDom(t,e,n))o.appendChild(i);return o}}setDomElementAttribute(t,e,n,o=null){const i=this.shouldRenderAttribute(e,n,t.tagName.toLowerCase())||o&&o.shouldRenderUnsafeAttribute(e);i||c("domconverter-unsafe-attribute-detected",{domElement:t,key:e,value:n}),t.hasAttribute(e)&&!i?t.removeAttribute(e):t.hasAttribute(bs+e)&&i&&t.removeAttribute(bs+e),t.setAttribute(i?e:bs+e,n)}removeDomElementAttribute(t,e){e!=ws&&(t.removeAttribute(e),t.removeAttribute(bs+e))}*viewChildrenToDom(t,e,n={}){const o=t.getFillerOffset&&t.getFillerOffset();let i=0;for(const r of t.getChildren()){o===i&&(yield this._getBlockFiller(e));const t=r.is("element")&&r.getCustomProperty("dataPipeline:transparentRendering");t&&"data"==this.renderingMode?yield*this.viewChildrenToDom(r,e,n):(t&&c("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:r}),yield this.viewToDom(r,e,n)),i++}o===i&&(yield this._getBlockFiller(e))}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),o=document.createRange();return o.setStart(e.parent,e.offset),o.setEnd(n.parent,n.offset),o}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let o=t.offset;return Rr(n)&&(o+=7),{parent:n,offset:o}}{let n,o,i;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;i=n.childNodes[0]}else{const e=t.nodeBefore;if(o=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(t.nodeBefore),!o)return null;n=o.parentNode,i=o.nextSibling}if(Nr(i)&&Rr(i))return{parent:i,offset:7};return{parent:n,offset:o?ms(o)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t))return null;const n=this.getHostViewElement(t);if(n)return n;if(Yr(t)&&e.skipComments)return null;if(Nr(t)){if(jr(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new Vo(this.document,e)}}{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new _r(this.document),e.bind&&this.bindDocumentFragments(t,n);else{n=this._createViewElement(t,e),e.bind&&this.bindElements(t,n);const o=t.attributes;if(o)for(let t=o.length-1;t>=0;t--)n._setAttribute(o[t].name,o[t].value);if(this._isViewElementWithRawContent(n,e)||Yr(t)){const e=Yr(t)?t.data:t.innerHTML;return n._setCustomProperty("$rawContent",e),this._encounteredRawContentDomNodes.add(t),n}}if(!1!==e.withChildren)for(const o of this.domChildrenToView(t,e))n._appendChild(o);return n}}*domChildrenToView(t,e={}){for(let n=0;n{const{scrollLeft:e,scrollTop:n}=t;o.push([e,n])})),e.focus(),Cs(e,(t=>{const[e,n]=o.shift();t.scrollLeft=e,t.scrollTop=n})),hs.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(ps):!("BR"!==t.tagName||!vs(t,this.blockElements)||1!==t.parentNode.childNodes.length)||(t.isEqualNode(ks)||function(t,e){return t.isEqualNode(fs)&&vs(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements))}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=gs(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_getBlockFiller(t){switch(this.blockFillerMode){case"nbsp":return zr(t);case"markedNbsp":return Pr(t);case"br":return Lr(t)}}_isDomSelectionPositionCorrect(t,e){if(Nr(t)&&Rr(t)&&e<7)return!1;if(this.isElement(t)&&Rr(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),o=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!o||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(function(t,e){return gs(t).some((t=>t.tagName&&e.includes(t.tagName.toLowerCase())))}(t,this.preElements))return Vr(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),o=this._getTouchingInlineDomNode(t,!0),i=this._checkShouldLeftTrimDomText(t,n),r=this._checkShouldRightTrimDomText(t,o);i&&(e=e.replace(/^ /,"")),r&&(e=e.replace(/ $/,"")),e=Vr(new Text(e)),e=e.replace(/ \u00A0/g," ");const s=o&&this.isElement(o)&&"BR"!=o.tagName,a=o&&Nr(o)&&" "==o.data.charAt(0);return(/( |\u00A0)\u00A0$/.test(e)||!o||s||a)&&(e=e.replace(/\u00A0$/," ")),(i||n&&this.isElement(n)&&"BR"!=n.tagName)&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(this.isElement(e)?"BR"===e.tagName:!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!Rr(t)}_getTouchingInlineViewNode(t,e){const n=new Oi({startPosition:e?Ri._createAfter(t):Ri._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element")&&this.inlineObjectElements.includes(t.item.name))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"firstChild":"lastChild",o=e?"nextSibling":"previousSibling";let i=!0;do{if(!i&&t[n]?t=t[n]:t[o]?(t=t[o],i=!1):(t=t.parentNode,i=!0),!t||this._isBlockElement(t))return null}while(!Nr(t)&&"BR"!=t.tagName&&!this._isInlineObjectElement(t));return t}_isBlockElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isInlineObjectElement(t){return this.isElement(t)&&this.inlineObjectElements.includes(t.tagName.toLowerCase())}_createViewElement(t,e){if(Yr(t))return new fr(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new Mi(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&this._rawContentElementMatcher.match(t)}_shouldRenameElement(t){const e=t.toLowerCase();return"editing"===this.renderingMode&&As.includes(e)}_createReplacementDomElement(t,e=null){const n=document.createElement("span");if(n.setAttribute(ws,t),e){for(;e.firstChild;)n.appendChild(e.firstChild);for(const t of e.getAttributeNames())n.setAttribute(t,e.getAttribute(t))}return n}}function Cs(t,e){for(;t&&t!=hs.document;)e(t),t=t.parentNode}function vs(t,e){const n=t.parentNode;return n&&n.tagName&&e.includes(n.tagName.toLowerCase())}function ys(t){"script"===t&&c("domconverter-unsafe-script-element-detected"),"style"===t&&c("domconverter-unsafe-style-element-detected")}function xs(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}const Es=Jt({},k,{listenTo(t,e,n,o={}){if(Kr(t)||xs(t)){const i={capture:!!o.useCapture,passive:!!o.usePassive},r=this._getProxyEmitter(t,i)||new Ss(t,i);this.listenTo(r,e,n,o)}else k.listenTo.call(this,t,e,n,o)},stopListening(t,e,n){if(Kr(t)||xs(t)){const o=this._getAllProxyEmitters(t);for(const t of o)this.stopListening(t,e,n)}else k.stopListening.call(this,t,e,n)},_getProxyEmitter(t,e){return n=this,o=Is(t,e),n[g]&&n[g][o]?n[g][o].emitter:null;var n,o},_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}),Ds=Es;class Ss{constructor(t,e){b(this,Is(t,e)),this._domNode=t,this._options=e}}function Is(t,e){let n=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=r())}(t);for(const t of Object.keys(e).sort())e[t]&&(n+="-"+t);return n}Jt(Ss.prototype,k,{attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e},detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()},_addEventListener(t,e,n){this.attach(t),k._addEventListener.call(this,t,e,n)},_removeEventListener(t,e){k._removeEventListener.call(this,t,e),this.detach(t)},_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}});class Ms{constructor(t){this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}ue(Ms,Ds);const Ts=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const Bs=function(t){return this.__data__.has(t)};function Ns(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new on;++ea))return!1;var c=r.get(t),d=r.get(e);if(c&&d)return c==e&&d==t;var u=-1,h=!0,m=2&n?new zs:void 0;for(r.set(t,e),r.set(e,t);++u{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}fire(t,e,n){this.isEnabled&&this.document.fire(t,new Xs(this.view,e,n))}}class ea extends ta{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){this.fire(t.type,t,{keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return hr(this)}})}}const na=function(){return S.Date.now()};var oa=/\s/;const ia=function(t){for(var e=t.length;e--&&oa.test(t.charAt(e)););return e};var ra=/^\s+/;const sa=function(t){return t?t.slice(0,ia(t)+1).replace(ra,""):t};var aa=/^[-+]0x[0-9a-f]+$/i,la=/^0b[01]+$/i,ca=/^0o[0-7]+$/i,da=parseInt;const ua=function(t){if("number"==typeof t)return t;if(qo(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=sa(t);var n=la.test(t);return n||ca.test(t)?da(t.slice(2),n?2:8):aa.test(t)?NaN:+t};var ha=Math.max,ma=Math.min;const ga=function(t,e,n){var o,i,r,s,a,l,c=0,d=!1,u=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var n=o,r=i;return o=i=void 0,c=e,s=t.apply(r,n)}function g(t){return c=t,a=setTimeout(f,e),d?m(t):s}function p(t){var n=t-l;return void 0===l||n>=e||n<0||u&&t-c>=r}function f(){var t=na();if(p(t))return k(t);a=setTimeout(f,function(t){var n=e-(t-l);return u?ma(n,r-(t-c)):n}(t))}function k(t){return a=void 0,h&&o?m(t):(o=i=void 0,s)}function b(){var t=na(),n=p(t);if(o=arguments,i=this,l=t,n){if(void 0===a)return g(l);if(u)return clearTimeout(a),a=setTimeout(f,e),m(l)}return void 0===a&&(a=setTimeout(f,e)),s}return e=ua(e)||0,x(n)&&(d=!!n.leading,r=(u="maxWait"in n)?ha(ua(n.maxWait)||0,e):r,h="trailing"in n?!!n.trailing:h),b.cancel=function(){void 0!==a&&clearTimeout(a),c=0,o=l=i=a=void 0},b.flush=function(){return void 0===a?s:k(na())},b};class pa extends Ms{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=ga((t=>this.document.fire("selectionChangeDone",t)),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new Hi(e.getRanges(),{backward:e.isBackward,fake:!1});t!=dr.arrowleft&&t!=dr.arrowup||n.setTo(n.getFirstPosition()),t!=dr.arrowright&&t!=dr.arrowdown||n.setTo(n.getLastPosition());const o={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",o),this._fireSelectionChangeDoneDebounced(o)}}class fa extends Ms{constructor(t){super(t),this.mutationObserver=t.getObserver(Js),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=ga((t=>this.document.fire("selectionChangeDone",t)),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=ga((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument,n=()=>{this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel()};this.listenTo(t,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(t,"keydown",n,{priority:"highest"}),this.listenTo(t,"keyup",n,{priority:"highest"}),this._documents.has(e)||(this.listenTo(e,"mouseup",n,{priority:"highest"}),this.listenTo(e,"selectionchange",((t,n)=>{this._handleSelectionChange(n,e),this._documentIsSelectingInactivityTimeoutDebounced()})),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(n);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(o)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(o))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:o,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class ka extends ta{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",(()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout((()=>t.change((()=>{}))),50)})),e.on("blur",((n,o)=>{const i=e.selection.editableElement;null!==i&&i!==o.target||(e.isFocused=!1,t.change((()=>{})))}))}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class ba extends ta{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0})),e.on("compositionend",(()=>{e.isComposing=!1}))}onDomEvent(t){this.fire(t.type,t)}}class wa extends ta{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){this.fire(t.type,t)}}class Aa{constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}const _a=function(t){return"string"==typeof t||!It(t)&&vt(t)&&"[object String]"==R(t)};function Ca(t,e,n={},o=[]){const i=n&&n.xmlns,r=i?t.createElementNS(i,e):t.createElement(e);for(const t in n)r.setAttribute(t,n[t]);!_a(o)&&Do(o)||(o=[o]);for(let e of o)_a(e)&&(e=t.createTextNode(e)),r.appendChild(e);return r}function va(t){return"[object Range]"==Object.prototype.toString.apply(t)}function ya(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const xa=["top","right","bottom","left","width","height"];class Ea{constructor(t){const e=va(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),vo(t)||e)if(e){const e=Ea.getDomRangeRects(t);Da(this,Ea.getBoundingRect(e))}else Da(this,t.getBoundingClientRect());else if(xs(t)){const{innerWidth:e,innerHeight:n}=t;Da(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Da(this,t)}clone(){return new Ea(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left)};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new Ea(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!Sa(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!Sa(n);){const t=new Ea(n),o=e.getIntersection(t);if(!o)return null;o.getArea(){for(const e of t){const t=Ia._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}Ia._observerInstance=null,Ia._elementCallbacks=null;class Ma{constructor(t){this._callback=t,this._elements=new Set,this._previousRects=new Map,this._periodicCheckTimeout=null}observe(t){this._elements.add(t),this._checkElementRectsAndExecuteCallback(),1===this._elements.size&&this._startPeriodicCheck()}unobserve(t){this._elements.delete(t),this._previousRects.delete(t),this._elements.size||this._stopPeriodicCheck()}_startPeriodicCheck(){const t=()=>{this._checkElementRectsAndExecuteCallback(),this._periodicCheckTimeout=setTimeout(t,100)};this.listenTo(hs.window,"resize",(()=>{this._checkElementRectsAndExecuteCallback()})),this._periodicCheckTimeout=setTimeout(t,100)}_stopPeriodicCheck(){clearTimeout(this._periodicCheckTimeout),this.stopListening(),this._previousRects.clear()}_checkElementRectsAndExecuteCallback(){const t=[];for(const e of this._elements)this._hasRectChanged(e)&&t.push({target:e,contentRect:this._previousRects.get(e)});t.length&&this._callback(t)}_hasRectChanged(t){if(!t.ownerDocument.body.contains(t))return!1;const e=new Ea(t),n=this._previousRects.get(t),o=!n||!n.isEqual(e);return this._previousRects.set(t,e),o}}ue(Ma,Ds);function Ta({target:t,viewportOffset:e=0}){const n=Ra(t);let o=n,i=null;for(;o;){let r;r=ja(o==n?t:i),Na(r,(()=>Va(t,o)));const s=Va(t,o);if(Ba(o,s,e),o.parent!=o){if(i=o.frameElement,o=o.parent,!i)return}else o=null}}function Ba(t,e,n){const o=e.clone().moveBy(0,n),i=e.clone().moveBy(0,-n),r=new Ea(t).excludeScrollbarsAndBorders();if(![i,o].every((t=>r.contains(t)))){let{scrollX:s,scrollY:a}=t;Pa(i,r)?a-=r.top-e.top+n:za(o,r)&&(a+=e.bottom-r.bottom+n),La(e,r)?s-=r.left-e.left+n:Oa(e,r)&&(s+=e.right-r.right+n),t.scrollTo(s,a)}}function Na(t,e){const n=Ra(t);let o,i;for(;t!=n.document.body;)i=e(),o=new Ea(t).excludeScrollbarsAndBorders(),o.contains(i)||(Pa(i,o)?t.scrollTop-=o.top-i.top:za(i,o)&&(t.scrollTop+=i.bottom-o.bottom),La(i,o)?t.scrollLeft-=o.left-i.left:Oa(i,o)&&(t.scrollLeft+=i.right-o.right)),t=t.parentNode}function za(t,e){return t.bottom>e.bottom}function Pa(t,e){return t.tope.right}function Ra(t){return va(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function ja(t){if(va(t)){let e=t.commonAncestorContainer;return Nr(e)&&(e=e.parentNode),e}return t.parentNode}function Va(t,e){const n=Ra(t),o=new Ea(t);if(n===e)return o;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ea(e).excludeScrollbarsAndBorders();o.moveBy(n.left,n.top),t=t.parent}}return o}function Fa(t){const e=t.next();return e.done?null:e.value}Object.assign({},{scrollViewportToShowTarget:Ta,scrollAncestorsToShowTarget:function(t){Na(ja(t),(()=>new Ea(t)))}});class Ha{constructor(){this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new l("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(t),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}ue(Ha,Ds),ue(Ha,re);class Ua{constructor(){this._listener=Object.create(Ds)}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+hr(e),e)}))}set(t,e,n={}){const o=mr(t),i=n.priority;this._listener.listenTo(this._listener,"_keydown:"+o,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:i})}press(t){return!!this._listener.fire("_keydown:"+hr(t),t)}destroy(){this._listener.stopListening()}}class Wa extends Ms{constructor(t){super(t),this.document.on("keydown",((t,e)=>{if(this.isEnabled&&((n=e.keyCode)==dr.arrowright||n==dr.arrowleft||n==dr.arrowup||n==dr.arrowdown)){const n=new Wi(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}}class Ga extends Ms{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(!this.isEnabled||n.keyCode!=dr.tab||n.ctrlKey)return;const o=new Wi(e,"tab",e.selection.getFirstRange());e.fire(o,n),o.stop.called&&t.stop()}))}observe(){}}class qa{constructor(t){this.document=new Ji(t),this.domConverter=new _s(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new ls(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting").to(this.document),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new Cr(this.document),this.addObserver(Js),this.addObserver(fa),this.addObserver(ka),this.addObserver(ea),this.addObserver(pa),this.addObserver(ba),this.addObserver(Wa),this.addObserver(Ga),sr.isAndroid&&this.addObserver(wa),this.document.on("arrowKey",Fr,{priority:"low"}),kr(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const o={};for(const{name:e,value:i}of Array.from(t.attributes))o[e]=i,"class"===e?this._writer.addClass(i.split(" "),n):this._writer.setAttribute(e,i,n);this._initialDomRootAttributes.set(t,o);const i=()=>{this._writer.setAttribute("contenteditable",!n.isReadOnly,n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};i(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(i))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&Ta({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new l("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){l.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Ri._createAt(t,e)}createPositionAfter(t){return Ri._createAfter(t)}createPositionBefore(t){return Ri._createBefore(t)}createRange(t,e){return new ji(t,e)}createRangeOn(t){return ji._createOn(t)}createRangeIn(t){return ji._createIn(t)}createSelection(t,e,n){return new Hi(t,e,n)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}ue(qa,re);class Za{constructor(t){this.parent=null,this._attrs=Ho(t)}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new l("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new l("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=Oo(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o](t[e[0]]=e[1],t)),{})),t}is(t){return"node"===t||"model:node"===t}_clone(){return new Za(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=Ho(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}class Ya extends Za{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}is(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new Ya(this.data,this.getAttributes())}static fromJSON(t){return new Ya(t.data,t.attributes)}}class Ka{constructor(t,e,n){if(this.textNode=t,e<0||e>t.offsetSize)throw new l("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new l("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}is(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}class $a{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new l("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&tt.toJSON()))}}class Qa extends Za{constructor(t,e,n){super(e),this.name=t,this._children=new $a,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(t,e=null){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={includeSelf:!1}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):null;return new Qa(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new Ya(t)];Do(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Ya(t):t instanceof Ka?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e=null;if(t.children){e=[];for(const n of t.children)n.name?e.push(Qa.fromJSON(n)):e.push(Ya.fromJSON(n))}return new Qa(t.name,t.attributes,e)}}class Ja{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new l("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=tl._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,o,i;do{o=this.position,i=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o,this._visitedParent=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};const o=el(e,n),i=o||nl(e,n,o);if(i instanceof Qa)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=i),this.position=e,Xa("elementStart",i,t,e,1);if(i instanceof Ya){let o;if(this.singleCharacters)o=1;else{let t=i.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),o=e.offset-t}const i=e.offset-r.startOffset,s=new Ka(r,i-o,o);return e.offset-=o,this.position=e,Xa("text",s,t,e,o)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,Xa("elementStart",n,t,e,1)}}function Xa(t,e,n,o,i){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}class tl{constructor(t,e,n="toNone"){if(!t.is("element")&&!t.is("documentFragment"))throw new l("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new l("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;en.path.length){if(e.offset!==o.maxOffset)return!1;e.path=e.path.slice(0,-1),o=o.parent,e.offset++}else{if(0!==n.offset)return!1;n.path=n.path.slice(0,-1)}}}is(t){return"position"===t||"model:position"===t}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==Oo(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=tl._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?tl._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=tl._createAt(this);if(this.root!=t.root)return n;if("same"==Oo(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==Oo(t.getParentPath(),this.getParentPath())){const o=t.path.length-1;if(t.offset<=this.path[o]){if(t.offset+e>this.path[o])return null;n.path[o]-=e}}return n}_getTransformedByInsertion(t,e){const n=tl._createAt(this);if(this.root!=t.root)return n;if("same"==Oo(t.getParentPath(),this.getParentPath()))(t.offsete+1;){const e=o.maxOffset-n.offset;0!==e&&t.push(new il(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,o=o.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],o=e-n.offset;0!==o&&t.push(new il(n,n.getShiftedBy(o))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new Ja(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new Ja(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new Ja(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new il(this.start,this.end)]}getTransformedByOperations(t){const e=[new il(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,o):new this(o,n)}static _createIn(t){return new this(tl._createAt(t,0),tl._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(tl._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new l("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),o=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(o.start);e++)o.start=tl._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);if(!n)throw new l("mapping-model-position-view-parent-not-found",this,{modelPosition:e.modelPosition});e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),o=this._viewToModelMapping.get(n),i=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=tl._createAt(o,i)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t,e={}){const n=this.toModelElement(t);if(this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);e.defer?this._deferredBindingRemovals.set(t,t.root):(this._viewToModelMapping.delete(t),this._modelToViewMapping.get(n)==t&&this._modelToViewMapping.delete(n))}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const o=this._elementToMarkerNames.get(t)||new Set;o.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,o)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const o=this._elementToMarkerNames.get(t);o&&(o.delete(e),0==o.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}flushDeferredBindings(){for(const[t,e]of this._deferredBindingRemovals)t.root==e&&this.unbindViewElement(t);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new il(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new ji(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={isPhantom:!1}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let o=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class ll{constructor(t){this._conversionApi={dispatcher:this,...t},this._firedEventsMap=new WeakMap}convertChanges(t,e,n){const o=this._createConversionApi(n,t.getRefreshedItems());for(const e of t.getMarkersToRemove())this._convertMarkerRemove(e.name,e.range,o);const i=this._reduceChanges(t.getChanges());for(const t of i)"insert"===t.type?this._convertInsert(il._createFromPositionAndShift(t.position,t.length),o):"reinsert"===t.type?this._convertReinsert(il._createFromPositionAndShift(t.position,t.length),o):"remove"===t.type?this._convertRemove(t.position,t.length,t.name,o):this._convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,o);for(const t of o.mapper.flushUnboundMarkerNames()){const n=e.get(t).getRange();this._convertMarkerRemove(t,n,o),this._convertMarkerAdd(t,n,o)}for(const e of t.getMarkersToAdd())this._convertMarkerAdd(e.name,e.range,o);o.mapper.flushDeferredBindings(),o.consumable.verifyAllConsumed("insert")}convert(t,e,n,o={}){const i=this._createConversionApi(n,void 0,o);this._convertInsert(t,i);for(const[t,n]of e)this._convertMarkerAdd(t,n,i);i.consumable.verifyAllConsumed("insert")}convertSelection(t,e,n){const o=Array.from(e.getMarkersAtPosition(t.getFirstPosition())),i=this._createConversionApi(n);if(this._addConsumablesForSelection(i.consumable,t,o),this.fire("selection",{selection:t},i),t.isCollapsed){for(const e of o){const n=e.getRange();if(!cl(t.getFirstPosition(),e,i.mapper))continue;const o={item:t,markerName:e.name,markerRange:n};i.consumable.test(t,"addMarker:"+e.name)&&this.fire("addMarker:"+e.name,o,i)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};i.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire("attribute:"+n.attributeKey+":$text",n,i)}}}_convertInsert(t,e,n={}){n.doNotAddConsumables||this._addConsumablesForInsert(e.consumable,Array.from(t));for(const n of Array.from(t.getWalker({shallow:!0})).map(dl))this._testAndFire("insert",n,e)}_convertRemove(t,e,n,o){this.fire("remove:"+n,{position:t,length:e},o)}_convertAttribute(t,e,n,o,i){this._addConsumablesForRange(i.consumable,t,`attribute:${e}`);for(const r of t){const t={item:r.item,range:il._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:o};this._testAndFire(`attribute:${e}`,t,i)}}_convertReinsert(t,e){const n=Array.from(t.getWalker({shallow:!0}));this._addConsumablesForInsert(e.consumable,n);for(const t of n.map(dl))this._testAndFire("insert",{...t,reconversion:!0},e)}_convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;const o="addMarker:"+t;if(n.consumable.add(e,o),this.fire(o,{markerName:t,markerRange:e},n),n.consumable.consume(e,o)){this._addConsumablesForRange(n.consumable,e,o);for(const i of e.getItems()){if(!n.consumable.test(i,o))continue;const r={item:i,range:il._createOn(i),markerName:t,markerRange:e};this.fire(o,r,n)}}}_convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&this.fire("removeMarker:"+t,{markerName:t,markerRange:e},n)}_reduceChanges(t){const e={changes:t};return this.fire("reduceChanges",e),e.changes}_addConsumablesForInsert(t,e){for(const n of e){const e=n.item;if(null===t.test(e,"insert")){t.add(e,"insert");for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n)}}return t}_addConsumablesForRange(t,e,n){for(const o of e.getItems())t.add(o,n);return t}_addConsumablesForSelection(t,e,n){t.add(e,"selection");for(const o of n)t.add(e,"addMarker:"+o.name);for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n);return t}_testAndFire(t,e,n){const o=function(t,e){const n=e.item.name||"$text";return`${t}:${n}`}(t,e),i=e.item.is("$textProxy")?n.consumable._getSymbolForTextProxy(e.item):e.item,r=this._firedEventsMap.get(n),s=r.get(i);if(s){if(s.has(o))return;s.add(o)}else r.set(i,new Set([o]));this.fire(o,e,n)}_testAndFireAddAttributes(t,e){const n={item:t,range:il._createOn(t)};for(const t of n.item.getAttributeKeys())n.attributeKey=t,n.attributeOldValue=null,n.attributeNewValue=n.item.getAttribute(t),this._testAndFire(`attribute:${t}`,n,e)}_createConversionApi(t,e=new Set,n={}){const o={...this._conversionApi,consumable:new sl,writer:t,options:n,convertItem:t=>this._convertInsert(il._createOn(t),o),convertChildren:t=>this._convertInsert(il._createIn(t),o,{doNotAddConsumables:!0}),convertAttributes:t=>this._testAndFireAddAttributes(t,o),canReuseView:t=>!e.has(o.mapper.toModelElement(t))};return this._firedEventsMap.set(o,new Map),o}}function cl(t,e,n){const o=e.getRange(),i=Array.from(t.getAncestors());i.shift(),i.reverse();return!i.some((t=>{if(o.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}}))}function dl(t){return{item:t.item,range:il._createFromPositionAndShift(t.previousPosition,t.length)}}ue(ll,k);class ul{constructor(t,e,n){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t&&this.setTo(t,e,n)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new il(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new il(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new il(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(t,e,n){if(null===t)this._setRanges([]);else if(t instanceof ul)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof il)this._setRanges([t],!!e&&!!e.backward);else if(t instanceof tl)this._setRanges([new il(t)]);else if(t instanceof Za){const o=!!n&&!!n.backward;let i;if("in"==e)i=il._createIn(t);else if("on"==e)i=il._createOn(t);else{if(void 0===e)throw new l("model-selection-setto-required-second-parameter",[this,t]);i=new il(tl._createAt(t,e))}this._setRanges([i],o)}else{if(!Do(t))throw new l("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,e&&!!e.backward)}}_setRanges(t,e=!1){const n=(t=Array.from(t)).some((e=>{if(!(e instanceof il))throw new l("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));if(t.length!==this._ranges.length||n){this._removeAllRanges();for(const e of t)this._pushRange(e);this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0})}}setFocus(t,e){if(null===this.anchor)throw new l("model-selection-setfocus-no-ranges",[this,t]);const n=tl._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(o)?(this._pushRange(new il(n,o)),this._lastRangeBackward=!0):(this._pushRange(new il(o,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}is(t){return"selection"===t||"model:selection"===t}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=gl(e.start,t);n&&pl(n,e)&&(yield n);for(const n of e.getWalker()){const o=n.item;"elementEnd"==n.type&&ml(o,t,e)&&(yield o)}const o=gl(e.end,t);o&&!e.end.isTouching(tl._createAt(o,0))&&pl(o,e)&&(yield o)}}containsEntireContent(t=this.anchor.root){const e=tl._createAt(t,0),n=tl._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new il(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function hl(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&t.parent)}function ml(t,e,n){return hl(t,e)&&pl(t,n)}function gl(t,e){const n=t.parent.root.document.model.schema,o=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=o.find((t=>!i&&(i=n.isLimit(t),!i&&hl(t,e))));return o.forEach((t=>e.add(t))),r}function pl(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(il._createOn(n),!0)}ue(ul,k);class fl extends il{constructor(t,e){super(t,e),kl.call(this)}detach(){this.stopListening()}is(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t}toRange(){return new il(this.start,this.end)}static fromRange(t){return new fl(t.start,t.end)}}function kl(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&bl.call(this,n)}),{priority:"low"})}function bl(t){const e=this.getTransformedByOperation(t),n=il._createFromRanges(e),o=!n.isEqual(this),i=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(o){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}ue(fl,k);const wl="selection:";class Al{constructor(t){this._selection=new _l(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection._updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}is(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection._getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return wl+t}static _isStoreAttributeKey(t){return t.startsWith(wl)}}ue(Al,k);class _l extends ul{constructor(t){super(),this.markers=new So({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{for(const t of this.getRanges())if(!this._document._validateSelectionRange(t))throw new l("document-selection-wrong-position",this,{range:t})})),this.listenTo(this._model.markers,"update",((t,e,n,o)=>{this._updateMarker(e,o)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const o of n.getChanges()){if("insert"!=o.type)continue;const n=o.position.parent;o.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith(wl)));for(const o of e)t.removeAttribute(o,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=o.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}_updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const o=e.getRange();for(const n of this.getRanges())o.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let o=!1;const i=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),o=!0):!n&&r&&(this.markers.remove(t),o=!0)}else r&&(this.markers.remove(t),o=!0);o&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(t){const e=Ho(this._getSurroundingAttributes()),n=Ho(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const o=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||o.push(t);for(const[t]of n)this.hasAttribute(t)||o.push(t);o.length>0&&this.fire("change:attribute",{attributeKeys:o,directChange:!1})}_setAttribute(t,e,n=!0){const o=n?"normal":"low";if("low"==o&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,o),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,o]of t){this._setAttribute(n,o,!1)&&e.add(n)}return e}*_getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith(wl)){const n=e.substr(wl.length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const o=t.textNode?t.textNode:t.nodeBefore,i=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Cl(o)),n||(n=Cl(i)),!this.isGravityOverridden&&!n){let t=o;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=Cl(t)}if(!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=Cl(t)}n||(n=this._getStoredAttributes())}else{const t=this.getFirstRange();for(const o of t){if(o.item.is("element")&&e.isObject(o.item))break;if("text"==o.type){n=o.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Cl(t){return t instanceof Ka||t instanceof Ya?t.getAttributes():null}class vl{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}const yl=function(t){return _o(t,5)};class xl extends vl{elementToElement(t){return this.add(function(t){(t=yl(t)).model=Sl(t.model),t.view=Il(t.view,"container"),t.model.attributes.length&&(t.model.children=!0);return e=>{e.on("insert:"+t.model.name,function(t,e=Ol){return(n,o,i)=>{if(!e(o.item,i.consumable,{preflight:!0}))return;const r=t(o.item,i,o);if(!r)return;e(o.item,i.consumable);const s=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),i.writer.insert(s,r),i.convertAttributes(o.item),Pl(r,o.item.getChildren(),i,{reconversion:o.reconversion})}}(t.view,zl(t.model)),{priority:t.converterPriority||"normal"}),(t.model.children||t.model.attributes.length)&&e.on("reduceChanges",Nl(t.model),{priority:"low"})}}(t))}elementToStructure(t){return this.add(function(t){return(t=yl(t)).model=Sl(t.model),t.view=Il(t.view,"container"),t.model.children=!0,e=>{if(e._conversionApi.schema.checkChild(t.model.name,"$text"))throw new l("conversion-element-to-structure-disallowed-text",e,{elementName:t.model.name});var n,o;e.on("insert:"+t.model.name,(n=t.view,o=zl(t.model),(t,e,i)=>{if(!o(e.item,i.consumable,{preflight:!0}))return;const r=new Map;i.writer._registerSlotFactory(function(t,e,n){return(o,i="children")=>{const r=o.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(t.getChildren());else{if("function"!=typeof i)throw new l("conversion-slot-mode-unknown",n.dispatcher,{modeOrFilter:i});s=Array.from(t.getChildren()).filter((t=>i(t)))}return e.set(r,s),r}}(e.item,r,i));const s=n(e.item,i,e);if(i.writer._clearSlotFactory(),!s)return;!function(t,e,n){const o=Array.from(e.values()).flat(),i=new Set(o);if(i.size!=o.length)throw new l("conversion-slot-filter-overlap",n.dispatcher,{element:t});if(i.size!=t.childCount)throw new l("conversion-slot-filter-incomplete",n.dispatcher,{element:t})}(e.item,r,i),o(e.item,i.consumable);const a=i.mapper.toViewPosition(e.range.start);i.mapper.bindElements(e.item,s),i.writer.insert(a,s),i.convertAttributes(e.item),function(t,e,n,o){n.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of e)Pl(t,r,n,o),n.writer.move(n.writer.createRangeIn(i),n.writer.createPositionBefore(i)),n.writer.remove(i);function s(t,e){const n=e.modelPosition.nodeAfter,o=r.indexOf(n);o<0||(e.viewPosition=e.mapper.findPositionIn(i,o))}n.mapper.off("modelToViewPosition",s)}(s,r,i,{reconversion:e.reconversion})}),{priority:t.converterPriority||"normal"}),e.on("reduceChanges",Nl(t.model),{priority:"low"})}}(t))}attributeToElement(t){return this.add(function(t){t=yl(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=Il(t.view[e],"attribute");else t.view=Il(t.view,"attribute");const n=Ml(t);return o=>{o.on(e,function(t){return(e,n,o)=>{if(!o.consumable.test(n.item,e.name))return;const i=t(n.attributeOldValue,o,n),r=t(n.attributeNewValue,o,n);if(!i&&!r)return;o.consumable.consume(n.item,e.name);const s=o.writer,a=s.document.selection;if(n.item instanceof ul||n.item instanceof Al)s.wrap(a.getFirstRange(),r);else{let t=o.mapper.toViewRange(n.range);null!==n.attributeOldValue&&i&&(t=s.unwrap(t,i)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}(n),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=yl(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=Tl(t.view[e]);else t.view=Tl(t.view);const n=Ml(t);return o=>{var i;o.on(e,(i=n,(t,e,n)=>{if(!n.consumable.test(e.item,t.name))return;const o=i(e.attributeOldValue,n,e),r=i(e.attributeNewValue,n,e);if(!o&&!r)return;n.consumable.consume(e.item,t.name);const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new l("conversion-attribute-to-attribute-on-text",n.dispatcher,e);if(null!==e.attributeOldValue&&o)if("class"==o.key){const t=Mo(o.value);for(const e of t)a.removeClass(e,s)}else if("style"==o.key){const t=Object.keys(o.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(o.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t=Mo(r.value);for(const e of t)a.addClass(e,s)}else if("style"==r.key){const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){return(t=yl(t)).view=Il(t.view,"ui"),e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,o)=>{e.isOpening=!0;const i=n(e,o);e.isOpening=!1;const r=n(e,o);if(!i||!r)return;const s=e.markerRange;if(s.isCollapsed&&!o.consumable.consume(s,t.name))return;for(const e of s)if(!o.consumable.consume(e.item,t.name))return;const a=o.mapper,l=o.writer;l.insert(a.toViewPosition(s.start),i),o.mapper.bindElementToMarker(i,e.markerName),s.isCollapsed||(l.insert(a.toViewPosition(s.end),r),o.mapper.bindElementToMarker(r,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,(t.view,(t,e,n)=>{const o=n.mapper.markerNameToElements(e.markerName);if(o){for(const t of o)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,o)=>{if(!e.item)return;if(!(e.item instanceof ul||e.item instanceof Al||e.item.is("$textProxy")))return;const i=Bl(n,e,o);if(!i)return;if(!o.consumable.consume(e.item,t.name))return;const r=o.writer,s=El(r,i),a=r.document.selection;if(e.item instanceof ul||e.item instanceof Al)r.wrap(a.getFirstRange(),s,a);else{const t=o.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){o.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on("addMarker:"+t.model,function(t){return(e,n,o)=>{if(!n.item)return;if(!(n.item instanceof Qa))return;const i=Bl(t,n,o);if(!i)return;if(!o.consumable.test(n.item,e.name))return;const r=o.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){o.consumable.consume(n.item,e.name);for(const t of il._createIn(n.item))o.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,i,o.writer),o.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,function(t){return(e,n,o)=>{if(n.markerRange.isCollapsed)return;const i=Bl(t,n,o);if(!i)return;const r=El(o.writer,i),s=o.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement")?o.writer.unwrap(o.writer.createRangeOn(t),r):t.getCustomProperty("removeHighlight")(t,i.id,o.writer);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=yl(t)).model;t.view||(t.view=n=>({group:e,name:n.substr(t.model.length+1)}));return n=>{var o;n.on("addMarker:"+e,(o=t.view,(t,e,n)=>{const i=o(e.markerName,n);if(!i)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Dl(r,!1,n,e,i),Dl(r,!0,n,e,i),t.stop())}),{priority:t.converterPriority||"normal"}),n.on("removeMarker:"+e,function(t){return(e,n,o)=>{const i=t(n.markerName,o);if(!i)return;const r=o.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${i.group}-start-before`,t),s(`data-${i.group}-start-after`,t),s(`data-${i.group}-end-before`,t),s(`data-${i.group}-end-after`,t)):o.writer.clear(o.writer.createRangeOn(t),t);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(i.name),0==n.size?o.writer.removeAttribute(t,e):o.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}}function El(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Dl(t,e,n,o,i){const r=e?t.start:t.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let t,r;e&&s||!e&&!a?(t=s,r=!0):(t=a,r=!1);const l=n.mapper.toViewElement(t);if(l)return void function(t,e,n,o,i,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),o.writer.setAttribute(s,a.join(","),t),o.mapper.bindElementToMarker(t,i.markerName)}(l,e,r,n,o,i)}!function(t,e,n,o,i){const r=`${i.group}-${e?"start":"end"}`,s=i.name?{name:i.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,o.markerName)}(n.mapper.toViewPosition(r),e,n,o,i)}function Sl(t){return"string"==typeof t&&(t={name:t}),t.attributes?Array.isArray(t.attributes)||(t.attributes=[t.attributes]):t.attributes=[],t.children=!!t.children,t}function Il(t,e){return"function"==typeof t?t:(n,o)=>function(t,e,n){"string"==typeof t&&(t={name:t});let o;const i=e.writer,r=Object.assign({},t.attributes);if("container"==n)o=i.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||Xi.DEFAULT_PRIORITY};o=i.createAttributeElement(t.name,r,e)}else o=i.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)i.setStyle(n,t.styles[n],o)}if(t.classes){const e=t.classes;if("string"==typeof e)i.addClass(e,o);else for(const t of e)i.addClass(t,o)}return o}(t,o,e)}function Ml(t){return t.model.values?(e,n)=>{const o=t.view[e];return o?o(e,n):null}:t.view}function Tl(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Bl(t,e,n){const o="function"==typeof t?t(e,n):t;return o?(o.priority||(o.priority=10),o.id||(o.id=e.markerName),o):null}function Nl(t){const e=function(t){return(e,n)=>{if(!e.is("element",t.name))return!1;if("attribute"==n.type){if(t.attributes.includes(n.attributeKey))return!0}else if(t.children)return!0;return!1}}(t);return(t,n)=>{const o=[];n.reconvertedElements||(n.reconvertedElements=new Set);for(const t of n.changes){const i=t.position?t.position.parent:t.range.start.nodeAfter;if(i&&e(i,t)){if(!n.reconvertedElements.has(i)){n.reconvertedElements.add(i);const t=tl._createBefore(i);o.push({type:"remove",name:i.name,position:t,length:1},{type:"reinsert",name:i.name,position:t,length:1})}}else o.push(t)}n.changes=o}}function zl(t){return(e,n,o={})=>{const i=["insert"];for(const n of t.attributes)e.hasAttribute(n)&&i.push(`attribute:${n}`);return!!i.every((t=>n.test(e,t)))&&(o.preflight||i.forEach((t=>n.consume(e,t))),!0)}}function Pl(t,e,n,o){for(const i of e)Ll(t.root,i,n,o)||n.convertItem(i)}function Ll(t,e,n,o){const{writer:i,mapper:r}=n;if(!o.reconversion)return!1;const s=r.toViewElement(e);return!(!s||s.root==t)&&(!!n.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(tl._createBefore(e))),!0))}function Ol(t,e,{preflight:n}={}){return n?e.test(t,"insert"):e.consume(t,"insert")}function Rl(t){const{schema:e,document:n}=t.model;for(const o of n.getRootNames()){const i=n.getRoot(o);if(i.isEmpty&&!e.checkChild(i,"$text")&&e.checkChild(i,"paragraph"))return t.insertElement("paragraph",i),!0}return!1}function jl(t,e,n){const o=n.createContext(t);return!!n.checkChild(o,"paragraph")&&!!n.checkChild(o.push("paragraph"),e)}function Vl(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class Fl extends vl{elementToElement(t){return this.add(Hl(t))}elementToAttribute(t){return this.add(function(t){Gl(t=yl(t));const e=ql(t,!1),n=Ul(t.view),o=n?"element:"+n:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=yl(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;if("class"==e||"style"==e){n={["class"==e?"classes":"styles"]:t.view.value}}else{n={attributes:{[e]:void 0===t.view.value?/[\s\S]*/:t.view.value}}}t.view.name&&(n.name=t.view.name);return t.view=n,e}(t));Gl(t,e);const n=ql(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){return function(t){const e=t.model;t.model=(t,n)=>{const o="string"==typeof e?e:e(t,n);return n.writer.createElement("$marker",{"data-name":o})}}(t=yl(t)),Hl(t)}(t))}dataToMarker(t){return this.add(function(t){(t=yl(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e=Wl(Zl(t,"start")),n=Wl(Zl(t,"end"));return o=>{o.on("element:"+t.view+"-start",e,{priority:t.converterPriority||"normal"}),o.on("element:"+t.view+"-end",n,{priority:t.converterPriority||"normal"});const i=s.get("low"),r=s.get("highest"),a=s.get(t.converterPriority)/r;o.on("element",function(t){return(e,n,o)=>{const i=`data-${t.view}`;function r(e,i){for(const r of i){const i=t.model(r,o),s=o.writer.createElement("$marker",{"data-name":i});o.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(o.consumable.test(n.viewItem,{attributes:i+"-end-after"})||o.consumable.test(n.viewItem,{attributes:i+"-start-after"})||o.consumable.test(n.viewItem,{attributes:i+"-end-before"})||o.consumable.test(n.viewItem,{attributes:i+"-start-before"}))&&(n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor)),o.consumable.consume(n.viewItem,{attributes:i+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-end-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-start-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-end-before").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-start-before").split(",")))}}(t),{priority:i+a})}}(t))}}function Hl(t){const e=Wl(t=yl(t)),n=Ul(t.view),o=n?"element:"+n:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"normal"})}}function Ul(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function Wl(t){const e=new Uo(t.view);return(n,o,i)=>{const r=e.match(o.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(o.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,o.viewItem,i);a&&i.safeInsert(a,o.modelCursor)&&(i.consumable.consume(o.viewItem,s),i.convertChildren(o.viewItem,a),i.updateConversionResult(a,o))}}function Gl(t,e=null){const n=null===e||(t=>t.getAttribute(e)),o="object"!=typeof t.model?t.model:t.model.key,i="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:o,value:i}}function ql(t,e){const n=new Uo(t.view);return(o,i,r)=>{if(!i.modelRange&&e)return;const s=n.match(i.viewItem);if(!s)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!Ul(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=t.model.key,l="function"==typeof t.model.value?t.model.value(i.viewItem,r):t.model.value;if(null===l)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const c=function(t,e,n,o){let i=!1;for(const r of Array.from(t.getItems({shallow:n})))o.schema.checkAttribute(r,e.key)&&(i=!0,r.hasAttribute(e.key)||o.writer.setAttribute(e.key,e.value,r));return i}(i.modelRange,{key:a,value:l},e,r);c&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function Zl(t,e){const n={};return n.view=t.view+"-"+e,n.model=(e,n)=>{const o=e.getAttribute("name"),i=t.model(o,n);return n.writer.createElement("$marker",{"data-name":i})},n}class Yl{constructor(t,e){this.model=t,this.view=new qa(e),this.mapper=new rl,this.downcastDispatcher=new ll({mapper:this.mapper,schema:t.schema});const n=this.model.document,o=n.selection,i=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,i,t),this.downcastDispatcher.convertSelection(o,i,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,o)=>{const i=o.newSelection,r=[];for(const t of i.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:i.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const o=n.mapper.toViewPosition(e.position),i=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(i,{isPhantom:!0}),s=n.writer.createRange(o,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=n.writer,i=o.document.selection;for(const t of i.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);o.setSelection(null)}),{priority:"high"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=[];for(const t of o.getRanges()){const e=n.mapper.toViewRange(t);i.push(e)}n.writer.setSelection(i,{backward:o.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(!o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=n.writer,r=o.getFirstPosition(),s=n.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new Li(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(t){const e="string"==typeof t?t:t.name,n=this.model.markers.get(e);if(!n)throw new l("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:e});this.model.change((()=>{this.model.markers._refresh(n)}))}reconvertItem(t){this.model.change((()=>{this.model.document.differ._refreshItem(t)}))}}ue(Yl,re);class Kl{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new l("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class $l{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new Ql(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const o=t.getClassNames();for(const t of o)e.classes.push(t);const i=t.getStyleNames();for(const t of i)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new $l(t)),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,$l.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=$l.createFrom(n,e);return e}}class Ql{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e in this._consumables)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e in this._consumables)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._revert(e,t[e])}_add(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new l("viewconsumable-invalid-attribute",this);if(o.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!0)}}_test(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=o.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(o.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===o.get(e)&&o.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class Jl{constructor(){this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new Xl(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new Xl(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new l("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new l("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:t.is&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e=null){if(t instanceof tl){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof Qa))throw new l("schema-check-merge-no-element-before",this);if(!(n instanceof Qa))throw new l("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,o])=>{if(!o)return;const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,o])=>{const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof tl)e=t.parent;else{e=(t instanceof il?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new Ya("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new il(t);let n,o;const i=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new Ja({boundaries:il._createIn(i),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(o=new Ja({boundaries:il._createIn(i),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,o)){const e=t.walker==n?"elementEnd":"elementStart",o=t.value;if(o.type==e&&this.isObject(o.item))return il._createOn(o.item);if(this.checkChild(o.nextPosition,"$text"))return new il(o.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}setAllowedAttributes(t,e,n){const o=n.model;for(const[i,r]of Object.entries(e))o.schema.checkAttribute(t,i)&&n.setAttribute(i,r,t)}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))hc(this,n,e);else{const t=il._createIn(n).getPositions();for(const n of t){hc(this,n.nodeBefore||n.parent,e)}}}getAttributesWithProperty(t,e,n){const o={};for(const[i,r]of t.getAttributes()){const t=this.getAttributeProperties(i);void 0!==t[e]&&(void 0!==n&&n!==t[e]||(o[i]=r))}return o}createContext(t){return new Xl(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const o of n)t[o]=tc(e[o],o);for(const e of n)ec(t,e);for(const e of n)nc(t,e);for(const e of n)oc(t,e);for(const e of n)ic(t,e),rc(t,e);for(const e of n)sc(t,e),ac(t,e),lc(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const o=e.getItem(n);if(t.allowIn.includes(o.name)){if(0==n)return!0;{const t=this.getDefinition(o);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,o=t.start;for(const i of t.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(il._createIn(i),e)),this.checkAttribute(i,e)||(n.isEqual(o)||(yield new il(n,o)),n=tl._createAfter(i)),o=tl._createAfter(i);n.isEqual(o)||(yield new il(n,o))}}ue(Jl,re);class Xl{constructor(t){if(t instanceof Xl)return t;"string"==typeof t?t=[t]:Array.isArray(t)||(t=t.getAncestors({includeSelf:!0})),this._items=t.map(uc)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new Xl([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function tc(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const o of t)e[o]=n[o]}}(t,n),cc(t,n,"allowIn"),cc(t,n,"allowContentOf"),cc(t,n,"allowWhere"),cc(t,n,"allowAttributes"),cc(t,n,"allowAttributesOf"),cc(t,n,"allowChildren"),cc(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function ec(t,e){const n=t[e];for(const o of n.allowChildren){const n=t[o];n&&n.allowIn.push(e)}n.allowChildren.length=0}function nc(t,e){for(const n of t[e].allowContentOf)if(t[n]){dc(t,n).forEach((t=>{t.allowIn.push(e)}))}delete t[e].allowContentOf}function oc(t,e){for(const n of t[e].allowWhere){const o=t[n];if(o){const n=o.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function ic(t,e){for(const n of t[e].allowAttributesOf){const o=t[n];if(o){const n=o.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function rc(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const o=t[e];if(o){const t=Object.keys(o).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=o[e])}}delete n.inheritTypesFrom}function sc(t,e){const n=t[e],o=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(o))}function ac(t,e){const n=t[e];for(const o of n.allowIn){t[o].allowChildren.push(e)}}function lc(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function cc(t,e,n){for(const o of t)"string"==typeof o[n]?e[n].push(o[n]):Array.isArray(o[n])&&e[n].push(...o[n])}function dc(t,e){const n=t[e];return(o=t,Object.keys(o).map((t=>o[t]))).filter((t=>t.allowIn.includes(n.name)));var o}function uc(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function hc(t,e,n){for(const o of e.getAttributeKeys())t.checkAttribute(e,o)||n.removeAttribute(o,e)}class mc{constructor(t={}){this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this._emptyElementsToKeep=new Set,this.conversionApi=Object.assign({},t),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.safeInsert=this._safeInsert.bind(this),this.conversionApi.updateConversionResult=this._updateConversionResult.bind(this),this.conversionApi.splitToAllowedParent=this._splitToAllowedParent.bind(this),this.conversionApi.getSplitParts=this._getSplitParts.bind(this),this.conversionApi.keepEmptyElement=this._keepEmptyElement.bind(this)}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const o of new Xl(t)){const t={};for(const e of o.getAttributeKeys())t[e]=o.getAttribute(e);const i=e.createElement(o.name,t);n&&e.append(i,n),n=tl._createAt(i,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=$l.createFrom(t),this.conversionApi.store={};const{modelRange:o}=this._convertItem(t,this._modelCursor),i=e.createDocumentFragment();if(o){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,i);i.markers=function(t,e){const n=new Set,o=new Map,i=il._createIn(t).getItems();for(const t of i)"$marker"==t.name&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),i=e.createPositionBefore(t);o.has(n)?o.get(n).end=i.clone():o.set(n,new il(i.clone())),e.remove(t)}return o}(i,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(t,e){const n=Object.assign({viewItem:t,modelCursor:e,modelRange:null});if(t.is("element")?this.fire("element:"+t.name,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof il))throw new l("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:tl._createAt(e,0);const o=new il(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof il&&(o.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:o,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),o=this.conversionApi.writer;e.modelRange||(e.modelRange=o.createRange(o.createPositionBefore(t),o.createPositionAfter(n[n.length-1])));const i=this._cursorParents.get(t);e.modelCursor=i?o.createPositionAt(i,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:o}=this.conversionApi;let i=n.findAllowedParent(e,t);if(i){if(i===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return jl(e,t,n)?{position:Vl(e,o)}:null;const r=this.conversionApi.writer.split(e,i),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_keepEmptyElement(t){this._emptyElementsToKeep.add(t)}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&!this._emptyElementsToKeep.has(e)&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}ue(mc,k);class gc{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class pc{constructor(t){this.domParser=new DOMParser,this.domConverter=new _s(t,{renderingMode:"data"}),this.htmlWriter=new gc}toData(t){const e=this.domConverter.viewToDom(t,document);return this.htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this.domConverter.domToView(e)}registerRawContentMatcher(t){this.domConverter.registerRawContentMatcher(t)}useFillerType(t){this.domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(t=`${t}`);const e=this.domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),o=e.body.childNodes;for(;o.length>0;)n.appendChild(o[0]);return n}}class fc{constructor(t,e){this.model=t,this.mapper=new rl,this.downcastDispatcher=new ll({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.upcastDispatcher=new mc({schema:t.schema}),this.viewDocument=new Ji(e),this.stylesProcessor=e,this.htmlProcessor=new pc(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Cr(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:o,writer:i})=>{let r=e.modelCursor;if(!o.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!jl(r,"$text",n))return;r=Vl(r,i)}o.consume(e.viewItem);const s=i.createText(e.viewItem.data);i.insert(s,r),e.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.decorate("init"),this.decorate("set"),this.decorate("get"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},Rl)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new l("datacontroller-get-non-existent-root",this);const o=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(o,{ignoreWhitespaces:!0})?this.stringify(o,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,o=this._viewWriter;this.mapper.clearBindings();const i=il._createIn(t),r=new _r(n);this.mapper.bindElements(t,r);const s=t.is("documentFragment")?t.markers:function(t){const e=[],n=t.root.document;if(!n)return new Map;const o=il._createIn(t);for(const t of n.model.markers){const n=t.getRange(),i=n.isCollapsed,r=n.start.isEqual(o.start)||n.end.isEqual(o.end);if(i&&r)e.push([t.name,n]);else{const i=o.getIntersection(n);i&&e.push([t.name,i])}}return e.sort((([t,e],[n,o])=>{if("after"!==e.end.compareWith(o.start))return 1;if("before"!==e.start.compareWith(o.end))return-1;switch(e.start.compareWith(o.start)){case"before":return 1;case"after":return-1;default:switch(e.end.compareWith(o.end)){case"before":return 1;case"after":return-1;default:return n.localeCompare(t)}}})),new Map(e)}(t);return this.downcastDispatcher.convert(i,s,o,e),r}init(t){if(this.model.document.version)throw new l("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new l("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(t=>{for(const n of Object.keys(e)){const o=this.model.document.getRoot(n);t.insert(this.parse(e[n],o),o,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new l("datacontroller-set-non-existent-root",this);this.model.enqueueChange(e.batchType||{},(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const o=this.model.document.getRoot(e);t.remove(t.createRangeIn(o)),t.insert(this.parse(n[e],o),o,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}ue(fc,re);class kc{constructor(t,e){this._helpers=new Map,this._downcast=Mo(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Mo(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new l("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new l("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of bc(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of bc(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of bc(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new l("conversion-group-exists",this);const o=n?new xl(e):new Fl(e);this._helpers.set(t,o)}}function*bc(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},o=t.view[e],i=t.upcastAlso?t.upcastAlso[e]:void 0;yield*wc(n,o,i)}else yield*wc(t.model,t.view,t.upcastAlso)}function*wc(t,e,n){if(yield{model:t,view:e},n)for(const e of Mo(n))yield{model:t,view:e}}class Ac{constructor(t={}){"string"==typeof t&&(t="transparent"===t?{isUndoable:!1}:{},c("batch-constructor-deprecated-string-type"));const{isUndoable:e=!0,isLocal:n=!0,isUndo:o=!1,isTyping:i=!1}=t;this.operations=[],this.isUndoable=e,this.isLocal=n,this.isUndo=o,this.isTyping=i}get type(){return c("batch-type-deprecated"),"default"}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class _c{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t){return new this(t.baseVersion)}}class Cc{constructor(t){this.markers=new Map,this._children=new $a,t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"model:documentFragment"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(Qa.fromJSON(n)):e.push(Ya.fromJSON(n));return new Cc(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new Ya(t)];Do(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Ya(t):t instanceof Ka?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}function vc(t,e){const n=(e=Ec(e)).reduce(((t,e)=>t+e.offsetSize),0),o=t.parent;Sc(t);const i=t.index;return o._insertChild(i,e),Dc(o,i+e.length),Dc(o,i),new il(t,t.getShiftedBy(n))}function yc(t){if(!t.isFlat)throw new l("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Sc(t.start),Sc(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Dc(e,t.start.index),n}function xc(t,e){if(!t.isFlat)throw new l("operation-utils-move-range-not-flat",this);const n=yc(t);return vc(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Ec(t){const e=[];t instanceof Array||(t=[t]);for(let n=0;nt.maxOffset)throw new l("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new zc(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new tl(t,[0]);return new Nc(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),vc(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(Qa.fromJSON(e)):n.push(Ya.fromJSON(e));const o=new zc(tl.fromJSON(t.position,e),n,t.baseVersion);return o.shouldReceiveAttributes=t.shouldReceiveAttributes,o}}class Pc extends _c{constructor(t,e,n,o,i,r){super(r),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=i,this._markers=o}get type(){return"marker"}clone(){return new Pc(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Pc(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){const t=this.newRange?"_set":"_remove";this._markers[t](this.name,this.newRange,!0,this.affectsData)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Pc(t.name,t.oldRange?il.fromJSON(t.oldRange,e):null,t.newRange?il.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Lc extends _c{constructor(t,e,n,o){super(o),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Lc(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Lc(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof Qa))throw new l("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new l("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Lc(tl.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class Oc extends _c{constructor(t,e,n,o,i){super(i),this.root=t,this.key=e,this.oldValue=n,this.newValue=o}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new Oc(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new Oc(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new l("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new l("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new l("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new l("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new Oc(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Rc extends _c{constructor(t,e,n,o,i){super(i),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=o.clone()}get type(){return"merge"}get deletionPosition(){return new tl(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new il(this.sourcePosition,t)}clone(){return new this.constructor(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new tl(this.sourcePosition.root,e)._getTransformedByMergeOperation(this);return new jc(t,this.howMany,n,this.graveyardPosition,this.baseVersion+1)}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new l("merge-operation-source-position-invalid",this);if(!e.parent)throw new l("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new l("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;xc(il._createIn(t),this.targetPosition),xc(il._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=tl.fromJSON(t.sourcePosition,e),o=tl.fromJSON(t.targetPosition,e),i=tl.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,o,i,t.baseVersion)}}class jc extends _c{constructor(t,e,n,o,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=o?o.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new tl(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new il(this.splitPosition,t)}clone(){return new this.constructor(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new tl(t,[0]);return new Rc(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof il)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof il))throw new l("writer-move-invalid-range",this);if(!t.isFlat)throw new l("writer-move-range-not-flat",this);const o=tl._createAt(e,n);if(o.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!qc(t.root,o.root))throw new l("writer-move-different-document",this);const i=t.root.document?t.root.document.version:null,r=new Nc(t.start,t.end.offset-t.start.offset,o,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof il?t:il._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),Gc(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof Qa))throw new l("writer-merge-no-element-before",this);if(!(n instanceof Qa))throw new l("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(t,e,n){return this.model.createSelection(t,e,n)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(il._createIn(n),tl._createAt(e,"end")),this.remove(n)}_merge(t){const e=tl._createAt(t.nodeBefore,"end"),n=tl._createAt(t.nodeAfter,0),o=t.root.document.graveyard,i=new tl(o,[0]),r=t.root.document.version,s=new Rc(n,t.nodeAfter.maxOffset,e,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof Qa))throw new l("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,o=new Lc(tl._createBefore(t),t.name,e,n);this.batch.addOperation(o),this.model.applyOperation(o)}split(t,e){this._assertWriterUsedCorrectly();let n,o,i=t.parent;if(!i.parent)throw new l("writer-split-element-no-parent",this);if(e||(e=i.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new l("writer-split-invalid-limit-element",this);do{const e=i.root.document?i.root.document.version:null,r=i.maxOffset-t.offset,s=jc.getInsertionPosition(t),a=new jc(t,r,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||o||(n=i,o=t.parent.nextSibling),i=(t=this.createPositionAfter(t.parent)).parent}while(i!==e);return{position:t,range:new il(tl._createAt(n,"end"),tl._createAt(o,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new l("writer-wrap-range-not-flat",this);const n=e instanceof Qa?e:new Qa(e);if(n.childCount>0)throw new l("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new l("writer-wrap-element-attached",this);this.insert(n,t.start);const o=new il(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(o,tl._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new l("writer-unwrap-element-no-parent",this);this.move(il._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new l("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,o=e.range,i=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new l("writer-addmarker-marker-exists",this);if(!o)throw new l("writer-addmarker-no-range",this);return n?(Wc(this,t,null,o,i),this.model.markers.get(t)):this.model.markers._set(t,o,n,i)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,o=this.model.markers.get(n);if(!o)throw new l("writer-updatemarker-marker-not-exists",this);if(!e)return c("writer-updatemarker-reconvert-using-editingcontroller",{markerName:n}),void this.model.markers._refresh(o);const i="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:o.affectsData;if(!i&&!e.range&&!r)throw new l("writer-updatemarker-wrong-options",this);const a=o.getRange(),d=e.range?e.range:a;i&&e.usingOperation!==o.managedUsingOperations?e.usingOperation?Wc(this,n,null,d,s):(Wc(this,n,a,null,s),this.model.markers._set(n,d,void 0,s)):o.managedUsingOperations?Wc(this,n,a,d,s):this.model.markers._set(n,d,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new l("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);Wc(this,e,n.getRange(),null,n.affectsData)}setSelection(t,e,n){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(t,e,n)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of Ho(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const o=Al._getStoreAttributeKey(t);this.setAttribute(o,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=Al._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new l("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const o=n.getRange();let i=!1;if("move"===t)i=e.containsPosition(o.start)||e.start.isEqual(o.start)||e.containsPosition(o.end)||e.end.isEqual(o.end);else{const t=e.nodeBefore,n=e.nodeAfter,r=o.start.parent==t&&o.start.isAtEnd,s=o.end.parent==n&&0==o.end.offset,a=o.end.nodeAfter==n,l=o.start.nodeAfter==n;i=r||s||a||l}i&&this.updateMarker(n.name,{range:o})}}}function Hc(t,e,n,o){const i=t.model,r=i.document;let s,a,l,c=o.start;for(const t of o.getWalker({shallow:!0}))l=t.item.getAttribute(e),s&&a!=l&&(a!=n&&d(),c=s),s=t.nextPosition,a=l;function d(){const o=new il(c,s),l=o.root.document?r.version:null,d=new Tc(o,e,a,n,l);t.batch.addOperation(d),i.applyOperation(d)}s instanceof tl&&s!=c&&a!=n&&d()}function Uc(t,e,n,o){const i=t.model,r=i.document,s=o.getAttribute(e);let a,l;if(s!=n){if(o.root===o){const t=o.document?r.version:null;l=new Oc(o,e,s,n,t)}else{a=new il(tl._createBefore(o),t.createPositionAfter(o));const i=a.root.document?r.version:null;l=new Tc(a,e,s,n,i)}t.batch.addOperation(l),i.applyOperation(l)}}function Wc(t,e,n,o,i){const r=t.model,s=r.document,a=new Pc(e,n,o,r.markers,i,s.version);t.batch.addOperation(a),r.applyOperation(a)}function Gc(t,e,n,o){let i;if(t.root.document){const n=o.document,r=new tl(n.graveyard,[0]);i=new Nc(t,e,r,n.version)}else i=new Bc(t,e);n.addOperation(i),o.applyOperation(i)}function qc(t,e){return t===e||t instanceof Vc&&e instanceof Vc}class Zc{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null,this._refreshedItems=new Set}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}bufferOperation(t){switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),n=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),n||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=il._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}break}case"split":{const e=t.splitPosition.parent;this._isInInsertedElement(e)||this._markRemove(e,t.splitPosition.offset,t.howMany),this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1);break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const n=t.graveyardPosition.parent;this._markInsert(n,t.graveyardPosition.offset,1);const o=t.targetPosition.parent;this._isInInsertedElement(o)||this._markInsert(o,t.targetPosition.offset,e.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n){const o=this._changedMarkers.get(t);o?(o.newMarkerData=n,null==o.oldMarkerData.range&&null==n.range&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{newMarkerData:n,oldMarkerData:e})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldMarkerData.range&&t.push({name:e,range:n.oldMarkerData.range});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newMarkerData.range&&t.push({name:e,range:n.newMarkerData.range});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((([t,e])=>({name:t,data:{oldRange:e.oldMarkerData.range,newRange:e.newMarkerData.range}})))}hasDataChanges(){if(this._changesInElement.size>0)return!0;for(const{newMarkerData:t,oldMarkerData:e}of this._changedMarkers.values()){if(t.affectsData!==e.affectsData)return!0;if(t.affectsData){const n=t.range&&!e.range,o=!t.range&&e.range,i=t.range&&e.range&&!t.range.isEqual(e.range);if(n||o||i)return!0}}return!1}getChanges(t={includeChangesInGraveyard:!1}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e,this._cachedChanges=e.filter($c),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._refreshedItems=new Set,this._cachedChanges=null}_refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize),this._refreshedItems.add(t);const e=il._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._cachedChanges=null}_markInsert(t,e,n){const o={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o)}_markRemove(t,e,n){const o={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(o>i){const t={type:"attribute",offset:i,howMany:o-i,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseti?(t.nodesToHandle=o-i,t.offset=i):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const i={type:"attribute",offset:n.offset,howMany:o-n.offset,count:this._changeCount++};this._handleChange(i,e),e.push(i),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&o<=i?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&o>=i&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:tl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:tl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const o=[];n=new Map(n);for(const[i,r]of e){const e=n.has(i)?n.get(i):null;e!==r&&o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(i)}for(const[e,i]of n)o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return o}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),o=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&o>=t.offset&&oo){for(let e=0;ethis._version+1&&this._gaps.set(this._version,t),this._version=t}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(t){if(t.baseVersion!==this.version)throw new l("model-document-history-addoperation-incorrect-version",this,{operation:t,historyVersion:this.version});this._operations.push(t),this._version++,this._baseVersionToOperationIndex.set(t.baseVersion,this._operations.length-1)}getOperations(t,e=this.version){if(!this._operations.length)return[];const n=this._operations[0];void 0===t&&(t=n.baseVersion);let o=e-1;for(const[e,n]of this._gaps)t>e&&te&&othis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(t);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(o);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(t){const e=this._baseVersionToOperationIndex.get(t);if(void 0!==e)return this._operations[e]}setOperationAsUndone(t,e){this._undoPairs.set(e,t),this._undoneOperations.add(t)}isUndoingOperation(t){return this._undoPairs.has(t)}isUndoneOperation(t){return this._undoneOperations.has(t)}getUndoneOperation(t){return this._undoPairs.get(t)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}function Jc(t,e){return!!(n=t.charAt(e-1))&&1==n.length&&/[\ud800-\udbff]/.test(n)&&function(t){return!!t&&1==t.length&&/[\udc00-\udfff]/.test(t)}(t.charAt(e));var n}function Xc(t,e){return!!(n=t.charAt(e))&&1==n.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);var n}const td=function(){const t=/\p{Regional_Indicator}{2}/u.source,e="(?:"+[/\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u,/\p{Emoji}\u{FE0F}?\u{20E3}/u,/\p{Emoji}\u{FE0F}/u,/(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u].map((t=>t.source)).join("|")+")";return new RegExp(`${t}|${e}(?:‍${e})*`,"ug")}();function ed(t,e){const n=String(t).matchAll(td);return Array.from(n).some((t=>t.index{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.history.addOperation(n)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,o,i)=>{const r={...e.getData(),range:o};this.differ.bufferMarkerChange(e.name,i,r),null===n&&e.on("change",((t,n)=>{const o=e.getData();this.differ.bufferMarkerChange(e.name,{...o,range:n},o)}))}))}get version(){return this.history.version}set version(t){this.history.version=t}get graveyard(){return this.getRoot(nd)}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new l("model-document-createroot-name-exists",this,{name:e});const n=new Vc(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,(t=>t.rootName)).filter((t=>t!=nd))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=Ro(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,o=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(o)||e.createRange(o)}_validateSelectionRange(t){return id(t.start)&&id(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function id(t){const e=t.textNode;if(e){const n=e.data,o=t.offset-e.startOffset;return!Jc(n,o)&&!Xc(n,o)}return!0}ue(od,k);class rd{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){const e=t instanceof sd?t.name:t;return this._markers.has(e)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,o=!1){const i=t instanceof sd?t.name:t;if(i.includes(","))throw new l("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const t=r.getData(),s=r.getRange();let a=!1;return s.isEqual(e)||(r._attachLiveRange(fl.fromRange(e)),a=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,a=!0),"boolean"==typeof o&&o!=r.affectsData&&(r._affectsData=o,a=!0),a&&this.fire("update:"+i,r,s,e,t),r}const s=fl.fromRange(e),a=new sd(i,s,n,o);return this._markers.set(i,a),this.fire("update:"+i,a,null,e,{...a.getData(),range:null}),a}_remove(t){const e=t instanceof sd?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire("update:"+e,n,n.getRange(),null,n.getData()),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof sd?t.name:t,n=this._markers.get(e);if(!n)throw new l("markercollection-refresh-marker-not-exists",this);const o=n.getRange();this.fire("update:"+e,n,o,o,n.getData())}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}ue(rd,k);class sd{constructor(t,e,n,o){this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=o}get managedUsingOperations(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.toRange()}is(t){return"marker"===t||"model:marker"===t}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}ue(sd,k);class ad extends _c{get type(){return"noop"}clone(){return new ad(this.baseVersion)}getReversed(){return new ad(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const ld={};ld[Tc.className]=Tc,ld[zc.className]=zc,ld[Pc.className]=Pc,ld[Nc.className]=Nc,ld[ad.className]=ad,ld[_c.className]=_c,ld[Lc.className]=Lc,ld[Oc.className]=Oc,ld[jc.className]=jc,ld[Rc.className]=Rc;class cd extends tl{constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new l("model-liveposition-root-not-rootelement",t);dd.call(this)}detach(){this.stopListening()}is(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t}toPosition(){return new tl(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function dd(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&ud.call(this,n)}),{priority:"low"})}function ud(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}ue(cd,k);class hd{constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0),this._firstNode=null,this._lastNode=null,this._lastAutoParagraph=null,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new l("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this.nodeToSelect?il._createOn(this.nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new il(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=cd.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new l("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this.nodeToSelect=t:this.nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=cd.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=cd.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof Qa))return;if(!this._canMergeLeft(t))return;const e=cd._createBefore(t);e.stickiness="toNext";const n=cd.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=cd._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=cd._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof Qa))return;if(!this._canMergeRight(t))return;const e=cd._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new l("insertcontent-invalid-insertion-position",this);this.position=tl._createAt(e.nodeBefore,"end");const n=cd.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=cd._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=cd._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof Qa&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof Qa&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function md(t,e,n="auto"){const o=t.getSelectedElement();if(o&&e.schema.isObject(o)&&!e.schema.isInline(o))return["before","after"].includes(n)?e.createRange(e.createPositionAt(o,n)):e.createRangeOn(o);const i=Fa(t.getSelectedBlocks());if(!i)return e.createRange(t.focus);if(i.isEmpty)return e.createRange(e.createPositionAt(i,0));const r=e.createPositionAfter(i);return t.focus.isTouching(r)?e.createRange(r):e.createRange(e.createPositionBefore(i))}function gd(t,e,n,o,i={}){if(!t.schema.isObject(e))throw new l("insertobject-element-not-an-object",t,{object:e});let r;r=n?n.is("selection")?n:t.createSelection(n,o):t.document.selection;let s=r;i.findOptimalPosition&&t.schema.isBlock(e)&&(s=t.createSelection(md(r,t,i.findOptimalPosition)));const a=Fa(r.getSelectedBlocks()),c={};return a&&Object.assign(c,t.schema.getAttributesWithProperty(a,"copyOnReplace",!0)),t.change((n=>{s.isCollapsed||t.deleteContent(s,{doNotAutoparagraph:!0});let o=e;const r=s.anchor.parent;!t.schema.checkChild(r,e)&&t.schema.checkChild(r,"paragraph")&&t.schema.checkChild("paragraph",e)&&(o=n.createElement("paragraph"),n.insert(e,o)),t.schema.setAllowedAttributes(o,c,n);const a=t.insertContent(o,s);return a.isCollapsed||i.setSelection&&function(t,e,n,o){const i=t.model;if("after"==n){let n=e.nextSibling;!(n&&i.schema.checkChild(n,"$text"))&&i.schema.checkChild(e.parent,"paragraph")&&(n=t.createElement("paragraph"),i.schema.setAllowedAttributes(n,o,t),i.insertContent(n,t.createPositionAfter(e))),n&&t.setSelection(n,0)}else{if("on"!=n)throw new l("insertobject-invalid-place-parameter-value",i);t.setSelection(e,"on")}}(n,e,i.setSelection,c),a}))}function pd(t,e,n={}){if(e.isCollapsed)return;const o=e.getFirstRange();if("$graveyard"==o.root.rootName)return;const i=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const o=e.getFirstRange();if(o.start.parent==o.end.parent)return!1;return t.checkChild(n,"paragraph")}(i,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),wd(t,t.createPositionAt(n,0),e)}(t,e);const r={};if(!n.doNotAutoparagraph){const t=e.getSelectedElement();t&&Object.assign(r,i.getAttributesWithProperty(t,"copyOnReplace",!0))}const[s,a]=function(t){const e=t.root.document.model,n=t.start;let o=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,o=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of o){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(o);if(n&&o.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const i=n.getLastPosition(),r=e.createRange(i,o);e.hasContent(r,{ignoreMarkers:!0})||(o=i)}}return[cd.fromPosition(n,"toPrevious"),cd.fromPosition(o,"toNext")]}(o);s.isTouching(a)||t.remove(t.createRange(s,a)),n.leaveUnmerged||(!function(t,e,n){const o=t.model;if(!bd(t.model.schema,e,n))return;const[i,r]=function(t,e){const n=t.getAncestors(),o=e.getAncestors();let i=0;for(;n[i]&&n[i]==o[i];)i++;return[n[i],o[i]]}(e,n);if(!i||!r)return;!o.hasContent(i,{ignoreMarkers:!0})&&o.hasContent(r,{ignoreMarkers:!0})?kd(t,e,n,i.parent):fd(t,e,n,i.parent)}(t,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),t)),Ad(t,e,s),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),o=t.checkChild(e,"paragraph");return!n&&o}(i,s)&&wd(t,s,e,r),s.detach(),a.detach()}))}function fd(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(r,e),t.merge(e);n.parent.isEmpty;){const e=n.parent;n=t.createPositionBefore(e),t.remove(e)}bd(t.model.schema,e,n)&&fd(t,e,n,o)}}function kd(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(i,n);e.parent.isEmpty;){const n=e.parent;e=t.createPositionBefore(n),t.remove(n)}n=t.createPositionBefore(r),function(t,e){const n=e.nodeBefore,o=e.nodeAfter;n.name!=o.name&&t.rename(n,o.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(o.getAttributes()),n),t.merge(e)}(t,n),bd(t.model.schema,e,n)&&kd(t,e,n,o)}}function bd(t,e,n){const o=e.parent,i=n.parent;return o!=i&&(!t.isLimit(o)&&!t.isLimit(i)&&function(t,e,n){const o=new il(t,e);for(const t of o.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function wd(t,e,n,o={}){const i=t.createElement("paragraph");t.model.schema.setAllowedAttributes(i,o,t),t.insert(i,e),Ad(t,n,t.createPositionAt(i,0))}function Ad(t,e,n){e instanceof Al?t.setSelection(n):e.setTo(n)}const _d=' ,.?!:;"-()';function Cd(t,e){const{isForward:n,walker:o,unit:i,schema:r,treatEmojiAsSingleUnit:s}=t,{type:a,item:l,nextPosition:c}=e;if("text"==a)return"word"===t.unit?function(t,e){let n=t.position.textNode;if(n){let o=t.position.offset-n.startOffset;for(;!yd(n.data,o,e)&&!xd(n,o,e);){t.next();const i=e?t.position.nodeAfter:t.position.nodeBefore;if(i&&i.is("$text")){const o=i.data.charAt(e?0:i.data.length-1);_d.includes(o)||(t.next(),n=t.position.textNode)}o=t.position.offset-n.startOffset}}return t.position}(o,n):function(t,e,n){const o=t.position.textNode;if(o){const i=o.data;let r=t.position.offset-o.startOffset;for(;Jc(i,r)||"character"==e&&Xc(i,r)||n&&ed(i,r);)t.next(),r=t.position.offset-o.startOffset}return t.position}(o,i,s);if(a==(n?"elementStart":"elementEnd")){if(r.isSelectable(l))return tl._createAt(l,n?"after":"before");if(r.checkChild(c,"$text"))return c}else{if(r.isLimit(l))return void o.skip((()=>!0));if(r.checkChild(c,"$text"))return c}}function vd(t,e){const n=t.root,o=tl._createAt(n,e?"end":0);return e?new il(t,o):new il(o,t)}function yd(t,e,n){const o=e+(n?0:-1);return _d.includes(t.charAt(o))}function xd(t,e,n){return e===(n?t.endOffset:0)}function Ed(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}function Dd(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,o=e.schema,i=[];let r=!1;for(const t of n.getRanges()){const e=Sd(t,o);e&&!e.isEqual(t)?(i.push(e),r=!0):i.push(t)}r&&t.setSelection(function(t){const e=[...t],n=new Set;let o=1;for(;o!n.has(e)))}(i),{backward:n.isBackward})}(e,t)))}function Sd(t,e){return t.isCollapsed?function(t,e){const n=t.start,o=e.getNearestSelectionRange(n);if(!o){const t=n.getAncestors().reverse().find((t=>e.isObject(t)));return t?il._createOn(t):null}if(!o.isCollapsed)return o;const i=o.start;if(n.isEqual(i))return null;return new il(i)}(t,e):function(t,e){const{start:n,end:o}=t,i=e.checkChild(n,"$text"),r=e.checkChild(o,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(o);if(s===a){if(i&&r)return null;if(function(t,e,n){const o=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),i=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return o||i}(n,o,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),i=o.nodeBefore&&e.isSelectable(o.nodeBefore)?null:e.getNearestSelectionRange(o,"backward"),r=t?t.start:n,s=i?i.end:o;return new il(r,s)}}const l=s&&!s.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const t=n.nodeAfter&&o.nodeBefore&&n.nodeAfter.parent===o.nodeBefore.parent,i=l&&(!t||!Md(n.nodeAfter,e)),r=c&&(!t||!Md(o.nodeBefore,e));let d=n,u=o;return i&&(d=tl._createBefore(Id(s,e))),r&&(u=tl._createAfter(Id(a,e))),new il(d,u)}return null}(t,e)}function Id(t,e){let n=t,o=n;for(;e.isLimit(o)&&o.parent;)n=o,o=o.parent;return n}function Md(t,e){return t&&e.isSelectable(t)}class Td{constructor(){this.markers=new rd,this.document=new od(this),this.schema=new Jl,this._pendingChanges=[],this._currentWriter=null,["insertContent","insertObject","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),Dd(this),this.document.registerPostFixer(Rl)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new Ac,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){l.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{t?"function"==typeof t?(e=t,t=new Ac):t instanceof Ac||(t=new Ac(t)):t=new Ac,this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){l.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,o){return t.change((i=>{let r;r=n?n instanceof ul||n instanceof Al?n:i.createSelection(n,o):t.document.selection,r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});const s=new hd(t,i,r.anchor);let a;a=e.is("documentFragment")?e.getChildren():[e],s.handleNodes(a);const l=s.getSelectionRange();l&&(r instanceof Al?i.setSelection(l):r.setTo(l));const c=s.getAffectedRange()||t.createRange(r.anchor);return s.destroy(),c}))}(this,t,e,n)}insertObject(t,e,n,o){return gd(this,t,e,n,o)}deleteContent(t,e){pd(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const o=t.schema,i="backward"!=n.direction,r=n.unit?n.unit:"character",s=!!n.treatEmojiAsSingleUnit,a=e.focus,l=new Ja({boundaries:vd(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),c={walker:l,schema:o,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=l.next();){if(d.done)return;const n=Cd(c,d.value);if(n)return void(e instanceof Al?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),o=e.getFirstRange();if(!o||o.isCollapsed)return n;const i=o.start.root,r=o.start.getCommonPath(o.end),s=i.getNodeByPath(r);let a;a=o.start.parent==o.end.parent?o:t.createRange(t.createPositionAt(s,o.start.path[r.length]),t.createPositionAt(s,o.end.path[r.length]+1));const l=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=o){const e=o._getTransformedByMove(a.start,t.createPositionAt(n,0),l)[0],i=t.createRange(t.createPositionAt(n,0),e.start);Ed(t.createRange(e.end,t.createPositionAt(n,"end")),t),Ed(i,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof Qa?il._createIn(t):t;if(n.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=e;if(!i)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new tl(t,e,n)}createPositionAt(t,e){return tl._createAt(t,e)}createPositionAfter(t){return tl._createAfter(t)}createPositionBefore(t){return tl._createBefore(t)}createRange(t,e){return new il(t,e)}createRangeIn(t){return il._createIn(t)}createRangeOn(t){return il._createOn(t)}createSelection(t,e,n){return new ul(t,e,n)}createBatch(t){return new Ac(t)}createOperationFromJSON(t){return class{static fromJSON(t,e){return ld[t.__className].fromJSON(t,e)}}.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];for(this.fire("_beforeChanges");this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Fc(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}return this.fire("_afterChanges"),t}}ue(Td,re);class Bd extends Ua{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class Nd{constructor(t={}){const e=t.language||this.constructor.defaultConfig&&this.constructor.defaultConfig.language;this._context=t.context||new Po({language:e}),this._context._addEditor(this,!t.context);const n=Array.from(this.constructor.builtinPlugins||[]);this.config=new yo(t,this.constructor.defaultConfig),this.config.define("plugins",n),this.config.define(this._context._getEditorConfig()),this.plugins=new Io(this,n,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new Kl,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new Td;const o=new Di;this.data=new fc(this.model,o),this.editing=new Yl(this.model,o),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new kc([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Bd(this),this.keystrokes.listenTo(this.editing.view.document)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(t){throw new l("editor-isreadonly-has-no-setter")}enableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new l("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)||(this._readOnlyLocks.add(t),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new l("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)&&(this._readOnlyLocks.delete(t),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],o=t.get("extraPlugins")||[],i=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(o),n,i)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(...t){try{return this.commands.execute(...t)}catch(t){l.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}ue(Nd,re);class zd{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(Pd(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new l("componentfactory-item-missing",this,{name:t});return this._components.get(Pd(t)).callback(this.editor.locale)}has(t){return this._components.has(Pd(t))}}function Pd(t){return String(t).toLowerCase()}class Ld{constructor(t){this.editor=t,this.componentFactory=new zd(t),this.focusTracker=new Ha,this.set("viewportOffset",this._readViewportOffsetFromConfig()),this._editableElementsMap=new Map,this.listenTo(t.editing.view.document,"layoutChanged",(()=>this.update()))}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_readViewportOffsetFromConfig(){const t=this.editor,e=t.config.get("ui.viewportOffset");if(e)return e;const n=t.config.get("toolbar.viewportTopOffset");return n?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:n}):{top:0}}}ue(Ld,re);const Od={setData(t){this.data.set(t)},getData(t){return this.data.get(t)}},Rd=Od;const jd={updateSourceElement(){if(!this.sourceElement)throw new l("editor-missing-sourceelement",this);var t,e;t=this.sourceElement,e=this.data.get(),t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}};class Vd extends Lo{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new So({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new l("pendingactions-add-invalid-message",this);const e=Object.create(re);return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const Fd='',Hd={cancel:'',caption:'',check:'',cog:'',eraser:'',lowVision:'',image:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:Fd};function Ud({emitter:t,activator:e,callback:n,contextElements:o}){t.listenTo(document,"mousedown",((t,i)=>{if(!e())return;const r="function"==typeof i.composedPath?i.composedPath():[];for(const t of o)if(t.contains(i.target)||r.includes(t))return;n()}))}function Wd(t){t.set("_isCssTransitionsDisabled",!1),t.disableCssTransitions=()=>{t._isCssTransitionsDisabled=!0},t.enableCssTransitions=()=>{t._isCssTransitionsDisabled=!1},t.extendTemplate({attributes:{class:[t.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function Gd({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}class qd extends So{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new l("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const o of t)n.delegate(o).to(e);this.on("add",((n,o)=>{for(const n of t)o.delegate(n).to(e)})),this.on("remove",((n,o)=>{for(const n of t)o.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}var Zd=n(6150),Yd={attributes:{"data-cke":!0}};Yd.setAttributes=os(),Yd.insert=es().bind(null,"head"),Yd.domAPI=Xr(),Yd.insertStyleElement=rs();Qr()(Zd.Z,Yd);Zd.Z&&Zd.Z.locals&&Zd.Z.locals;class Kd{constructor(t){this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new So,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=$d.bind(this,this)}createCollection(t){const e=new qd(t);return this._viewCollections.add(e),e}registerChild(t){Do(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){Do(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new $d(t)}extendTemplate(t){$d.extend(this.template,t)}render(){if(this.isRendered)throw new l("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}ue(Kd,Ds),ue(Kd,re);class $d{constructor(t){Object.assign(this,su(ru(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new l("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)hu(n)?yield n:mu(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,o)=>new Jd({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:o}),if:(n,o,i)=>new Xd({observable:t,emitter:e,attribute:n,valueIfTrue:o,callback:i})}}static extend(t,e){if(t._isRendered)throw new l("template-extend-render",[this,t]);du(t,su(ru(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new l("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),tu(this.text)?this._bindToObservable({schema:this.text,updater:nu(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){let e,n,o,i;if(!this.attributes)return;const r=t.node,s=t.revertData;for(e in this.attributes)if(o=r.getAttribute(e),n=this.attributes[e],s&&(s.attributes[e]=o),i=x(n[0])&&n[0].ns?n[0].ns:null,tu(n)){const a=i?n[0].value:n;s&&pu(e)&&a.unshift(o),this._bindToObservable({schema:a,updater:ou(r,e,i),data:t})}else"style"==e&&"string"!=typeof n[0]?this._renderStyleAttribute(n[0],t):(s&&o&&pu(e)&&n.unshift(o),n=n.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(lu,""),uu(n)||r.setAttributeNS(i,e,n))}_renderStyleAttribute(t,e){const n=e.node;for(const o in t){const i=t[o];tu(i)?this._bindToObservable({schema:[i],updater:iu(n,o),data:e}):n.style[o]=i}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,o=t.isApplying;let i=0;for(const r of this.children)if(gu(r)){if(!o){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(hu(r))o||(r.isRendered||r.render(),n.appendChild(r.element));else if(Kr(r))n.appendChild(r);else if(o){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({node:n.childNodes[i++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[o,i]=e.split("@");return n.activateDomEventListener(o,i,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const o=n.revertData;eu(t,e,n);const i=t.filter((t=>!uu(t))).filter((t=>t.observable)).map((o=>o.activateAttributeListener(t,e,n)));o&&o.bindings.push(i)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)t.textContent=e.text;else{for(const n in e.attributes){const o=e.attributes[n];null===o?t.removeAttribute(n):t.setAttribute(n,o)}for(let n=0;neu(t,e,n);return this.emitter.listenTo(this.observable,"change:"+this.attribute,o),()=>{this.emitter.stopListening(this.observable,"change:"+this.attribute,o)}}}class Jd extends Qd{activateDomEventListener(t,e,n){const o=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,o),()=>{this.emitter.stopListening(n.node,t,o)}}}class Xd extends Qd{getValue(t){return!uu(super.getValue(t))&&(this.valueIfTrue||!0)}}function tu(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(tu):t instanceof Qd)}function eu(t,e,{node:n}){let o=function(t,e){return t.map((t=>t instanceof Qd?t.getValue(e):t))}(t,n);o=1==t.length&&t[0]instanceof Xd?o[0]:o.reduce(lu,""),uu(o)?e.remove():e.set(o)}function nu(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function ou(t,e,n){return{set(o){t.setAttributeNS(n,e,o)},remove(){t.removeAttributeNS(n,e)}}}function iu(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function ru(t){return Co(t,(t=>{if(t&&(t instanceof Qd||mu(t)||hu(t)||gu(t)))return t}))}function su(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=Mo(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)au(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=Mo(t[e].value)),au(t,e)}(t.attributes);const e=[];if(t.children)if(gu(t.children))e.push(t.children);else for(const n of t.children)mu(n)||hu(n)||Kr(n)?e.push(n):e.push(new $d(n));t.children=e}return t}function au(t,e){t[e]=Mo(t[e])}function lu(t,e){return uu(e)?t:uu(t)?e:`${t} ${e}`}function cu(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function du(t,e){if(e.attributes&&(t.attributes||(t.attributes={}),cu(t.attributes,e.attributes)),e.eventListeners&&(t.eventListeners||(t.eventListeners={}),cu(t.eventListeners,e.eventListeners)),e.text&&t.text.push(...e.text),e.children&&e.children.length){if(t.children.length!=e.children.length)throw new l("ui-template-extend-children-mismatch",t);let n=0;for(const o of e.children)du(t.children[n++],o)}}function uu(t){return!t&&0!==t}function hu(t){return t instanceof Kd}function mu(t){return t instanceof $d}function gu(t){return t instanceof qd}function pu(t){return"class"==t||"style"==t}class fu extends qd{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new $d({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=Ca(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}var ku=n(1174),bu={attributes:{"data-cke":!0}};bu.setAttributes=os(),bu.insert=es().bind(null,"head"),bu.domAPI=Xr(),bu.insertStyleElement=rs();Qr()(ku.Z,bu);ku.Z&&ku.Z.locals&&ku.Z.locals;class wu extends Kd{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}var Au=n(9948),_u={attributes:{"data-cke":!0}};_u.setAttributes=os(),_u.insert=es().bind(null,"head"),_u.domAPI=Xr(),_u.insertStyleElement=rs();Qr()(Au.Z,_u);Au.Z&&Au.Z.locals&&Au.Z.locals;class Cu extends Kd{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",(t=>"ck-tooltip_"+t)),e.if("text","ck-hidden",(t=>!t.trim()))]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}var vu=n(4499),yu={attributes:{"data-cke":!0}};yu.setAttributes=os(),yu.insert=es().bind(null,"head"),yu.domAPI=Xr(),yu.insertStyleElement=rs();Qr()(vu.Z,yu);vu.Z&&vu.Z.locals&&vu.Z.locals;class xu extends Kd{constructor(t){super(t);const e=this.bindTemplate,n=r();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new wu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("isVisible","ck-hidden",(t=>!t)),e.to("isOn",(t=>t?"ck-on":"ck-off")),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",(t=>t||"button")),tabindex:e.to("tabindex"),"aria-labelledby":`ck-editor__aria-label_${n}`,"aria-disabled":e.if("isEnabled",!0,(t=>!t)),"aria-pressed":e.to("isOn",(t=>!!this.isToggleable&&String(t)))},children:this.children,on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createTooltipView(){const t=new Cu;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new Kd,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:`ck-editor__aria-label_${t}`},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new Kd;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>gr(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=gr(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var Eu=n(9681),Du={attributes:{"data-cke":!0}};Du.setAttributes=os(),Du.insert=es().bind(null,"head"),Du.domAPI=Xr(),Du.insertStyleElement=rs();Qr()(Eu.Z,Du);Eu.Z&&Eu.Z.locals&&Eu.Z.locals;class Su extends xu{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Kd;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}function Iu(t,e){const n=t.t,o={Black:n("Black"),"Dim grey":n("Dim grey"),Grey:n("Grey"),"Light grey":n("Light grey"),White:n("White"),Red:n("Red"),Orange:n("Orange"),Yellow:n("Yellow"),"Light green":n("Light green"),Green:n("Green"),Aquamarine:n("Aquamarine"),Turquoise:n("Turquoise"),"Light blue":n("Light blue"),Blue:n("Blue"),Purple:n("Purple")};return e.map((t=>{const e=o[t.label];return e&&e!=t.label&&(t.label=e),t}))}function Mu(t){return t.map(Tu).filter((t=>!!t))}function Tu(t){return"string"==typeof t?{model:t,label:t,hasBorder:!1,view:{name:"span",styles:{color:t}}}:{model:t.color,label:t.label||t.color,hasBorder:void 0!==t.hasBorder&&t.hasBorder,view:{name:"span",styles:{color:`${t.color}`}}}}class Bu extends xu{constructor(t){super(t);const e=this.bindTemplate;this.set("color"),this.set("hasBorder"),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:e.to("color")},class:["ck","ck-color-grid__tile",e.if("hasBorder","ck-color-table__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}function Nu(t){return!!(t&&t.getClientRects&&t.getClientRects().length)}class zu{constructor(t){if(Object.assign(this,t),t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const o of n)t.keystrokeHandler.set(o,((t,n)=>{this[e](),n()}))}}get first(){return this.focusables.find(Pu)||null}get last(){return this.focusables.filter(Pu).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const o=e.element===this.focusTracker.focusedElement;return o&&(t=n),o})),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let o=(e+n+t)%n;do{const e=this.focusables.get(o);if(Pu(e))return e;o=(o+n+t)%n}while(o!==e);return null}}function Pu(t){return!(!t.focus||!Nu(t.element))}var Lu=n(4923),Ou={attributes:{"data-cke":!0}};Ou.setAttributes=os(),Ou.insert=es().bind(null,"head"),Ou.domAPI=Xr(),Ou.insertStyleElement=rs();Qr()(Lu.Z,Ou);Lu.Z&&Lu.Z.locals&&Lu.Z.locals;class Ru extends Kd{constructor(t,e){super(t);const n=e&&e.colorDefinitions||[],o={};e&&e.columns&&(o.gridTemplateColumns=`repeat( ${e.columns}, 1fr)`),this.set("selectedColor"),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}}),this.items.on("add",((t,e)=>{e.isOn=e.color===this.selectedColor})),n.forEach((t=>{const e=new Bu;e.set({color:t.color,label:t.label,tooltip:!0,hasBorder:t.options.hasBorder}),e.on("execute",(()=>{this.fire("execute",{value:t.color,hasBorder:t.options.hasBorder,label:t.label})})),this.items.add(e)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:o}}),this.on("change:selectedColor",((t,e,n)=>{for(const t of this.items)t.isOn=t.color===n}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}const ju='';class Vu extends xu{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new wu;return t.content=ju,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}var Fu=n(66),Hu={attributes:{"data-cke":!0}};Hu.setAttributes=os(),Hu.insert=es().bind(null,"head"),Hu.domAPI=Xr(),Hu.insertStyleElement=rs();Qr()(Fu.Z,Hu);Fu.Z&&Fu.Z.locals&&Fu.Z.locals;class Uu extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("class"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(),this.arrowView=this._createArrowView(),this.keystrokes=new Ua,this.focusTracker=new Ha,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.to("class"),e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(){const t=new xu;return t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const t=new xu,e=t.bindTemplate;return t.icon=ju,t.extendTemplate({attributes:{class:"ck-splitbutton__arrow","aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.delegate("execute").to(this,"open"),t}}class Wu extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>`ck-dropdown__panel_${t}`)),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to((t=>t.preventDefault()))}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}var Gu=n(3488),qu={attributes:{"data-cke":!0}};qu.setAttributes=os(),qu.insert=es().bind(null,"head"),qu.domAPI=Xr(),qu.insertStyleElement=rs();Qr()(Gu.Z,qu);Gu.Z&&Gu.Z.locals&&Gu.Z.locals;function Zu({element:t,target:e,positions:n,limiter:o,fitInViewport:i,viewportOffsetConfig:r}){j(e)&&(e=e()),j(o)&&(o=o());const s=function(t){return t&&t.parentNode?t.offsetParent===hs.document.body?null:t.offsetParent:null}(t),a=new Ea(t);let l;const c={targetRect:new Ea(e),elementRect:a,positionedElementAncestor:s};if(o||i){const t=o&&new Ea(o).getVisible(),e=i&&function(t){t=Object.assign({top:0,bottom:0,left:0,right:0},t);const e=new Ea(hs.window);return e.top+=t.top,e.height-=t.top,e.bottom-=t.bottom,e.height-=t.bottom,e}(r);Object.assign(c,{limiterRect:t,viewportRect:e}),l=function(t,e){const{elementRect:n}=e,o=n.getArea(),i=t.map((t=>new Ku(t,e))).filter((t=>!!t.name));let r=0,s=null;for(const t of i){const{_limiterIntersectionArea:e,_viewportIntersectionArea:n}=t;if(e===o)return t;const i=n**2+e**2;i>r&&(r=i,s=t)}return s}(n,c)||new Ku(n[0],c)}else l=new Ku(n[0],c);return l}function Yu(t){const{scrollX:e,scrollY:n}=hs.window;return t.clone().moveBy(e,n)}class Ku{constructor(t,e){const n=t(e.targetRect,e.elementRect,e.viewportRect);if(!n)return;const{left:o,top:i,name:r,config:s}=n;Object.assign(this,{name:r,config:s}),this._positioningFunctionCorrdinates={left:o,top:i},this._options=e}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get _limiterIntersectionArea(){const t=this._options.limiterRect;if(t){const e=this._options.viewportRect;if(!e)return t.getIntersectionArea(this._rect);{const n=t.getIntersection(e);if(n)return n.getIntersectionArea(this._rect)}}return 0}get _viewportIntersectionArea(){const t=this._options.viewportRect;return t?t.getIntersectionArea(this._rect):0}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCorrdinates.left,this._positioningFunctionCorrdinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=Yu(this._rect),this._options.positionedElementAncestor&&function(t,e){const n=Yu(new Ea(e)),o=ya(e);let i=0,r=0;i-=n.left,r-=n.top,i+=e.scrollLeft,r+=e.scrollTop,i-=o.left,r-=o.top,t.moveBy(i,r)}(this._cachedAbsoluteRect,this._options.positionedElementAncestor)),this._cachedAbsoluteRect}}class $u extends Kd{constructor(t,e,n){super(t);const o=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("id"),this.set("panelPosition","auto"),this.keystrokes=new Ua,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",o.to("class"),o.if("isEnabled","ck-disabled",(t=>!t))],id:o.to("id"),"aria-describedby":o.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",(()=>{this.isOpen&&("auto"===this.panelPosition?this.panelView.position=$u._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:o,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=$u.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,o,s,a,t,i,r,l,c,e]:[o,n,a,s,t,r,i,c,l,e]}}$u.defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})},$u._getOptimalPosition=Zu;class Qu extends Kd{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class Ju extends Kd{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function Xu(t){return Array.isArray(t)?{items:t,removeItems:[]}:t?Object.assign({items:[],removeItems:[]},t):{items:[],removeItems:[]}}var th=n(5571),eh={attributes:{"data-cke":!0}};eh.setAttributes=os(),eh.insert=es().bind(null,"head"),eh.domAPI=Xr(),eh.insertStyleElement=rs();Qr()(th.Z,eh);th.Z&&th.Z.locals&&th.Z.locals;class nh extends Kd{constructor(t,e){super(t);const n=this.bindTemplate,o=this.t;this.options=e||{},this.set("ariaLabel",o("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("class"),this.set("isCompact",!1),this.itemsView=new oh(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===t.uiLanguageDirection;this._focusCycler=new zu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new rh(this):new ih(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e){const n=Xu(t),o=n.items.filter(((t,o,i)=>"|"===t||-1===n.removeItems.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(c("toolbarview-line-break-ignored-when-grouping-items",i),!1):!!e.has(t)||(c("toolbarview-item-unavailable",{name:t}),!1)))),i=this._cleanSeparators(o).map((t=>"|"===t?new Qu:"-"===t?new Ju:e.create(t)));this.items.addMany(i)}_cleanSeparators(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,o=t.findIndex(e),i=n-t.slice().reverse().findIndex(e);return t.slice(o,i).filter(((t,n,o)=>{if(e(t))return!0;return!(n>0&&o[n-1]===t)}))}}class oh extends Kd{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class ih{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>t)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class rh{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index;for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(o,t-this.ungroupedItems.length):this.ungroupedItems.add(o,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!Nu(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ea(t.lastChild),o=new Ea(t);if(!this.cachedPadding){const n=hs.window.getComputedStyle(t),o="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[o])}return"ltr"===e?n.right>o.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new Qu),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=ph(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",fh(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Fd}),n.toolbarView.items.bindTo(this.groupedItems).using((t=>t)),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}var sh=n(1162),ah={attributes:{"data-cke":!0}};ah.setAttributes=os(),ah.insert=es().bind(null,"head"),ah.domAPI=Xr(),ah.insertStyleElement=rs();Qr()(sh.Z,ah);sh.Z&&sh.Z.locals&&sh.Z.locals;class lh extends Kd{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class ch extends Kd{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class dh extends Kd{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}var uh=n(5075),hh={attributes:{"data-cke":!0}};hh.setAttributes=os(),hh.insert=es().bind(null,"head"),hh.domAPI=Xr(),hh.insertStyleElement=rs();Qr()(uh.Z,hh);uh.Z&&uh.Z.locals&&uh.Z.locals;var mh=n(6875),gh={attributes:{"data-cke":!0}};gh.setAttributes=os(),gh.insert=es().bind(null,"head"),gh.domAPI=Xr(),gh.insertStyleElement=rs();Qr()(mh.Z,gh);mh.Z&&mh.Z.locals&&mh.Z.locals;function ph(t,e=Vu){const n=new e(t),o=new Wu(t),i=new $u(t,n,o);return n.bind("isEnabled").to(i),n instanceof Vu?n.bind("isOn").to(i,"isOpen"):n.arrowView.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",(()=>{Ud({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof Su||(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t)}(i),i}function fh(t,e){const n=t.locale,o=n.t,i=t.toolbarView=new nh(n);i.set("ariaLabel",o("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map((t=>i.items.add(t))),t.panelView.children.add(i),i.items.delegate("execute").to(t)}function kh(t,e){const n=t.locale,o=t.listView=new lh(n);o.items.bindTo(e).using((({type:t,model:e})=>{if("separator"===t)return new dh(n);if("button"===t||"switchbutton"===t){const o=new ch(n);let i;return i="button"===t?new xu(n):new Su(n),i.bind(...Object.keys(e)).to(e),i.delegate("execute").to(o),o.children.add(i),o}})),t.panelView.children.add(o),o.items.delegate("execute").to(t)}var bh=n(4547),wh={attributes:{"data-cke":!0}};wh.setAttributes=os(),wh.insert=es().bind(null,"head"),wh.domAPI=Xr(),wh.insertStyleElement=rs();Qr()(bh.Z,wh);bh.Z&&bh.Z.locals&&bh.Z.locals;class Ah extends Kd{constructor(t){super(t),this.body=new fu(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}var _h=n(2751),Ch={attributes:{"data-cke":!0}};Ch.setAttributes=os(),Ch.insert=es().bind(null,"head"),Ch.domAPI=Xr(),Ch.insertStyleElement=rs();Qr()(_h.Z,Ch);_h.Z&&_h.Z.locals&&_h.Z.locals;class vh extends Kd{constructor(t){super(t),this.set("text"),this.set("for"),this.id=`ck-editor__label_${r()}`;const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class yh extends Ah{constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new vh;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class xh extends Kd{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const o=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",o),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",o)}))}t.isRenderingInProgress?function n(o){t.once("change:isRenderingInProgress",((t,i,r)=>{r?n(o):e(o)}))}(this):e(this)}}class Eh extends xh{constructor(t,e,n){super(t,e,n),this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const t=this._editingView,e=this.t;t.change((n=>{const o=t.document.getRoot(this.name);n.setAttribute("aria-label",e("Rich Text Editor, %0",this.name),o)}))}}var Dh=n(5523),Sh={attributes:{"data-cke":!0}};Sh.setAttributes=os(),Sh.insert=es().bind(null,"head"),Sh.domAPI=Xr(),Sh.insertStyleElement=rs();Qr()(Dh.Z,Sh);Dh.Z&&Dh.Z.locals&&Dh.Z.locals;class Ih extends Kd{constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("label",e.label||""),this.set("class",e.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",n.to("class")]},children:this.children});const o=new Kd(t);o.setTemplate({tag:"span",attributes:{class:["ck","ck-form__header__label"]},children:[{text:n.to("label")}]}),this.children.add(o)}}var Mh=n(6985),Th={attributes:{"data-cke":!0}};Th.setAttributes=os(),Th.insert=es().bind(null,"head"),Th.domAPI=Xr(),Th.insertStyleElement=rs();Qr()(Mh.Z,Th);Mh.Z&&Mh.Z.locals&&Mh.Z.locals;class Bh extends Kd{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById"),this.focusTracker=new Ha,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0),this.set("inputMode","text");const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),inputmode:e.to("inputMode"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to(((...t)=>{this.fire("input",...t),this._updateIsEmpty()})),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}class Nh extends Bh{constructor(t){super(t),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class zh extends Bh{constructor(t,{min:e,max:n,step:o}={}){super(t);const i=this.bindTemplate;this.set("min",e),this.set("max",n),this.set("step",o),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:i.to("min"),max:i.to("max"),step:i.to("step")}})}}var Ph=n(8111),Lh={attributes:{"data-cke":!0}};Lh.setAttributes=os(),Lh.insert=es().bind(null,"head"),Lh.domAPI=Xr(),Lh.insertStyleElement=rs();Qr()(Ph.Z,Lh);Ph.Z&&Ph.Z.locals&&Ph.Z.locals;class Oh extends Kd{constructor(t,e){super(t);const n=`ck-labeled-field-view-${r()}`,o=`ck-labeled-field-view-status-${r()}`;this.fieldView=e(this,n,o),this.set("label"),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class"),this.set("placeholder"),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(o),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:[this.fieldView,this.labelView]},this.statusView]})}_createLabelView(t){const e=new vh(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Kd(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}function Rh(t,e,n){const o=new Nh(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o}function jh(t,e,n){const o=new zh(t.locale);return o.set({id:e,ariaDescribedById:n,inputMode:"numeric"}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o}function Vh(t,e,n){const o=ph(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isEnabled").to(t),o}class Fh extends Lo{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e=`show:${t.type}`+(t.namespace?`:${t.namespace}`:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class Hh{constructor(t,e){e&&Jt(this,e),t&&this.set(t)}}function Uh(t){return e=>e+t}ue(Hh,re);var Wh=n(8245),Gh={attributes:{"data-cke":!0}};Gh.setAttributes=os(),Gh.insert=es().bind(null,"head"),Gh.domAPI=Xr(),Gh.insertStyleElement=rs();Qr()(Wh.Z,Gh);Wh.Z&&Wh.Z.locals&&Wh.Z.locals;const qh=Uh("px"),Zh=hs.document.body;class Yh extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>`ck-balloon-panel_${t}`)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",qh),left:e.to("left",qh)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=Yh.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast,e.viewportStickyNorth],limiter:Zh,fitInViewport:!0},t),o=Yh._getOptimalPosition(n),i=parseInt(o.left),r=parseInt(o.top),{name:s,config:a={}}=o,{withArrow:l=!0}=a;Object.assign(this,{top:r,left:i,position:s,withArrow:l})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=Kh(t.target),n=t.limiter?Kh(t.limiter):Zh;this.listenTo(hs.document,"scroll",((o,i)=>{const r=i.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(hs.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(hs.document,"scroll"),this.stopListening(hs.window,"resize")}}function Kh(t){return vo(t)?t:va(t)?t.commonAncestorContainer:"function"==typeof t?Kh(t()):null}Yh.arrowHorizontalOffset=25,Yh.arrowVerticalOffset=10,Yh.stickyVerticalOffset=20,Yh._getOptimalPosition=Zu,Yh.defaultPositions=function({horizontalOffset:t=Yh.arrowHorizontalOffset,verticalOffset:e=Yh.arrowVerticalOffset,stickyVerticalOffset:n=Yh.stickyVerticalOffset,config:o}={}){return{northWestArrowSouthWest:(e,n)=>({top:i(e,n),left:e.left-t,name:"arrow_sw",...o&&{config:o}}),northWestArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.left-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northWestArrowSouth:(t,e)=>({top:i(t,e),left:t.left-e.width/2,name:"arrow_s",...o&&{config:o}}),northWestArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.left-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northWestArrowSouthEast:(e,n)=>({top:i(e,n),left:e.left-n.width+t,name:"arrow_se",...o&&{config:o}}),northArrowSouthWest:(e,n)=>({top:i(e,n),left:e.left+e.width/2-t,name:"arrow_sw",...o&&{config:o}}),northArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.left+e.width/2-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northArrowSouth:(t,e)=>({top:i(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s",...o&&{config:o}}),northArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.left+e.width/2-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northArrowSouthEast:(e,n)=>({top:i(e,n),left:e.left+e.width/2-n.width+t,name:"arrow_se",...o&&{config:o}}),northEastArrowSouthWest:(e,n)=>({top:i(e,n),left:e.right-t,name:"arrow_sw",...o&&{config:o}}),northEastArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.right-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northEastArrowSouth:(t,e)=>({top:i(t,e),left:t.right-e.width/2,name:"arrow_s",...o&&{config:o}}),northEastArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.right-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northEastArrowSouthEast:(e,n)=>({top:i(e,n),left:e.right-n.width+t,name:"arrow_se",...o&&{config:o}}),southWestArrowNorthWest:(e,n)=>({top:r(e),left:e.left-t,name:"arrow_nw",...o&&{config:o}}),southWestArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.left-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southWestArrowNorth:(t,e)=>({top:r(t),left:t.left-e.width/2,name:"arrow_n",...o&&{config:o}}),southWestArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.left-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southWestArrowNorthEast:(e,n)=>({top:r(e),left:e.left-n.width+t,name:"arrow_ne",...o&&{config:o}}),southArrowNorthWest:(e,n)=>({top:r(e),left:e.left+e.width/2-t,name:"arrow_nw",...o&&{config:o}}),southArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.left+e.width/2-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southArrowNorth:(t,e)=>({top:r(t),left:t.left+t.width/2-e.width/2,name:"arrow_n",...o&&{config:o}}),southArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.left+e.width/2-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southArrowNorthEast:(e,n)=>({top:r(e),left:e.left+e.width/2-n.width+t,name:"arrow_ne",...o&&{config:o}}),southEastArrowNorthWest:(e,n)=>({top:r(e),left:e.right-t,name:"arrow_nw",...o&&{config:o}}),southEastArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.right-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southEastArrowNorth:(t,e)=>({top:r(t),left:t.right-e.width/2,name:"arrow_n",...o&&{config:o}}),southEastArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.right-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southEastArrowNorthEast:(e,n)=>({top:r(e),left:e.right-n.width+t,name:"arrow_ne",...o&&{config:o}}),viewportStickyNorth:(t,e,i)=>t.getIntersection(i)?{top:i.top+n,left:t.left+t.width/2-e.width/2,name:"arrowless",config:{withArrow:!1,...o}}:null};function i(t,n){return t.top-n.height-e}function r(t){return t.bottom+e}}();var $h=n(1757),Qh={attributes:{"data-cke":!0}};Qh.setAttributes=os(),Qh.insert=es().bind(null,"head"),Qh.domAPI=Xr(),Qh.insertStyleElement=rs();Qr()($h.Z,Qh);$h.Z&&$h.Z.locals&&$h.Z.locals;var Jh=n(3553),Xh={attributes:{"data-cke":!0}};Xh.setAttributes=os(),Xh.insert=es().bind(null,"head"),Xh.domAPI=Xr(),Xh.insertStyleElement=rs();Qr()(Jh.Z,Xh);Jh.Z&&Jh.Z.locals&&Jh.Z.locals;const tm=Uh("px");class em extends he{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new Yh(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}destroy(){super.destroy(),this.view.destroy(),this._rotatorView.destroy(),this._fakePanelsView.destroy()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new l("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new l("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new l("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new nm(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new om(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:o=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),o&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&(t.limiter||(t=Object.assign({},t,{limiter:this.positionLimiter})),t=Object.assign({},t,{viewportOffsetConfig:this.editor.ui.viewportOffset})),t}}class nm extends Kd{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Ha,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new xu(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class om extends Kd{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",tm),left:n.to("left",tm),width:n.to("width",tm),height:n.to("height",tm)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,o)=>{n>o?this._addPanels(n-o):this._removePanels(o-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Kd;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:o}=new Ea(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var im=n(3609),rm={attributes:{"data-cke":!0}};rm.setAttributes=os(),rm.insert=es().bind(null,"head"),rm.domAPI=Xr(),rm.insertStyleElement=rs();Qr()(im.Z,rm);im.Z&&im.Z.locals&&im.Z.locals;const sm=Uh("px");class am extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheLimiter",!1),this.set("_hasViewportTopOffset",!1),this.content=this.createCollection(),this._contentPanelPlaceholder=new $d({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?sm(this._panelRect.height):null))}}}).render(),this._contentPanel=new $d({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?sm(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_hasViewportTopOffset",(t=>t?sm(this.viewportTopOffset):null)),bottom:e.to("_isStickyToTheLimiter",(t=>t?sm(this.limiterBottomOffset):null)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this._contentPanel]})}render(){super.render(),this._checkIfShouldBeSticky(),this.listenTo(hs.window,"scroll",(()=>{this._checkIfShouldBeSticky()})),this.listenTo(this,"change:isActive",(()=>{this._checkIfShouldBeSticky()}))}_checkIfShouldBeSticky(){const t=this._panelRect=this._contentPanel.getBoundingClientRect();let e;this.limiterElement?(e=this._limiterRect=this.limiterElement.getBoundingClientRect(),this.isSticky=this.isActive&&e.toppm(s,t)))),hm.get(s).set(n,{text:o,isDirectHost:i,keepOnFocus:r,hostElement:i?n:null}),e.change((t=>pm(s,t)))}function gm(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function pm(t,e){const n=hm.get(t),o=[];let i=!1;for(const[t,r]of n)r.isDirectHost&&(o.push(t),fm(e,t,r)&&(i=!0));for(const[t,r]of n){if(r.isDirectHost)continue;const n=km(t);n&&(o.includes(n)||(r.hostElement=n,fm(e,t,r)&&(i=!0)))}return i}function fm(t,e,n){const{text:o,isDirectHost:i,hostElement:r}=n;let s=!1;r.getAttribute("data-placeholder")!==o&&(t.setAttribute("data-placeholder",o,r),s=!0);return(i||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;const n=Array.from(t.getChildren()).some((t=>!t.is("uiElement")));if(n)return!1;if(e)return!0;const o=t.document;if(!o.isFocused)return!0;const i=o.selection.anchor;return i&&i.parent!==t}(r,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0):gm(t,r)&&(s=!0),s}function km(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement")&&!e.is("attributeElement"))return e}return null}const bm=new Map;function wm(t,e,n){let o=bm.get(t);o||(o=new Map,bm.set(t,o)),o.set(e,n)}function Am(t){return[t]}function _m(t,e,n={}){const o=function(t,e){const n=bm.get(t);return n&&n.has(e)?n.get(e):Am}(t.constructor,e.constructor);try{return o(t=t.clone(),e,n)}catch(t){throw t}}function Cm(t,e,n){t=t.slice(),e=e.slice();const o=new vm(n.document,n.useRelations,n.forceWeakRemove);o.setOriginalOperations(t),o.setOriginalOperations(e);const i=o.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:i};const r=new WeakMap;for(const e of t)r.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new Tc(e,t.key,t.oldValue,t.newValue,0))),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&o.push(new Tc(i,e.key,e.newValue,t.newValue,0)),0==o.length?[new ad(0)]:o}return[t]})),wm(Tc,zc,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const o=Em(e,t.key,t.oldValue);o&&n.unshift(o)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),wm(Tc,Rc,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(il._createFromPositionAndShift(e.graveyardPosition,1));const o=t.range._getTransformedByMergeOperation(e);return o.isCollapsed||n.push(o),n.map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),wm(Tc,Nc,((t,e)=>{const n=function(t,e){const n=il._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null,i=[];n.containsRange(t,!0)?o=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),o=t.getIntersection(n)):i=[t];const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),o=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,o),r.push(...t)}o&&r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e);return n.map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),wm(Tc,jc,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new il(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),wm(zc,Tc,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=Em(t,e.key,e.newValue);o&&n.push(o)}return n})),wm(zc,zc,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),wm(zc,Nc,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),wm(zc,jc,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),wm(zc,Rc,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),wm(Pc,zc,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),wm(Pc,Pc,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new ad(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),wm(Pc,Rc,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),wm(Pc,Nc,((t,e,n)=>{if(t.oldRange&&(t.oldRange=il._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const o=il._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=o.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=o.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=il._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),wm(Pc,jc,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=tl._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=tl._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=tl._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=tl._createAt(e.insertionPosition):t.newRange.end=o.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),wm(Rc,zc,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),wm(Rc,Rc,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new tl(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new ad(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const o="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),o=t.targetPosition._getTransformedByMergeOperation(e);return[new Nc(n,t.howMany,o,0)]}return[new ad(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),wm(Rc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)?[new ad(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),wm(Rc,jc,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const o=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),wm(Nc,zc,((t,e)=>{const n=il._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),wm(Nc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(t.sourcePosition,t.howMany),i=il._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Dm(t,e)&&Dm(e,t))return[e.getReversed()];if(o.containsPosition(e.targetPosition)&&o.containsRange(i,!0))return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Sm([o],r);if(i.containsPosition(t.targetPosition)&&i.containsRange(o,!0))return o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),Sm([o],r);const l=Oo(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Sm([o],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const c=[],d=o.getDifference(i);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==Oo(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);c.push(...o)}const u=o.getIntersection(i);return null!==u&&s&&(u.start=u.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),u.end=u.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?i.start.isBefore(o.start)||i.start.isEqual(o.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new ad(t.baseVersion)]:Sm(c,r)})),wm(Nc,jc,((t,e,n)=>{let o=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(o=t.targetPosition._getTransformedBySplitOperation(e));const i=il._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=o,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new il(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);return Sm([new il(i.start,e.splitPosition),t],o)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(o=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(o=t.targetPosition);const r=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&o&&!n.aWasUndone&&r.push(il._createFromPositionAndShift(e.insertionPosition,1))}return Sm(r,o)})),wm(Nc,Rc,((t,e,n)=>{const o=il._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new ad(0)]}else if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Nc(t.sourcePosition,t.howMany-1,t.targetPosition,0)),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Nc(o,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new tl(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const c=new Nc(i,e.howMany,l,0);return n.push(s),n.push(c),n}const i=il._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),wm(Lc,zc,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),wm(Lc,Rc,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),wm(Lc,Nc,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),wm(Lc,Lc,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new ad(0)];t.oldName=e.newName}return[t]})),wm(Lc,jc,((t,e)=>{if("same"==Oo(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Lc(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),wm(Oc,Oc,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new ad(0)];t.oldValue=e.newValue}return[t]})),wm(jc,zc,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new tl(e.graveyardPosition.root,n),i=jc.getInsertionPosition(new tl(e.graveyardPosition.root,n)),r=new jc(o,0,i,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),wm(jc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),o=t.graveyardPosition._getTransformedByMoveOperation(e),i=o.path.slice();i.push(0);const r=new tl(o.root,i);return[new Nc(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const i=t.splitPosition.isEqual(e.targetPosition);if(i&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),[t];if(i&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:o}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(o),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new ad(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new ad(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Nc(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Nc(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new ad(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const o=new tl(e.insertionPosition.root,n);return[t,new Nc(t.insertionPosition,1,o,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{const{top:n,right:o,bottom:i,left:r}=e,s=[];return[n,o,r,i].every((t=>!!t))?s.push([t,tg(e)]):(n&&s.push([t+"-top",n]),o&&s.push([t+"-right",o]),i&&s.push([t+"-bottom",i]),r&&s.push([t+"-left",r])),s}}function tg({top:t,right:e,bottom:n,left:o}){const i=[];return o!==e?i.push(t,e,n,o):n!==t?i.push(t,e,n):e!==t?i.push(t,e):i.push(t),i.join(" ")}function eg(t){return e=>({path:t,value:Jm(e)})}function ng(t){return t.replace(/, /g,",").split(" ").map((t=>t.replace(/,/g,", ")))}function og(t){t.setNormalizer("background",ig),t.setNormalizer("background-color",(t=>({path:"background.color",value:t}))),t.setReducer("background",(t=>{const e=[];return e.push(["background-color",t.color]),e})),t.setStyleRelation("background",["background-color"])}function ig(t){const e={},n=ng(t);for(const t of n)o=t,Gm.includes(o)?(e.repeat=e.repeat||[],e.repeat.push(t)):Zm(t)?(e.position=e.position||[],e.position.push(t)):Km(t)?e.attachment=t:Rm(t)?e.color=t:Qm(t)&&(e.image=t);var o;return{path:"background",value:e}}function rg(t){t.setNormalizer("border",sg),t.setNormalizer("border-top",ag("top")),t.setNormalizer("border-right",ag("right")),t.setNormalizer("border-bottom",ag("bottom")),t.setNormalizer("border-left",ag("left")),t.setNormalizer("border-color",lg("color")),t.setNormalizer("border-width",lg("width")),t.setNormalizer("border-style",lg("style")),t.setNormalizer("border-top-color",dg("color","top")),t.setNormalizer("border-top-style",dg("style","top")),t.setNormalizer("border-top-width",dg("width","top")),t.setNormalizer("border-right-color",dg("color","right")),t.setNormalizer("border-right-style",dg("style","right")),t.setNormalizer("border-right-width",dg("width","right")),t.setNormalizer("border-bottom-color",dg("color","bottom")),t.setNormalizer("border-bottom-style",dg("style","bottom")),t.setNormalizer("border-bottom-width",dg("width","bottom")),t.setNormalizer("border-left-color",dg("color","left")),t.setNormalizer("border-left-style",dg("style","left")),t.setNormalizer("border-left-width",dg("width","left")),t.setExtractor("border-top",ug("top")),t.setExtractor("border-right",ug("right")),t.setExtractor("border-bottom",ug("bottom")),t.setExtractor("border-left",ug("left")),t.setExtractor("border-top-color","border.color.top"),t.setExtractor("border-right-color","border.color.right"),t.setExtractor("border-bottom-color","border.color.bottom"),t.setExtractor("border-left-color","border.color.left"),t.setExtractor("border-top-width","border.width.top"),t.setExtractor("border-right-width","border.width.right"),t.setExtractor("border-bottom-width","border.width.bottom"),t.setExtractor("border-left-width","border.width.left"),t.setExtractor("border-top-style","border.style.top"),t.setExtractor("border-right-style","border.style.right"),t.setExtractor("border-bottom-style","border.style.bottom"),t.setExtractor("border-left-style","border.style.left"),t.setReducer("border-color",Xm("border-color")),t.setReducer("border-style",Xm("border-style")),t.setReducer("border-width",Xm("border-width")),t.setReducer("border-top",gg("top")),t.setReducer("border-right",gg("right")),t.setReducer("border-bottom",gg("bottom")),t.setReducer("border-left",gg("left")),t.setReducer("border",function(){return e=>{const n=hg(e,"top"),o=hg(e,"right"),i=hg(e,"bottom"),r=hg(e,"left"),s=[n,o,i,r],a={width:t(s,"width"),style:t(s,"style"),color:t(s,"color")},l=pg(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((t,[e,n])=>(n&&(t.push([`border-${e}`,n]),s.forEach((t=>t[e]=null))),t)),[]);return[...c,...pg(n,"top"),...pg(o,"right"),...pg(i,"bottom"),...pg(r,"left")]};function t(t,e){return t.map((t=>t[e])).reduce(((t,e)=>t==e?t:null))}}()),t.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),t.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),t.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),t.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),t.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),t.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function sg(t){const{color:e,style:n,width:o}=mg(t);return{path:"border",value:{color:Jm(e),style:Jm(n),width:Jm(o)}}}function ag(t){return e=>{const{color:n,style:o,width:i}=mg(e),r={};return void 0!==n&&(r.color={[t]:n}),void 0!==o&&(r.style={[t]:o}),void 0!==i&&(r.width={[t]:i}),{path:"border",value:r}}}function lg(t){return e=>({path:"border",value:cg(e,t)})}function cg(t,e){return{[e]:Jm(t)}}function dg(t,e){return n=>({path:"border",value:{[t]:{[e]:n}}})}function ug(t){return(e,n)=>{if(n.border)return hg(n.border,t)}}function hg(t,e){const n={};return t.width&&t.width[e]&&(n.width=t.width[e]),t.style&&t.style[e]&&(n.style=t.style[e]),t.color&&t.color[e]&&(n.color=t.color[e]),n}function mg(t){const e={},n=ng(t);for(const t of n)Hm(t)||/thin|medium|thick/.test(t)?e.width=t:Vm(t)?e.style=t:e.color=t;return e}function gg(t){return e=>pg(e,t)}function pg(t,e){const n=[];if(t&&t.width&&n.push("width"),t&&t.style&&n.push("style"),t&&t.color&&n.push("color"),3==n.length){const o=n.map((e=>t[e])).join(" ");return["all"==e?["border",o]:[`border-${e}`,o]]}return"all"==e?[]:n.map((n=>[`border-${e}-${n}`,t[n]]))}function fg(t){t.setNormalizer("margin",eg("margin")),t.setNormalizer("margin-top",(t=>({path:"margin.top",value:t}))),t.setNormalizer("margin-right",(t=>({path:"margin.right",value:t}))),t.setNormalizer("margin-bottom",(t=>({path:"margin.bottom",value:t}))),t.setNormalizer("margin-left",(t=>({path:"margin.left",value:t}))),t.setReducer("margin",Xm("margin")),t.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}function kg(t){t.setNormalizer("padding",eg("padding")),t.setNormalizer("padding-top",(t=>({path:"padding.top",value:t}))),t.setNormalizer("padding-right",(t=>({path:"padding.right",value:t}))),t.setNormalizer("padding-bottom",(t=>({path:"padding.bottom",value:t}))),t.setNormalizer("padding-left",(t=>({path:"padding.left",value:t}))),t.setReducer("padding",Xm("padding")),t.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}class bg extends Ld{constructor(t,e){super(t),this.view=e,this._toolbarConfig=Xu(t.config.get("toolbar")),this._elementReplacer=new Aa}get element(){return this.view.element}init(t){const e=this.editor,n=this.view,o=e.editing.view,i=n.editable,r=o.document.getRoot();i.name=r.rootName,n.render();const s=i.element;this.setEditableElement(i.name,s),this.focusTracker.add(s),n.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),this.fire("ready")}destroy(){const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy(),super.destroy()}_initToolbar(){const t=this.editor,e=this.view,n=t.editing.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,e.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t)),e.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),function({origin:t,originKeystrokeHandler:e,originFocusTracker:n,toolbar:o,beforeFocus:i,afterBlur:r}){n.add(o.element),e.set("Alt+F10",((t,e)=>{n.isFocused&&!o.focusTracker.isFocused&&(i&&i(),o.focus(),e())})),o.keystrokes.set("Esc",((e,n)=>{o.focusTracker.isFocused&&(t.focus(),r&&r(),n())}))}({origin:n,originFocusTracker:this.focusTracker,originKeystrokeHandler:t.keystrokes,toolbar:e.toolbar})}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.sourceElement,i=t.config.get("placeholder")||o&&"textarea"===o.tagName.toLowerCase()&&o.getAttribute("placeholder");i&&mm({view:e,element:n,text:i,isDirectHost:!1,keepOnFocus:!0})}}var wg=n(3638),Ag={attributes:{"data-cke":!0}};Ag.setAttributes=os(),Ag.insert=es().bind(null,"head"),Ag.domAPI=Xr(),Ag.insertStyleElement=rs();Qr()(wg.Z,Ag);wg.Z&&wg.Z.locals&&wg.Z.locals;class _g extends yh{constructor(t,e,n={}){super(t),this.stickyPanel=new am(t),this.toolbar=new nh(t,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),this.editable=new Eh(t,e)}render(){super.render(),this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class Cg extends Nd{constructor(t,e={}){if(!vo(t)&&void 0!==e.initialData)throw new l("editor-create-initial-data",null);super(e),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return vo(t)?(e=t,e instanceof HTMLTextAreaElement?e.value:e.innerHTML):t;var e}(t)),vo(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=new _g(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n});this.ui=new bg(this,o),function(t){if(!j(t.updateSourceElement))throw new l("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(e&&"textarea"===e.tagName.toLowerCase()&&e.form){let n;const o=e.form,i=()=>t.updateSourceElement();j(o.submit)&&(n=o.submit,o.submit=()=>{i(),n.apply(o)}),o.addEventListener("submit",i),t.on("destroy",(()=>{o.removeEventListener("submit",i),n&&(o.submit=n)}))}}(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init(vo(t)?t:null))).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}}ue(Cg,Rd),ue(Cg,jd);const vg=["left","right","center","justify"];function yg(t){return vg.includes(t)}function xg(t,e){return"rtl"==e.contentLanguageDirection?"right"===t:"left"===t}function Eg(t){const e=t.map((t=>{let e;return e="string"==typeof t?{name:t}:t,e})).filter((t=>{const e=!!vg.includes(t.name);return e||c("alignment-config-name-not-recognized",{option:t}),e})),n=e.filter((t=>!!t.className)).length;if(n&&n{const i=o.slice(n+1);if(i.some((t=>t.name==e.name)))throw new l("alignment-config-name-already-defined",{option:e,configuredOptions:t});if(e.className){if(i.some((t=>t.className==e.className)))throw new l("alignment-config-classname-already-defined",{option:e,configuredOptions:t})}})),e}const Dg="alignment";class Sg extends ge{refresh(){const t=this.editor.locale,e=Fa(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=!!e&&this._canBeAligned(e),this.isEnabled&&e.hasAttribute("alignment")?this.value=e.getAttribute("alignment"):this.value="rtl"===t.contentLanguageDirection?"right":"left"}execute(t={}){const e=this.editor,n=e.locale,o=e.model,i=o.document,r=t.value;o.change((t=>{const e=Array.from(i.selection.getSelectedBlocks()).filter((t=>this._canBeAligned(t))),o=e[0].getAttribute("alignment");xg(r,n)||o===r||!r?function(t,e){for(const n of t)e.removeAttribute(Dg,n)}(e,t):function(t,e,n){for(const o of t)e.setAttribute(Dg,n,o)}(e,t,r)}))}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,Dg)}}class Ig extends he{static get pluginName(){return"AlignmentEditing"}constructor(t){super(t),t.config.define("alignment",{options:[...vg.map((t=>({name:t})))]})}init(){const t=this.editor,e=t.locale,n=t.model.schema,o=Eg(t.config.get("alignment.options")).filter((t=>yg(t.name)&&!xg(t.name,e))),i=o.some((t=>!!t.className));n.extend("$block",{allowAttributes:"alignment"}),t.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),i?t.conversion.attributeToAttribute(function(t){const e={model:{key:"alignment",values:t.map((t=>t.name))},view:{}};for(const n of t)e.view[n.name]={key:"class",value:n.className};return e}(o)):t.conversion.for("downcast").attributeToAttribute(function(t){const e={model:{key:"alignment",values:t.map((t=>t.name))},view:{}};for(const{name:n}of t)e.view[n]={key:"style",value:{"text-align":n}};return e}(o));const r=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return e}(o);for(const e of r)t.conversion.for("upcast").attributeToAttribute(e);const s=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return e}(o);for(const e of s)t.conversion.for("upcast").attributeToAttribute(e);t.commands.add("alignment",new Sg(t))}}const Mg=new Map([["left",Hd.alignLeft],["right",Hd.alignRight],["center",Hd.alignCenter],["justify",Hd.alignJustify]]);class Tg extends he{get localizedOptionTitles(){const t=this.editor.t;return{left:t("Align left"),right:t("Align right"),center:t("Align center"),justify:t("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t,o=Eg(t.config.get("alignment.options"));o.map((t=>t.name)).filter(yg).forEach((t=>this._addButton(t))),e.add("alignment",(t=>{const i=ph(t),r=o.map((t=>e.create(`alignment:${t.name}`)));fh(i,r),i.buttonView.set({label:n("Text alignment"),tooltip:!0}),i.toolbarView.isVertical=!0,i.toolbarView.ariaLabel=n("Text alignment toolbar"),i.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const s="rtl"===t.contentLanguageDirection?Mg.get("right"):Mg.get("left");return i.buttonView.bind("icon").toMany(r,"isOn",((...t)=>{const e=t.findIndex((t=>t));return e<0?s:r[e].icon})),i.bind("isEnabled").toMany(r,"isEnabled",((...t)=>t.some((t=>t)))),i}))}_addButton(t){const e=this.editor;e.ui.componentFactory.add(`alignment:${t}`,(n=>{const o=e.commands.get("alignment"),i=new xu(n);return i.set({label:this.localizedOptionTitles[t],icon:Mg.get(t),tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o),i.bind("isOn").to(o,"value",(e=>e===t)),this.listenTo(i,"execute",(()=>{e.execute("alignment",{value:t}),e.editing.view.focus()})),i}))}}class Bg{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=(t,e)=>{e.isLocal&&e.isUndoable&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Ng extends ge{constructor(t,e){super(t),this._buffer=new Bg(t.model,e)}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,o=t.text||"",i=o.length,r=t.range?e.createSelection(t.range):n.selection,s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock(),e.deleteContent(r),o&&e.insertContent(t.createText(o,n.selection.getAttributes()),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}function zg(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let o,i=0;return t.forEach((t=>{"equal"==t?(r(),i++):"insert"==t?(s("insert")?o.values.push(e[i]):(r(),o={type:"insert",index:i,values:[e[i]]}),i++):s("delete")?o.howMany++:(r(),o={type:"delete",index:i,howMany:1})})),r(),n;function r(){o&&(n.push(o),o=null)}function s(t){return o&&o.type==t}}(Gr(t.oldChildren,t.newChildren,Pg),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("$text")?n:void 0}function Pg(t,e){return t&&t.is("$text")&&e&&e.is("$text")?t.data===e.data:t===e}function Lg(t,e){const n=e.selection,o=t.shiftKey&&t.keyCode===dr.delete,i=!n.isCollapsed;return o&&i}const Og=[hr("arrowUp"),hr("arrowRight"),hr("arrowDown"),hr("arrowLeft"),9,16,17,18,19,20,27,33,34,35,36,45,91,93,144,145,173,174,175,176,177,178,179,255];for(let t=112;t<=135;t++)Og.push(t);function Rg(t){return!(!t.ctrlKey&&!t.metaKey)||Og.includes(t.keyCode)}class jg{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(function(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!zg(e))return!0;return!1}(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map((t=>t.node)).reduce(((t,e)=>t.getCommonAncestor(e,{includeSelf:!0})));if(!e)return;return e.getAncestors({includeSelf:!0,parentFirst:!0}).find((t=>t.is("containerElement")||t.is("rootElement")))}(t);if(!n)return;const o=this.editor.editing.view.domConverter.mapViewToDom(n),i=new _s(this.editor.editing.view.document),r=this.editor.data.toModel(i.domToView(o)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(r.getChildren()),l=Array.from(s.getChildren()),c=a[a.length-1],d=l[l.length-1],u=c&&c.is("element","softBreak"),h=d&&!d.is("element","softBreak");u&&h&&a.pop();const m=this.editor.model.schema;if(!Vg(a,m)||!Vg(l,m))return;const g=a.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," "),p=l.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," ");if(p===g)return;const f=Gr(p,g),{firstChangeAt:k,insertions:b,deletions:w}=Fg(f);let A=null;e&&(A=this.editing.mapper.toModelRange(e.getFirstRange()));const _=g.substr(k,b),C=this.editor.model.createRange(this.editor.model.createPositionAt(s,k),this.editor.model.createPositionAt(s,k+w));this.editor.execute("input",{text:_,range:C,resultRange:A})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),o=t.oldText.replace(/\u00A0/g," ");if(o===n)return;const i=Gr(o,n),{firstChangeAt:r,insertions:s,deletions:a}=Fg(i);let l=null;e&&(l=this.editing.mapper.toModelRange(e.getFirstRange()));const c=this.editing.view.createPositionAt(t.node,r),d=this.editing.mapper.toModelPosition(c),u=this.editor.model.createRange(d,d.getShiftedBy(a)),h=n.substr(r,s);this.editor.execute("input",{text:h,range:u,resultRange:l})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=zg(t),n=this.editing.view.createPositionAt(t.node,e.index),o=this.editing.mapper.toModelPosition(n),i=e.values[0].data;this.editor.execute("input",{text:i.replace(/\u00A0/g," "),range:this.editor.model.createRange(o)})}}function Vg(t,e){return t.every((t=>e.isInline(t)))}function Fg(t){let e=null,n=null;for(let o=0;o{n.deleteContent(n.document.selection)})),t.unlock()}sr.isAndroid?o.document.on("beforeinput",((t,e)=>r(e)),{priority:"lowest"}):o.document.on("keydown",((t,e)=>r(e)),{priority:"lowest"}),o.document.on("compositionstart",(function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;t.selection.isCollapsed||e||s()}),{priority:"lowest"}),o.document.on("compositionend",(()=>{e=n.createSelection(n.document.selection)}),{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",((e,n,o)=>{new jg(t).handle(n,o)}))}(t)}}class Ug extends ge{constructor(t,e){super(t),this.direction=e,this._buffer=new Bg(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection),r=t.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(o);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=Fi(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),o.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(o)))return!1;if(!e.schema.checkChild(o,"paragraph"))return!1;const i=o.getChild(0);return!i||"paragraph"!==i.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n),i=t.createElement("paragraph");t.remove(t.createRangeIn(o)),t.insert(i,o),t.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const o=t.getFirstPosition(),i=n.schema.getLimitElement(o),r=i.getChild(0);return o.parent==r&&(!!t.containsEntireContent(r)&&(!!n.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}class Wg extends Ms{constructor(t){super(t);const e=t.document;let n=0;function o(t,n,o){const i=new Wi(e,"delete",e.selection.getFirstRange());e.fire(i,new Xs(e,n,o)),i.stop.called&&t.stop()}e.on("keyup",((t,e)=>{e.keyCode!=dr.delete&&e.keyCode!=dr.backspace||(n=0)})),e.on("keydown",((t,i)=>{if(sr.isWindows&&Lg(i,e))return;const r={};if(i.keyCode==dr.delete)r.direction="forward",r.unit="character";else{if(i.keyCode!=dr.backspace)return;r.direction="backward",r.unit="codePoint"}const s=sr.isMac?i.altKey:i.ctrlKey;r.unit=s?"word":r.unit,r.sequence=++n,o(t,i.domEvent,r)})),sr.isAndroid&&e.on("beforeinput",((e,n)=>{if("deleteContentBackward"!=n.domEvent.inputType)return;const i={unit:"codepoint",direction:"backward",sequence:1},r=n.domTarget.ownerDocument.defaultView.getSelection();r.anchorNode==r.focusNode&&r.anchorOffset+1!=r.focusOffset&&(i.selectionToRemove=t.domConverter.domSelectionToView(r)),o(e,n.domEvent,i)}))}observe(){}}class Gg extends he{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.model.document;e.addObserver(Wg),this._undoOnBackspace=!1;const i=new Ug(t,"forward");if(t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Ug(t,"backward")),this.listenTo(n,"delete",((n,o)=>{const i={unit:o.unit,sequence:o.sequence};if(o.selectionToRemove){const e=t.model.createSelection(),n=[];for(const e of o.selectionToRemove.getRanges())n.push(t.editing.mapper.toModelRange(e));e.setTo(n),i.selection=e}t.execute("forward"==o.direction?"deleteForward":"delete",i),o.preventDefault(),e.scrollToTheSelection()}),{priority:"low"}),sr.isAndroid){let t=null;this.listenTo(n,"delete",((e,n)=>{const o=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}}),{priority:"lowest"}),this.listenTo(n,"keyup",((e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset),e.extend(t.focusNode,t.focusOffset),t=null}}))}this.editor.plugins.has("UndoEditing")&&(this.listenTo(n,"delete",((e,n)=>{this._undoOnBackspace&&"backward"==n.direction&&1==n.sequence&&"codePoint"==n.unit&&(this._undoOnBackspace=!1,t.execute("undo"),n.preventDefault(),e.stop())}),{context:"$capture"}),this.listenTo(o,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class qg extends he{static get requires(){return[Hg,Gg]}static get pluginName(){return"Typing"}}function Zg(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>o.is("$text")||o.is("$textProxy")?t+o.data:(n=e.createPositionAfter(o),"")),""),range:e.createRange(n,t.end)}}class Yg{constructor(t,e){this.model=t,this.testCallback=e,this.hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this.hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{!e.isUndo&&e.isLocal&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,o=n.document.selection,i=n.createRange(n.createPositionAt(o.focus.parent,0),o.focus),{text:r,range:s}=Zg(i,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this.hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire(`matched:${t}`,n)}}}ue(Yg,re);class Kg extends he{static get pluginName(){return"TwoStepCaretMovement"}constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}init(){const t=this.editor,e=t.model,n=t.editing.view,o=t.locale,i=e.document.selection;this.listenTo(n.document,"arrowKey",((t,e)=>{if(!i.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==dr.arrowright,r=e.keyCode==dr.arrowleft;if(!n&&!r)return;const s=o.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&r?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()}),{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(i,"change:range",((t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&Xg(i.getFirstPosition(),this.attributes)||this._restoreGravity())}))}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,o=n.getFirstPosition();return!this._isGravityOverridden&&((!o.isAtStart||!$g(n,e))&&(Xg(o,e)?(Jg(t),this._overrideGravity(),!0):void 0))}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,o=n.document.selection,i=o.getFirstPosition();return this._isGravityOverridden?(Jg(t),this._restoreGravity(),Qg(n,e,i),!0):i.isAtStart?!!$g(o,e)&&(Jg(t),Qg(n,e,i),!0):function(t,e){return Xg(t.getShiftedBy(-1),e)}(i,e)?i.isAtEnd&&!$g(o,e)&&Xg(i,e)?(Jg(t),Qg(n,e,i),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1):void 0}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((t=>t.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function $g(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function Qg(t,e,n){const o=n.nodeBefore;t.change((t=>{o?t.setSelectionAttribute(o.getAttributes()):t.removeSelectionAttribute(e)}))}function Jg(t){t.preventDefault()}function Xg(t,e){const{nodeBefore:n,nodeAfter:o}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((o?o.getAttribute(t):void 0)!==e)return!0}return!1}var tp=/[\\^$.*+?()[\]{}|]/g,ep=RegExp(tp.source);const np=function(t){return(t=si(t))&&ep.test(t)?t.replace(tp,"\\$&"):t},op={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"½",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"⅓",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"⅔",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"¼",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"¾",null]},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:cp('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:cp("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:cp("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:cp('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:cp('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:cp("'"),to:[null,"‚",null,"’"]}},ip={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},rp=["symbols","mathematical","typography","quotes"];function sp(t){return"string"==typeof t?new RegExp(`(${np(t)})$`):t}function ap(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function lp(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function cp(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function dp(t,e,n,o){return o.createRange(up(t,e,n,!0,o),up(t,e,n,!1,o))}function up(t,e,n,o,i){let r=t.textNode||(o?t.nodeBefore:t.nodeAfter),s=null;for(;r&&r.getAttribute(e)==n;)s=r,r=o?r.previousSibling:r.nextSibling;return s?i.createPositionAt(s,o?"before":"after"):t}function hp(t,e,n,o){let i,r=null;"function"==typeof o?i=o:(r=t.commands.get(o),i=()=>{t.execute(o)}),t.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const l=Fa(t.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(t.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof o&&!["numberedList","bulletedList","todoList"].includes(o))return;if(r&&!0===r.value)return;const h=u.getChild(0),m=t.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const g=n.exec(h.data.substr(0,l.end.offset));g&&t.model.enqueueChange((e=>{const n=e.createPositionAt(u,0),o=e.createPositionAt(u,g[0].length),r=new fl(n,o);if(!1!==i({match:g})){e.remove(r);const n=t.model.document.selection.getFirstRange(),o=e.createRangeIn(u);!u.isEmpty||o.isEqual(n)||o.containsRange(n,!0)||e.remove(u)}r.detach(),t.model.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function mp(t,e,n,o){let i,r;n instanceof RegExp?i=n:r=n,r=r||(t=>{let e;const n=[],o=[];for(;null!==(e=i.exec(t))&&!(e&&e.length<4);){let{index:t,1:i,2:r,3:s}=e;const a=i+r+s;t+=e[0].length-a.length;const l=[t,t+i.length],c=[t+i.length+r.length,t+i.length+r.length+s.length];n.push(l),n.push(c),o.push([t+i.length,t+i.length+r.length])}return{remove:n,format:o}}),t.model.document.on("change:data",((n,i)=>{if(i.isUndo||!i.isLocal||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const l=Array.from(s.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:m}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>!o.is("$text")&&!o.is("$textProxy")||o.getAttribute("code")?(n=e.createPositionAfter(o),""):t+o.data),""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(u,0),d),s),g=r(h),p=gp(m.start,g.format,s),f=gp(m.start,g.remove,s);p.length&&f.length&&s.enqueueChange((e=>{if(!1!==o(e,p)){for(const t of f.reverse())e.remove(t);s.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function gp(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function pp(t,e){return(n,o)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(o,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}function*fp(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class kp extends ge{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n,o){const i=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(o.isLimit(s)||o.isLimit(a))return void(i||s!=a||t.deleteContent(n));if(i){const t=fp(e.model.schema,n.getAttributes());bp(e,r.start),e.setSelectionAttribute(t)}else{const o=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;t.deleteContent(n,{leaveUnmerged:o}),o&&(i?bp(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})}))}}function bp(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class wp extends Ms{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(this.isEnabled&&n.keyCode==dr.enter){const o=new Wi(e,"enter",e.selection.getFirstRange());e.fire(o,new Xs(e,n.domEvent,{isSoft:n.shiftKey})),o.stop.called&&t.stop()}}))}observe(){}}class Ap extends he{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(wp),t.commands.add("enter",new kp(t)),this.listenTo(n,"enter",((n,o)=>{o.preventDefault(),o.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"})}}class _p extends ge{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const o=n.isCollapsed,i=n.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(o){const o=fp(t.schema,n.getAttributes());Cp(t,e,i.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o}),a?Cp(t,e,n.focus):o&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const o=e.getFirstRange(),i=o.start.parent,r=o.end.parent;if((vp(i,t)||vp(r,t))&&i!==r)return!1;return!0}(t.schema,e.selection)}}function Cp(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n),e.setSelection(o,"after")}function vp(t,e){return!t.is("rootElement")&&(e.isLimit(t)||vp(t.parent,e))}class yp extends he{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,o=t.editing.view,i=o.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),o.addObserver(wp),t.commands.add("shiftEnter",new _p(t)),this.listenTo(i,"enter",((e,n)=>{n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),o.scrollToTheSelection())}),{priority:"low"})}}class xp extends ge{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,o=e.document.selection,i=Array.from(o.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(r){const e=i.filter((t=>Ep(t)||Sp(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,i.filter(Ep))}))}_getValue(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!Ep(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Fa(t.getSelectedBlocks());return!!n&&Sp(e,n)}_removeQuote(t,e){Dp(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];Dp(t,e).reverse().forEach((e=>{let o=Ep(e.start);o||(o=t.createElement("blockQuote"),t.wrap(e,o)),n.push(o)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function Ep(t){return"blockQuote"==t.parent.name?t.parent:null}function Dp(t,e){let n,o=0;const i=[];for(;o{const o=t.model.document.differ.getChanges();for(const t of o)if("insert"==t.type){const o=t.position.nodeAfter;if(!o)continue;if(o.is("element","blockQuote")&&o.isEmpty)return n.remove(o),!0;if(o.is("element","blockQuote")&&!e.checkChild(t.position,o))return n.unwrap(o),!0;if(o.is("element")){const t=n.createRangeIn(o);for(const o of t.getItems())if(o.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(o),o))return n.unwrap(o),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,o=t.model.document.selection,i=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{if(!o.isCollapsed||!i.value)return;o.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!o.isCollapsed||!i.value)return;const r=o.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}var Mp=n(636),Tp={attributes:{"data-cke":!0}};Tp.setAttributes=os(),Tp.insert=es().bind(null,"head"),Tp.domAPI=Xr(),Tp.insertStyleElement=rs();Qr()(Mp.Z,Tp);Mp.Z&&Mp.Z.locals&&Mp.Z.locals;class Bp extends he{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",(n=>{const o=t.commands.get("blockQuote"),i=new xu(n);return i.set({label:e("Block quote"),icon:Hd.quote,tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),i}))}}class Np extends ge{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}const zp="bold";class Pp extends he{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:zp}),t.model.schema.setAttributeProperties(zp,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:zp,view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add(zp,new Np(t,zp)),t.keystrokes.set("CTRL+B",zp)}}const Lp="bold";class Op extends he{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Lp,(n=>{const o=t.commands.get(Lp),i=new xu(n);return i.set({label:e("Bold"),icon:'',keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Lp),t.editing.view.focus()})),i}))}}class Rp{constructor(t){this.files=function(t){const e=Array.from(t.files||[]),n=Array.from(t.items||[]);if(e.length)return e;return n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}class jp extends ta{constructor(t){super(t);const n=this.document;function o(t){return(o,i)=>{i.preventDefault();const r=i.dropRange?[i.dropRange]:null,s=new e(n,t);n.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:r,target:i.target}),s.stop.called&&i.stopPropagation()}}this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"],this.listenTo(n,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"dragover",o("dragging"),{priority:"low"})}onDomEvent(t){const e={dataTransfer:new Rp(t.clipboardData?t.clipboardData:t.dataTransfer)};"drop"!=t.type&&"dragover"!=t.type||(e.dropRange=function(t,e){const n=e.target.ownerDocument,o=e.clientX,i=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(o,i)?r=n.caretRangeFromPoint(o,i):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));if(r)return t.domConverter.domRangeToView(r);return null}(this.view,t)),this.fire(t.type,t,e)}}const Vp=["figcaption","li"];function Fp(t){let e="";if(t.is("$text")||t.is("$textProxy"))e=t.data;else if(t.is("element","img")&&t.hasAttribute("alt"))e=t.getAttribute("alt");else if(t.is("element","br"))e="\n";else{let n=null;for(const o of t.getChildren()){const t=Fp(o);n&&(n.is("containerElement")||o.is("containerElement"))&&(Vp.includes(n.name)||Vp.includes(o.name)?e+="\n":e+="\n\n"),e+=t,n=o}}return e}class Hp extends he{static get pluginName(){return"ClipboardPipeline"}init(){this.editor.editing.view.addObserver(jp),this._setupPasteDrop(),this._setupCopyCut()}_setupPasteDrop(){const t=this.editor,n=t.model,o=t.editing.view,i=o.document;this.listenTo(i,"clipboardInput",(e=>{t.isReadOnly&&e.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((t,n)=>{const i=n.dataTransfer;let r=n.content||"";var s;r||(i.getData("text/html")?r=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

").replace(/\r?\n/g,"
").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

")||s.includes("
"))&&(s=`

${s}

`),r=s),r=this.editor.data.htmlProcessor.toView(r));const a=new e(this,"inputTransformation");this.fire(a,{content:r,dataTransfer:i,targetRanges:n.targetRanges,method:n.method}),a.stop.called&&t.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,e)=>{if(e.content.isEmpty)return;const o=this.editor.data.toModel(e.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),n.change((()=>{this.fire("contentInsertion",{content:o,method:e.method,dataTransfer:e.dataTransfer,targetRanges:e.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=n.insertContent(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document;function o(o,i){const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:r,content:s,method:o.name})}this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():o(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Fp(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}class Up{constructor(){this._stack=[]}add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(Wp(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&Gp(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function Wp(t,e){return t&&e&&t.priority==e.priority&&qp(t.classes)==qp(e.classes)}function Gp(t,e){return t.priority>e.priority||!(t.priorityqp(e.classes)}function qp(t){return Array.isArray(t)?t.sort().join(","):t}ue(Up,k);const Zp='',Yp="ck-widget_selected";function Kp(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function $p(t,e,n={}){if(!t.is("containerElement"))throw new l("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=of,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new wu;return n.set("content",Zp),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),Xp(t,e),t}function Qp(t,e,n){if(e.classes&&n.addClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function Jp(t,e,n){if(e.classes&&n.removeClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function Xp(t,e,n=Qp,o=Jp){const i=new Up;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)})),e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function tf(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function ef(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),Xp(t,e),t}function nf(t,e){const n=t.getSelectedElement();if(n){const o=af(t);if(o)return e.createRange(e.createPositionAt(n,o))}return md(t,e)}function of(){return null}const rf="widget-type-around";function sf(t,e,n){return t&&Kp(t)&&!n.isInline(e)}function af(t){return t.getAttribute(rf)}var lf=n(5137),cf={attributes:{"data-cke":!0}};cf.setAttributes=os(),cf.insert=es().bind(null,"head"),cf.domAPI=Xr(),cf.insertStyleElement=rs();Qr()(lf.Z,cf);lf.Z&&lf.Z.locals&&lf.Z.locals;const df=["before","after"],uf=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,hf="ck-widget__type-around_disabled";class mf extends he{static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Ap,Gg]}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(hf,n):t.addClass(hf,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=af(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,i)=>{const r=i.mapper.toViewElement(n.item);sf(r,n.item,e)&&function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of df){const o=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n]},children:[t.ownerDocument.importNode(uf,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(i.writer,o,r)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[Kp,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(sf(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(df.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!sf(a,s,o))return;const l=af(e.selection);l&&(i.addClass(r(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(rf)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=pr(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;sf(l,n.editing.mapper.toModelElement(l),r)?c=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=af(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(rf,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(rf),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!sf(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(rf,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!sf(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(rf,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:sf(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:Kp})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[dr.enter,dr.delete,dr.backspace];this._listenToIfEnabled(t.document,"keydown",((t,n)=>{e.includes(n.keyCode)||Rg(n)||this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=af(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),l="forward"==s;if("before"===r===l)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:Kp})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=af(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),l=e.insertContent(o,a);return t.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=af(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;af(e)&&t.stop()}),{priority:"high"})}}function gf(t){const e=t.model;return(n,o)=>{const i=o.keyCode==dr.arrowup,r=o.keyCode==dr.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const l=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,l))return;const c=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=pf(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=ff(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=pf(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=ff(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(s)return}(c.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ea.getDomRangeRects(s);let l;for(const t of a)if(void 0!==l){if(Math.round(t.top)>=l)return!1;l=Math.max(l,Math.round(t.bottom))}else l=Math.round(t.bottom);return!0}(t,c,l))&&(e.change((t=>{const n=l?c.end:c.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function pf(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function ff(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var kf=n(6507),bf={attributes:{"data-cke":!0}};bf.setAttributes=os(),bf.insert=es().bind(null,"head"),bf.domAPI=Xr(),bf.insertStyleElement=rs();Qr()(kf.Z,bf);kf.Z&&kf.Z.locals&&kf.Z.locals;class wf extends he{static get pluginName(){return"Widget"}static get requires(){return[mf,Gg]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);Kp(a)&&o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:tf(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;Kp(t)&&!Af(t,r)&&(o.addClass(Yp,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(Mm),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[Kp,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",gf(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,i=o.document;let r=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Kp(t))return!1;t=t.parent}return!1}(r)){if((sr.isSafari||sr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,o=r.is("attributeElement")?r.findAncestor((t=>!t.is("attributeElement"))):r,i=t.toModelElement(o);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(i,"in")}))}return}if(!Kp(r)&&(r=r.findAncestor(Kp),!r))return;sr.isAndroid&&e.preventDefault(),i.isFocused||o.focus();const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=pr(n,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(s&&i.isObject(s)){const n=l?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,l?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,c=s.nodeBefore;return void((a&&i.isObject(a)||c&&i.isObject(c))&&(o.change((t=>{t.setSelection(l?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(l);if(d&&i.isObject(d)){if(i.isInline(d)&&c)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(Yp,e);this._previouslySelected.clear()}}function Af(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}const _f=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return x(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),ga(t,e,{leading:o,maxWait:e,trailing:i})};var Cf=n(390),vf={attributes:{"data-cke":!0}};vf.setAttributes=os(),vf.insert=es().bind(null,"head"),vf.domAPI=Xr(),vf.insertStyleElement=rs();Qr()(Cf.Z,vf);Cf.Z&&Cf.Z.locals&&Cf.Z.locals;class yf extends he{static get pluginName(){return"DragDrop"}static get requires(){return[Hp,wf]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=_f((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=Df((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=Df((()=>this._clearDraggableAttributes()),40),e.addObserver(jp),e.addObserver(Mm),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),sr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,o=t.editing.view,i=o.document;this.listenTo(i,"dragstart",((o,s)=>{const a=n.selection;if(s.target&&s.target.is("editableElement"))return void s.preventDefault();const l=s.target?Sf(s.target):null;if(l){const n=t.editing.mapper.toModelElement(l);this._draggedRange=fl.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!i.selection.isCollapsed){const t=i.selection.getSelectedElement();t&&Kp(t)||(this._draggedRange=fl.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void s.preventDefault();this._draggingUid=r(),s.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",s.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const c=e.createSelection(this._draggedRange.toRange()),d=t.data.toView(e.getSelectedContent(c));i.fire("clipboardOutput",{dataTransfer:s.dataTransfer,content:d,method:o.name}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const o=xf(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),sr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),o&&this._updateDropMarkerThrottled(o)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const o=xf(t,n.targetRanges,n.target);if(this._removeDropMarker(),!o)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Ef(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(o,!0))return this._finalizeDragging(!1),void e.stop();n.targetRanges=[t.editing.mapper.toViewRange(o)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(Hp);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==Ef(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,i)=>{if(sr.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let r=Sf(i.target);if(sr.isBlink&&!t.isReadOnly&&!r&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&Kp(t)||(r=n.selection.editableElement)}r&&(e.change((t=>{t.setAttribute("draggable","true",r)})),this._draggableElement=t.editing.mapper.toModelElement(r))})),this.listenTo(n,"mouseup",(()=>{sr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.innerHTML="⁠⁠",e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function xf(t,e,n){const o=t.model,i=t.editing.mapper;let r=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),r=function(t,e){const n=t.model,o=t.editing.mapper;if(Kp(e))return n.createRangeOn(o.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>Kp(t)||t.is("editableElement")));if(Kp(t))return n.createRangeOn(o.toModelElement(t))}return null}(t,n),r)return r;const a=function(t,e){const n=t.editing.mapper,o=t.editing.view,i=n.toModelElement(e);if(i)return i;const r=o.createPositionBefore(e),s=n.findMappedViewAncestor(r);return n.toModelElement(s)}(t,n),l=s?i.toModelPosition(s):null;return l?(r=function(t,e,n){const o=t.model;if(!o.schema.checkChild(n,"$block"))return null;const i=o.createPositionAt(n,0),r=e.path.slice(0,i.path.length),s=o.createPositionFromPath(e.root,r).nodeAfter;if(s&&o.schema.isObject(s))return o.createRangeOn(s);return null}(t,l,a),r||(r=o.schema.getNearestSelectionRange(l,sr.isGecko?"forward":"backward"),r||function(t,e){const n=t.model;for(;e;){if(n.schema.isObject(e))return n.createRangeOn(e);e=e.parent}}(t,l.parent))):function(t,e){const n=t.model,o=n.schema,i=n.createPositionAt(e,0);return o.getNearestSelectionRange(i,"forward")}(t,a)}function Ef(t){return sr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function Df(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function Sf(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(Kp);if(Kp(t))return t;const e=t.findAncestor((t=>Kp(t)||t.is("editableElement")));return Kp(e)?e:null}class If extends he{static get pluginName(){return"PastePlainText"}static get requires(){return[Hp]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(jp),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(Hp).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==[...n.getAttributeKeys()].length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class Mf extends he{static get pluginName(){return"Clipboard"}static get requires(){return[Hp,yf,If]}}class Tf extends ge{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!Bf(t.schema,n))do{if(n=n.parent,!n)return}while(!Bf(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function Bf(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const Nf=mr("Ctrl+A");class zf extends he{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new Tf(t)),this.listenTo(e,"keydown",((e,n)=>{hr(n)===Nf&&(t.execute("selectAll"),n.preventDefault())}))}}class Pf extends he{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),o=new xu(e),i=e.t;return o.set({label:i("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),o.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(o,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),o}))}}class Lf extends he{static get requires(){return[zf,Pf]}static get pluginName(){return"SelectAll"}}class Of extends ge{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!jf(t,a)));e.length&&(Rf(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=Cm([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const i of s)e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}function Rf(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class Vf extends Of{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,o)})),this.refresh()}}class Ff extends Of{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class Hf extends he{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new Vf(t),this._redoCommand=new Ff(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand._createdBatches.has(o),r=this._undoCommand._createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}const Uf='',Wf='';class Gf extends he{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Uf:Wf,i="ltr"==e.uiLanguageDirection?Wf:Uf;this._addButton("undo",n("Undo"),"CTRL+Z",o),this._addButton("redo",n("Redo"),"CTRL+Y",i)}_addButton(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const s=i.commands.get(t),a=new xu(r);return a.set({label:e,icon:o,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{i.execute(t),i.editing.view.focus()})),a}))}}class qf extends he{static get requires(){return[Hf,Gf]}static get pluginName(){return"Undo"}}class Zf extends ge{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute(this.attributeKey),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=t.value;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,o):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}}class Yf extends So{constructor(t){super(t),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(t,e){this.find((e=>e.color===t.color))||super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}ue(Yf,re);var Kf=n(2585),$f={attributes:{"data-cke":!0}};$f.setAttributes=os(),$f.insert=es().bind(null,"head"),$f.domAPI=Xr(),$f.insertStyleElement=rs();Qr()(Kf.Z,$f);Kf.Z&&Kf.Z.locals&&Kf.Z.locals;class Qf extends Kd{constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){super(t),this.items=this.createCollection(),this.colorDefinitions=e,this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("selectedColor"),this.removeButtonLabel=o,this.columns=n,this.documentColors=new Yf,this.documentColorsCount=r,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-table"]},children:this.items}),this.items.add(this._removeColorButton())}updateDocumentColors(t,e){const n=t.document,o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRootNames()){const r=n.getRoot(i),s=t.createRangeIn(r);for(const t of s.getItems())if(t.is("$textProxy")&&t.hasAttribute(e)&&(this._addColorToDocumentColors(t.getAttribute(e)),this.documentColors.length>=o))return}}updateSelectedColors(){const t=this.documentColorsGrid,e=this.staticColorsGrid,n=this.selectedColor;e.selectedColor=n,t&&(t.selectedColor=n)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendGrids(){if(!this.staticColorsGrid&&(this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount)){const t=$d.bind(this.documentColors,this.documentColors),e=new vh(this.locale);e.text=this._documentColorsLabel,e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}}),this.items.add(e),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_removeColorButton(){const t=new xu;return t.set({withText:!0,icon:Hd.eraser,tooltip:!0,label:this.removeButtonLabel}),t.class="ck-color-table__remove-color",t.on("execute",(()=>{this.fire("execute",{value:null})})),t}_createStaticColorsGrid(){const t=new Ru(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return t.delegate("execute").to(this),t}_createDocumentColorsGrid(){const t=$d.bind(this.documentColors,this.documentColors),e=new Ru(this.locale,{columns:this.columns});return e.delegate("execute").to(this),e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}}),e.items.bindTo(this.documentColors).using((t=>{const e=new Bu;return e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder}),t.label&&e.set({label:t.label,tooltip:!0}),e.on("execute",(()=>{this.fire("execute",{value:t.color})})),e})),this.documentColors.on("change:isEmpty",((t,n,o)=>{o&&(e.selectedColor=null)})),e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));e?this.documentColors.add(Object.assign({},e)):this.documentColors.add({color:t,label:t,options:{hasBorder:!1}})}}const Jf="fontSize",Xf="fontFamily",tk="fontColor";function ek(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e)n.model.values.push(t.model),n.view[t.model]=t.view,t.upcastAlso&&(n.upcastAlso[t.model]=t.upcastAlso);return n}function nk(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}class ok extends Zf{constructor(t){super(t,tk)}}class ik extends he{static get pluginName(){return"FontColorEditing"}constructor(t){var e;super(t),t.config.define(tk,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:tk,value:(e="color",t=>t.getStyle(e).replace(/\s/g,""))}}),t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:tk,value:t=>t.getAttribute("color")}}),t.conversion.for("downcast").attributeToElement({model:tk,view:nk("color")}),t.commands.add(tk,new ok(t)),t.model.schema.extend("$text",{allowAttributes:tk}),t.model.schema.setAttributeProperties(tk,{isFormatting:!0,copyOnEnter:!0})}}class rk extends he{constructor(t,{commandName:e,icon:n,componentName:o,dropdownLabel:i}){super(t),this.commandName=e,this.componentName=o,this.icon=n,this.dropdownLabel=i,this.columns=t.config.get(`${this.componentName}.columns`),this.colorTableView=void 0}init(){const t=this.editor,e=t.locale,n=e.t,o=t.commands.get(this.commandName),i=Iu(e,Mu(t.config.get(this.componentName).colors)),r=t.config.get(`${this.componentName}.documentColors`);t.ui.componentFactory.add(this.componentName,(e=>{const s=ph(e);return this.colorTableView=function({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){const s=t.locale,a=new Qf(s,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r});return t.colorTableView=a,t.panelView.children.add(a),a.delegate("execute").to(t,"execute"),a}({dropdownView:s,colors:i.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),documentColorsLabel:0!==r?n("Document colors"):void 0,documentColorsCount:void 0===r?this.columns:r}),this.colorTableView.bind("selectedColor").to(o,"value"),s.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:!0}),s.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}}),s.bind("isEnabled").to(o),s.on("execute",((e,n)=>{t.execute(this.commandName,n),t.editing.view.focus()})),s.on("change:isOpen",((e,n,o)=>{s.colorTableView.appendGrids(),o&&(0!==r&&this.colorTableView.updateDocumentColors(t.model,this.componentName),this.colorTableView.updateSelectedColors())})),s}))}}class sk extends rk{constructor(t){const e=t.locale.t;super(t,{commandName:tk,componentName:tk,icon:'',dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class ak extends Zf{constructor(t){super(t,Xf)}}function lk(t){return t.map(ck).filter((t=>!!t))}function ck(t){return"object"==typeof t?t:"default"===t?{title:"Default",model:void 0}:"string"==typeof t?function(t){const e=t.replace(/"|'/g,"").split(","),n=e[0],o=e.map(dk).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}(t):void 0}function dk(t){return(t=t.trim()).indexOf(" ")>0&&(t=`'${t}'`),t}class uk extends he{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t),t.config.define(Xf,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Xf}),t.model.schema.setAttributeProperties(Xf,{isFormatting:!0,copyOnEnter:!0});const e=lk(t.config.get("fontFamily.options")).filter((t=>t.model)),n=ek(Xf,e);t.config.get("fontFamily.supportAllValues")?(this._prepareAnyValueConverters(),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(n),t.commands.add(Xf,new ak(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:Xf,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})}),t.conversion.for("upcast").elementToAttribute({model:{key:Xf,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:Xf,value:t=>t.getAttribute("face")}})}}class hk extends he{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Xf);t.ui.componentFactory.add(Xf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new So;for(const o of t){const t={type:"button",model:new Hh({commandName:Xf,commandParam:o.model,label:o.title,withText:!0})};t.model.bind("isOn").to(e,"value",(t=>t===o.model||!(!t||!o.model)&&t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase())),o.view&&o.view.styles&&t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Family"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:"ck-font-family-dropdown"}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t;return lk(t.config.get(Xf).options).map((t=>("Default"===t.title&&(t.title=e("Default")),t)))}}class mk extends Zf{constructor(t){super(t,Jf)}}function gk(t){return t.map((t=>function(t){if(e=t,"object"==typeof e&&e.title&&e.model&&e.view)return fk(t);var e;const n=function(t){return pk[t]||pk[t.model]}(t);if(n)return fk(n);if("default"===t)return{model:void 0,title:"Default"};if(function(t){let e;if("object"==typeof t){if(!t.model)throw new l("font-size-invalid-definition",null,t);e=parseFloat(t.model)}else e=parseFloat(t);return isNaN(e)}(t))return;return function(t){"number"!=typeof t&&"string"!=typeof t||(t={title:String(t),model:`${parseFloat(t)}px`});return t.view={name:"span",styles:{"font-size":t.model}},fk(t)}(t)}(t))).filter((t=>!!t))}const pk={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function fk(t){return t.view.priority||(t.view.priority=7),t}const kk=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class bk extends he{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t),t.config.define(Jf,{options:["tiny","small","default","big","huge"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Jf}),t.model.schema.setAttributeProperties(Jf,{isFormatting:!0,copyOnEnter:!0});const e=t.config.get("fontSize.supportAllValues"),n=gk(this.editor.config.get("fontSize.options")).filter((t=>t.model)),o=ek(Jf,n);e?(this._prepareAnyValueConverters(o),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(o),t.commands.add(Jf,new mk(t))}_prepareAnyValueConverters(t){const e=this.editor,n=t.model.values.filter((t=>!Hm(String(t))&&!Wm(String(t))));if(n.length)throw new l("font-size-invalid-use-of-named-presets",null,{presets:n});e.conversion.for("downcast").attributeToElement({model:Jf,view:(t,{writer:e})=>{if(t)return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}}),e.conversion.for("upcast").elementToAttribute({model:{key:Jf,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:Jf,value:t=>{const e=t.getAttribute("size"),n="-"===e[0]||"+"===e[0];let o=parseInt(e,10);n&&(o=3+o);const i=kk.length-1,r=Math.min(Math.max(o,0),i);return kk[r]}}})}}var wk=n(6203),Ak={attributes:{"data-cke":!0}};Ak.setAttributes=os(),Ak.insert=es().bind(null,"head"),Ak.domAPI=Xr(),Ak.insertStyleElement=rs();Qr()(wk.Z,Ak);wk.Z&&wk.Z.locals&&wk.Z.locals;class _k extends he{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Jf);t.ui.componentFactory.add(Jf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new So;for(const o of t){const t={type:"button",model:new Hh({commandName:Jf,commandParam:o.model,label:o.title,class:"ck-fontsize-option",withText:!0})};o.view&&o.view.styles&&t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`),o.view&&o.view.classes&&t.model.set("class",`${t.model.class} ${o.view.classes}`),t.model.bind("isOn").to(e,"value",(t=>t===o.model)),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Size"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t,n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};return gk(t.config.get(Jf).options).map((t=>{const e=n[t.title];return e&&e!=t.title&&(t=Object.assign({},t,{title:e})),t}))}}class Ck extends ge{refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&vk(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((o=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i)!t.is("element","paragraph")&&vk(t,e.schema)&&o.rename(t,"paragraph")}))}}function vk(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class yk extends ge{execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.change((t=>{const i=t.createElement("paragraph");if(n&&e.schema.setAllowedAttributes(i,n,t),!e.schema.checkChild(o.parent,i)){const n=e.schema.findAllowedParent(o,i);if(!n)return;o=t.split(o,n).position}e.insertContent(i,o),t.setSelection(i,"in")}))}}class xk extends he{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Ck(t)),t.commands.add("insertParagraph",new yk(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>xk.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}xk.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class Ek extends ge{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Dk(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Dk(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function Dk(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const Sk="paragraph";class Ik extends he{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[xk]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)o.model!==Sk&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new Ek(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",Sk)&&0===i.childCount&&o.writer.rename(i,Sk)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:s.get("low")+1})}}var Mk=n(3230),Tk={attributes:{"data-cke":!0}};Tk.setAttributes=os(),Tk.insert=es().bind(null,"head"),Tk.domAPI=Xr(),Tk.insertStyleElement=rs();Qr()(Mk.Z,Tk);Mk.Z&&Mk.Z.locals&&Mk.Z.locals;class Bk extends he{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new So,a=t.commands.get("heading"),l=t.commands.get("paragraph"),c=[a];for(const t of n){const e={type:"button",model:new Hh({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),c.push(l)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=ph(e);return kh(d,s),d.buttonView.set({isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",l,"value",((t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:o})),this.listenTo(d,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),d}))}}class Nk extends he{static get requires(){return[em]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Kp(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void c("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new nh(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new l("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,r.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:o,balloonClassName:i})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?zk(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Pk(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);zk(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function zk(t,e){const n=t.plugins.get("ContextualBalloon"),o=Pk(t,e);n.updatePosition(o)}function Pk(t,e){const n=t.editing.view,o=Yh.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class Lk{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,n){const o=new Ea(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains(Ok(n)))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ea(t),o=e.split("-"),i={x:"right"==o[1]?n.right:n.left,y:"bottom"==o[0]?n.bottom:n.top};return i.x+=t.ownerDocument.defaultView.scrollX,i.y+=t.ownerDocument.defaultView.scrollY,i}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=o.width,this.originalHeight=o.height,this.aspectRatio=o.width/o.height;const i=n.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this.originalWidthPercents=parseFloat(i):this.originalWidthPercents=function(t,e){const n=t.parentElement,o=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);return e.width/o*100}(n,o)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}function Ok(t){return`ck-widget__resizer__handle-${t}`}ue(Lk,re);class Rk extends Kd{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,o)=>"px"===t.unit?`${e}×${n}`:`${o}%`)),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class jk{constructor(t){this._options=t,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"}),this.on("change:isEnabled",(()=>{this.isEnabled&&this.redraw()}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const o=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),t.on("change:isEnabled",((t,e,o)=>{n.style.display=o?"":"none"})),n.style.display=t.isEnabled?"":"none",n}));n.insert(n.createPositionAt(e,"end"),o),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=o}))}begin(t){this.state=new Lk(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",o=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",o,this._options.viewElement)}));const n=this._getHandleHost(),o=new Ea(n);e.handleHostWidth=Math.round(o.width),e.handleHostHeight=Math.round(o.height);const i=new Ea(n);e.width=Math.round(i.width),e.height=Math.round(i.height),this.redraw(o),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const o=e.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(o.isSameNode(i)){const e=t||new Ea(i);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==Oo(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(o=t).pageX,y:o.pageY};var o;const i=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};i&&e.activeHandlePosition.endsWith("-right")&&(r.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),i&&(r.x*=2);const s={width:Math.abs(e.originalWidth+r.x),height:Math.abs(e.originalHeight+r.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)t.appendChild(new $d({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=o,`ck-widget__resizer__handle-${n}`)}}).render());var n}_appendSizeUI(t){this._sizeView=new Rk,this._sizeView.render(),t.appendChild(this._sizeView.element)}}ue(jk,re);var Vk=n(2263),Fk={attributes:{"data-cke":!0}};Fk.setAttributes=os(),Fk.insert=es().bind(null,"head"),Fk.domAPI=Xr(),Fk.insertStyleElement=rs();Qr()(Vk.Z,Fk);Vk.Z&&Vk.Z.locals&&Vk.Z.locals;class Hk extends he{static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=hs.window.document;this.set("visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map,t.view.addObserver(Mm),this._observer=Object.create(Ds),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));const n=()=>{this.visibleResizer&&this.visibleResizer.redraw()};this._redrawFocusedResizerThrottled=_f(n,200),this.on("change:visibleResizer",n),this.editor.ui.on("update",this._redrawFocusedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(hs.window,"resize",this._redrawFocusedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const t=o.getSelectedElement();this.visibleResizer=this.getResizerByViewElement(t)||null}))}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawFocusedResizerThrottled.cancel()}attachTo(t){const e=new jk(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const o=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(o)==e&&(this.visibleResizer=e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;jk.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n),this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}ue(Hk,re);class Uk extends ge{refresh(){const t=this.editor.model,e=t.schema,n=t.document.selection;this.isEnabled=function(t,e,n){const o=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,n);return e.checkChild(o,"horizontalLine")}(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}var Wk=n(2536),Gk={attributes:{"data-cke":!0}};Gk.setAttributes=os(),Gk.insert=es().bind(null,"head"),Gk.domAPI=Xr(),Gk.insertStyleElement=rs();Qr()(Wk.Z,Gk);Wk.Z&&Wk.Z.locals&&Wk.Z.locals;class qk extends he{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"}),o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")}),o.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line"),i=e.createContainerElement("div",null,e.createEmptyElement("hr"));return e.addClass("ck-horizontal-line",i),e.setCustomProperty("hr",!0,i),function(t,e,n){return e.setCustomProperty("horizontalLine",!0,t),$p(t,e,{label:n})}(i,e,o)}}),o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),t.commands.add("horizontalLine",new Uk(t))}}class Zk extends he{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("horizontalLine",(n=>{const o=t.commands.get("horizontalLine"),i=new xu(n);return i.set({label:e("Horizontal line"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("horizontalLine"),t.editing.view.focus()})),i}))}}class Yk extends ge{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}function Kk(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot()])}function $k(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function Qk(t,e){const n=Fa(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Jk extends he{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const o=this.editor,i=o.model,r=i.document.selection;n=Xk(o,e||r,n),t={...Object.fromEntries(r.getAttributes()),...t};for(const e in t)i.schema.checkAttribute(n,e)||delete t[e];return i.change((o=>{const r=o.createElement(n,t);return i.insertObject(r,e,null,{setSelection:"on",findOptimalPosition:!e&&"imageInline"!=n}),r.parent?r:null}))}getClosestSelectedImageWidget(t){const e=t.getSelectedElement();if(e&&this.isImageWidget(e))return e;let n=t.getFirstPosition().parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Xk(t,e)){const n=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return $p(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&Kp(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Xk(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"block"===i?"imageBlock":e.is("selection")?Qk(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class tb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Yk(this.editor))}}var eb=n(6831),nb={attributes:{"data-cke":!0}};nb.setAttributes=os(),nb.insert=es().bind(null,"head"),nb.domAPI=Xr(),nb.insertStyleElement=rs();Qr()(eb.Z,nb);eb.Z&&eb.Z.locals&&eb.Z.locals;var ob=n(1590),ib={attributes:{"data-cke":!0}};ib.setAttributes=os(),ib.insert=es().bind(null,"head"),ib.domAPI=Xr(),ib.insertStyleElement=rs();Qr()(ob.Z,ib);ob.Z&&ob.Z.locals&&ob.Z.locals;class rb extends Kd{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Gd({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Text alternative"),e}}function sb(t){const e=t.editing.view,n=Yh.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.viewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class ab extends he{static get requires(){return[em]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new xu(n);return i.set({label:e("Change image text alternative"),icon:Hd.lowVision,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new rb(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=sb(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Ud({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:sb(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class lb extends he{static get requires(){return[tb,ab]}static get pluginName(){return"ImageTextAlternative"}}function cb(t,e){return t=>{t.on(`attribute:srcset:${e}`,n)};function n(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s),t.width&&i.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(i.setAttribute("srcset",t.data,s),i.setAttribute("sizes","100vw",s),t.width&&i.setAttribute("width",t.width,s))}}}function db(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,o)};function o(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class ub extends Ms{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class hb extends ge{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&c("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&c("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=Mo(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class mb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(ub),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new hb(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class gb extends ge{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(e.document.selection),i=Object.fromEntries(o.getAttributes());return i.src||i.uploadId?e.change((t=>{const r=Array.from(e.markers).filter((t=>t.getRange().containsItem(o))),s=n.insertImage(i,e.createSelection(o,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of r){const n=e.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:o})}return{oldElement:o,newElement:s}})):null}}class pb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new gb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>Kk(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget(Kk(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageBlock","src")).add(db(o,"imageBlock","alt")).add(cb(o,"imageBlock")),n.for("upcast").elementToElement({view:$k(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,o){if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Fa(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageBlock"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}}))}}var fb=n(9048),kb={attributes:{"data-cke":!0}};kb.setAttributes=os(),kb.insert=es().bind(null,"head"),kb.domAPI=Xr(),kb.insertStyleElement=rs();Qr()(fb.Z,kb);fb.Z&&fb.Z.locals&&fb.Z.locals;class bb extends he{static get requires(){return[pb,wf,lb]}static get pluginName(){return"ImageBlock"}}class wb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new gb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageInline","src")).add(db(o,"imageInline","alt")).add(cb(o,"imageInline")),n.for("upcast").elementToElement({view:$k(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageInline"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}}))}}class Ab extends he{static get requires(){return[wb,wf,lb]}static get pluginName(){return"ImageInline"}}class _b extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils").getClosestSelectedImageElement(t.model.document.selection);this.isEnabled=!!e,e&&e.hasAttribute("width")?this.value={width:e.getAttribute("width"),height:null}:this.value=null}execute(t){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(n.document.selection);this.value={width:t.width,height:null},o&&n.change((e=>{e.setAttribute("width",t.width,o)}))}}class Cb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t),t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor,e=new _b(t);this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline"),t.commands.add("resizeImage",e),t.commands.add("imageResize",e)}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:"width"}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:"width"})}_registerConverters(t){const e=this.editor;e.conversion.for("downcast").add((e=>e.on(`attribute:width:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewElement(e.item);null!==e.attributeNewValue?(o.setStyle("width",e.attributeNewValue,i),o.addClass("image_resized",i)):(o.removeStyle("width",i),o.removeClass("image_resized",i))})))),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{width:/.+/}},model:{key:"width",value:t=>t.getStyle("width")}})}}const vb={small:Hd.objectSizeSmall,medium:Hd.objectSizeMedium,large:Hd.objectSizeLarge,original:Hd.objectSizeFull};class yb extends he{static get requires(){return[Cb]}static get pluginName(){return"ImageResizeButtons"}constructor(t){super(t),this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor,e=t.config.get("image.resizeOptions"),n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e)this._registerImageResizeButton(t);this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor,{name:n,value:o,icon:i}=t,r=o?o+this._resizeUnit:null;e.ui.componentFactory.add(n,(n=>{const o=new xu(n),s=e.commands.get("resizeImage"),a=this._getOptionLabelValue(t,!0);if(!vb[i])throw new l("imageresizebuttons-missing-icon",e,t);return o.set({label:a,icon:vb[i],tooltip:a,isToggleable:!0}),o.bind("isEnabled").to(this),o.bind("isOn").to(s,"value",xb(r)),this.listenTo(o,"execute",(()=>{e.execute("resizeImage",{width:r})})),o}))}_registerImageResizeDropdown(t){const e=this.editor,n=e.t,o=t.find((t=>!t.value)),i=i=>{const r=e.commands.get("resizeImage"),s=ph(i,Vu),a=s.buttonView;return a.set({tooltip:n("Resize image"),commandValue:o.value,icon:vb.medium,isToggleable:!0,label:this._getOptionLabelValue(o),withText:!0,class:"ck-resize-image-button"}),a.bind("label").to(r,"value",(t=>t&&t.width?t.width:this._getOptionLabelValue(o))),s.bind("isOn").to(r),s.bind("isEnabled").to(this),kh(s,this._getResizeDropdownListItemDefinitions(t,r)),s.listView.ariaLabel=n("Image resize list"),this.listenTo(s,"execute",(t=>{e.execute(t.source.commandName,{width:t.source.commandValue}),e.editing.view.focus()})),s};e.ui.componentFactory.add("resizeImage",i),e.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(t,e){const n=this.editor.t;return t.label?t.label:e?t.value?n("Resize image to %0",t.value+this._resizeUnit):n("Resize image to the original size"):t.value?t.value+this._resizeUnit:n("Original")}_getResizeDropdownListItemDefinitions(t,e){const n=new So;return t.map((t=>{const o=t.value?t.value+this._resizeUnit:null,i={type:"button",model:new Hh({commandName:"resizeImage",commandValue:o,label:this._getOptionLabelValue(t),withText:!0,icon:null})};i.model.bind("isOn").to(e,"value",xb(o)),n.add(i)})),n}}function xb(t){return e=>null===t&&e===t||e&&e.width===t}const Eb=/(image|image-inline)/,Db="image_resized";class Sb extends he{static get requires(){return[Hk]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t),this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor,e=t.editing.view;e.addObserver(ub),this.listenTo(e.document,"imageLoaded",((n,o)=>{if(!o.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const i=t.editing.view.domConverter,r=i.domToView(o.target).findAncestor({classes:Eb});let s=this.editor.plugins.get(Hk).getResizerByViewElement(r);if(s)return void s.redraw();const a=t.editing.mapper,l=a.toModelElement(r);s=t.plugins.get(Hk).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:l,viewElement:r,editor:t,getHandleHost:t=>t.querySelector("img"),getResizeHost:()=>i.viewToDom(a.toViewElement(l.parent)),isCentered(){const t=l.getAttribute("imageStyle");return!t||"block"==t||"alignCenter"==t},onCommit(n){e.change((t=>{t.removeClass(Db,r)})),t.execute("resizeImage",{width:n})}}),s.on("updateSize",(()=>{r.hasClass(Db)||e.change((t=>{t.addClass(Db,r)}))})),s.bind("isEnabled").to(this)}))}}var Ib=n(1043),Mb={attributes:{"data-cke":!0}};Mb.setAttributes=os(),Mb.insert=es().bind(null,"head"),Mb.domAPI=Xr(),Mb.insertStyleElement=rs();Qr()(Ib.Z,Mb);Ib.Z&&Ib.Z.locals&&Ib.Z.locals;class Tb extends ge{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value;let r=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,r)&&(this.editor.execute(o.isBlockImage(r)?"imageTypeInline":"imageTypeBlock"),r=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",r):e.setAttribute("imageStyle",i,r)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:Bb,objectInline:Nb,objectLeft:zb,objectRight:Pb,objectCenter:Lb,objectBlockLeft:Ob,objectBlockRight:Rb}=Hd,jb={get inline(){return{name:"inline",title:"In line",icon:Nb,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:zb,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Ob,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Lb,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Pb,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Rb,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Lb,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Pb,modelElements:["imageBlock"],className:"image-style-side"}}},Vb={full:Bb,left:Ob,right:Rb,center:Lb,inlineLeft:zb,inlineRight:Pb,inline:Nb},Fb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Hb(t){c("image-style-configuration-definition-invalid",t)}const Ub={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?jb[t]?{...jb[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(jb[t.name],t);"string"==typeof t.icon&&(t.icon=Vb[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Hb({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return c("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Fb]:[]},warnInvalidStyle:Hb,DEFAULT_OPTIONS:jb,DEFAULT_ICONS:Vb,DEFAULT_DROPDOWN_DEFINITIONS:Fb};function Wb(t,e){for(const n of e)if(n.name===t)return n}class Gb extends he{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Jk]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Ub,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Tb(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=Wb(e.attributeNewValue,r),i=Wb(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Fa(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Jk),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var qb=n(4622),Zb={attributes:{"data-cke":!0}};Zb.setAttributes=os(),Zb.insert=es().bind(null,"head"),Zb.domAPI=Xr(),Zb.insertStyleElement=rs();Qr()(qb.Z,Zb);qb.Z&&qb.Z.locals&&qb.Z.locals;class Yb extends he{static get requires(){return[Gb]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Kb(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=Kb([...e.filter(x),...Ub.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,l=s.filter((t=>e.find((({name:e})=>$b(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==l.length&&Ub.warnInvalidStyle({dropdown:t});const c=ph(o,Uu),d=c.buttonView;return fh(c,l),d.set({label:Qb(a,i.label),class:null,tooltip:!0}),d.bind("icon").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return e<0?i.icon:l[e].icon})),d.bind("label").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return Qb(a,e<0?i.label:l[e].label)})),d.bind("isOn").toMany(l,"isOn",((...t)=>t.some(st))),d.bind("class").toMany(l,"isOn",((...t)=>t.some(st)?"ck-splitbutton_flatten":null)),d.on("execute",(()=>{l.some((({isOn:t})=>t))?c.isOpen=!c.isOpen:i.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some(st))),c}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add($b(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new xu(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Kb(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function $b(t){return`imageStyle:${t}`}function Qb(t,e){return(t?t+": ":"")+e}class Jb{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{o("error")},e.onabort=()=>{o("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}ue(Jb,re);class Xb extends he{static get pluginName(){return"FileRepository"}static get requires(){return[Vd]}init(){this.loaders=new So,this.loaders.on("add",(()=>this._updatePendingAction())),this.loaders.on("remove",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return c("filerepository-no-upload-adapter"),null;const e=new tw(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof tw?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(Vd);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}ue(Xb,re);class tw{constructor(t,e){this.id=r(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new Jb,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new l("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new l("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,o)=>{e.rejecter=o,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,o(t)}))})),e}}ue(tw,re);class ew extends Kd{constructor(t){super(t),this.buttonView=new xu(t),this._fileInputView=new nw(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class nw extends Kd{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class ow{constructor(t,e){this.loader=t,this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.options.uploadUrl,!0),t.responseType="json"}_initListeners(t,e,n){const o=this.xhr,i=this.loader,r=`Couldn't upload file: ${n.name}.`;o.addEventListener("error",(()=>e(r))),o.addEventListener("abort",(()=>e())),o.addEventListener("load",(()=>{const n=o.response;if(!n||n.error)return e(n&&n.error&&n.error.message?n.error.message:r);const i=n.url?{default:n.url}:n.urls;t({...n,urls:i})})),o.upload&&o.upload.addEventListener("progress",(t=>{t.lengthComputable&&(i.uploadTotal=t.total,i.uploaded=t.loaded)}))}_sendRequest(t){const e=this.options.headers||{},n=this.options.withCredentials||!1;for(const t of Object.keys(e))this.xhr.setRequestHeader(t,e[t]);this.xhr.withCredentials=n;const o=new FormData;o.append("upload",t),this.xhr.send(o)}}function iw(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function rw(t){return new Promise(((e,n)=>{const o=t.getAttribute("src");fetch(o).then((t=>t.blob())).then((t=>{const n=sw(t,o),i=n.replace("image/",""),r=new File([t],`image.${i}`,{type:n});e(r)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const o=hs.document.createElement("img");o.addEventListener("load",(()=>{const t=hs.document.createElement("canvas");t.width=o.width,t.height=o.height;t.getContext("2d").drawImage(o,0,0),t.toBlob((t=>t?e(t):n()))})),o.addEventListener("error",(()=>n())),o.src=t}))}(t).then((e=>{const n=sw(e,t),o=n.replace("image/","");return new File([e],`image.${o}`,{type:n})}))}(o).then(e).catch(n):n(t)))}))}function sw(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class aw extends he{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const o=new ew(n),i=t.commands.get("uploadImage"),r=t.config.get("image.upload.types"),s=iw(r);return o.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:!0}),o.buttonView.set({label:e("Insert image"),icon:Hd.image,tooltip:!0}),o.buttonView.bind("isEnabled").to(i),o.on("done",((e,n)=>{const o=Array.from(n).filter((t=>s.test(t.type)));o.length&&t.execute("uploadImage",{file:o})})),o};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}var lw=n(5870),cw={attributes:{"data-cke":!0}};cw.setAttributes=os(),cw.insert=es().bind(null,"head"),cw.domAPI=Xr(),cw.insertStyleElement=rs();Qr()(lw.Z,cw);lw.Z&&lw.Z.locals&&lw.Z.locals;var dw=n(9899),uw={attributes:{"data-cke":!0}};uw.setAttributes=os(),uw.insert=es().bind(null,"head"),uw.domAPI=Xr(),uw.insertStyleElement=rs();Qr()(dw.Z,uw);dw.Z&&dw.Z.locals&&dw.Z.locals;var hw=n(9825),mw={attributes:{"data-cke":!0}};mw.setAttributes=os(),mw.insert=es().bind(null,"head"),mw.domAPI=Xr(),mw.insertStyleElement=rs();Qr()(hw.Z,mw);hw.Z&&hw.Z.locals&&hw.Z.locals;class gw extends he{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const o=this.editor,i=e.item,r=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=o.plugins.get("ImageUtils"),a=o.plugins.get(Xb),l=r?e.attributeNewValue:null,c=this.placeholder,d=o.editing.mapper.toViewElement(i),u=n.writer;if("reading"==l)return pw(d,u),void fw(s,c,d,u);if("uploading"==l){const t=a.loaders.get(r);return pw(d,u),void(t?(kw(d,u),function(t,e,n,o){const i=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),i),n.on("change:uploadedPercent",((t,e,n)=>{o.change((t=>{t.setStyle("width",n+"%",i)}))}))}(d,u,t,o.editing.view),function(t,e,n,o){if(o.data){const i=t.findViewImgElement(e);n.setAttribute("src",o.data,i)}}(s,d,u,t)):fw(s,c,d,u))}"complete"==l&&a.loaders.get(r)&&function(t,e,n){const o=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),o),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(o))))}),3e3)}(d,u,o.editing.view),function(t,e){ww(t,e,"progressBar")}(d,u),kw(d,u),function(t,e){e.removeClass("ck-appear",t)}(d,u)}}function pw(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function fw(t,e,n,o){n.hasClass("ck-image-upload-placeholder")||o.addClass("ck-image-upload-placeholder",n);const i=t.findViewImgElement(n);i.getAttribute("src")!==e&&o.setAttribute("src",e,i),bw(n,"placeholder")||o.insert(o.createPositionAfter(i),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(o))}function kw(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),ww(t,e,"placeholder")}function bw(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function ww(t,e,n){const o=bw(t,n);o&&e.remove(e.createRangeOn(o))}class Aw extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=Mo(t.file),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);this._uploadImage(t,i,e)}else this._uploadImage(t,i)}))}_uploadImage(t,e,n){const o=this.editor,i=o.plugins.get(Xb).createLoader(t),r=o.plugins.get("ImageUtils");i&&r.insertImage({...e,uploadId:i.id},n)}}class _w extends he{static get requires(){return[Xb,Fh,Hp,Jk]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,o=t.plugins.get(Xb),i=t.plugins.get("ImageUtils"),r=iw(t.config.get("image.upload.types")),s=new Aw(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(o=n.dataTransfer,Array.from(o.types).includes("text/html")&&""!==o.getData("text/html"))return;var o;const i=Array.from(n.dataTransfer.files).filter((t=>!!t&&r.test(t.type)));i.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange((()=>{t.execute("uploadImage",{file:i})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(i,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:rw(t.item),imageElement:t.item})));if(!r.length)return;const s=new Tm(t.editing.view.document);for(const t of r){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=o.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),i=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,r="$graveyard"==e.position.root.rootName;for(const e of Cw(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=o.loaders.get(t);n&&(r?i.has(t)||n.abort():(i.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const o=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",o.default,e),this._parseAndSetSrcsetAttributeOnImage(o,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,o=e.locale.t,i=e.plugins.get(Xb),r=e.plugins.get(Fh),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const o=t.upload(),i=a.get(t.id);if(sr.isSafari){const t=e.editing.mapper.toViewElement(i),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const o=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=o}))}return n.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","uploading",i)})),o})).then((e=>{n.enqueueChange({isUndoable:!1},(n=>{const o=a.get(t.id);n.setAttribute("uploadStatus","complete",o),this.fire("uploadComplete",{data:e,imageElement:o})})),l()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&r.showWarning(e,{title:o("Upload failed"),namespace:"upload"}),n.enqueueChange({isUndoable:!1},(e=>{e.remove(a.get(t.id))})),l()}));function l(){n.enqueueChange({isUndoable:!1},(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),i.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let o=0;const i=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return o=Math.max(o,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=i&&n.setAttribute("srcset",{data:i,width:o},e)}}function Cw(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class vw extends he{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new fe(t)),t.commands.add("outdent",new fe(t))}}const yw='',xw='';class Ew extends he{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?yw:xw,i="ltr"==e.uiLanguageDirection?xw:yw;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(i=>{const r=o.commands.get(t),s=new xu(i);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(s,"execute",(()=>{o.execute(t),o.editing.view.focus()})),s}))}}class Dw extends ge{constructor(t,e){super(t),this._indentBehavior=e}refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());e&&t.schema.checkAttribute(e,"blockIndent")?this.isEnabled=this._indentBehavior.checkEnabled(e.getAttribute("blockIndent")):this.isEnabled=!1}execute(){const t=this.editor.model,e=function(t){const e=t.document.selection,n=t.schema;return Array.from(e.getSelectedBlocks()).filter((t=>n.checkAttribute(t,"blockIndent")))}(t);t.change((t=>{for(const n of e){const e=n.getAttribute("blockIndent"),o=this._indentBehavior.getNextIndent(e);o?t.setAttribute("blockIndent",o,n):t.removeAttribute("blockIndent",n)}}))}}class Sw{constructor(t){this.isForward="forward"===t.direction,this.offset=t.offset,this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||0);return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||0);if(!(!t||t.endsWith(this.unit)))return this.isForward?this.offset+this.unit:void 0;const n=e+(this.isForward?this.offset:-this.offset);return n>0?n+this.unit:void 0}}class Iw{constructor(t){this.isForward="forward"===t.direction,this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);return this.isForward?e=0}getNextIndent(t){const e=this.classes.indexOf(t),n=this.isForward?1:-1;return this.classes[e+n]}}const Mw=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];const Tw="italic";class Bw extends he{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Tw}),t.model.schema.setAttributeProperties(Tw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Tw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Tw,new Np(t,Tw)),t.keystrokes.set("CTRL+I",Tw)}}const Nw="italic";class zw extends he{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Nw,(n=>{const o=t.commands.get(Nw),i=new xu(n);return i.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Nw),t.editing.view.focus()})),i}))}}class Pw{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;if(!e.item.is("selection")&&!n.schema.isInline(e.item))return;const o=n.writer,i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement("a",t.attributes,{priority:5});t.classes&&o.addClass(t.classes,r);for(const e in t.styles)o.setStyle(e,t.styles[e],r);o.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?o.wrap(i.getFirstRange(),r):o.wrap(n.mapper.toViewRange(e.range),r):o.unwrap(n.mapper.toViewRange(e.range),r)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:o})=>{const i=o.toViewElement(e.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const o=Ho(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o)"class"===t?n.addClass(e,r):n.setAttribute(t,e,r);t.classes&&n.addClass(t.classes,r);for(const e in t.styles)n.setStyle(e,t.styles[e],r)}else{for(const[t,e]of o)"class"===t?n.removeClass(e,r):n.removeAttribute(t,r);t.classes&&n.removeClass(t.classes,r);for(const e in t.styles)n.removeStyle(e,r)}}}))}}}const Lw=function(t,e,n){var o=t.length;return n=void 0===n?o:n,!e&&n>=o?t:ui(t,e,n)};var Ow=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const Rw=function(t){return Ow.test(t)};const jw=function(t){return t.split("")};var Vw="[\\ud800-\\udfff]",Fw="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Hw="\\ud83c[\\udffb-\\udfff]",Uw="[^\\ud800-\\udfff]",Ww="(?:\\ud83c[\\udde6-\\uddff]){2}",Gw="[\\ud800-\\udbff][\\udc00-\\udfff]",qw="(?:"+Fw+"|"+Hw+")"+"?",Zw="[\\ufe0e\\ufe0f]?",Yw=Zw+qw+("(?:\\u200d(?:"+[Uw,Ww,Gw].join("|")+")"+Zw+qw+")*"),Kw="(?:"+[Uw+Fw+"?",Fw,Ww,Gw,Vw].join("|")+")",$w=RegExp(Hw+"(?="+Hw+")|"+Kw+Yw,"g");const Qw=function(t){return t.match($w)||[]};const Jw=function(t){return Rw(t)?Qw(t):jw(t)};const Xw=function(t){return function(e){e=si(e);var n=Rw(e)?Jw(e):void 0,o=n?n[0]:e.charAt(0),i=n?Lw(n,1).join(""):e.slice(1);return o[t]()+i}}("toUpperCase"),tA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,eA=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,nA=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,oA=/^((\w+:(\/{2,})?)|(\W))/i,iA="Ctrl+K";function rA(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function sA(t){return function(t){return t.replace(tA,"").match(eA)}(t=String(t))?t:"#"}function aA(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function lA(t,e){const n=(o=t,nA.test(o)?"mailto:":e);var o;const i=!!n&&!oA.test(t);return t&&i?n+t:t}function cA(t){window.open(t,"_blank","noopener")}class dA extends ge{constructor(t){super(t),this.manualDecorators=new So,this.automaticDecorators=new Pw}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Fa(e.getSelectedBlocks());aA(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,o=n.document.selection,i=[],r=[];for(const t in e)e[t]?i.push(t):r.push(t);n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute("linkHref")){const a=dp(s,"linkHref",o.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),i.forEach((t=>{e.setAttribute(t,!0,a)})),r.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const r=Ho(o.getAttributes());r.set("linkHref",t),i.forEach((t=>{r.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),"linkHref"),a=[];for(const t of o.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const l=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&l.push(t);for(const n of l)e.setAttribute("linkHref",t,n),i.forEach((t=>{e.setAttribute(t,!0,n)})),r.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,o=n.getSelectedElement();return aA(o,e.schema)?o.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class uA extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();aA(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,o=t.commands.get("link");e.change((t=>{const i=n.isCollapsed?[dp(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of i)if(t.removeAttribute("linkHref",e),o)for(const n of o.manualDecorators)t.removeAttribute(n.id,e)}))}}class hA{constructor({id:t,label:e,attributes:n,classes:o,styles:i,defaultValue:r}){this.id=t,this.set("value"),this.defaultValue=r,this.label=e,this.attributes=n,this.classes=o,this.styles=i}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}ue(hA,re);var mA=n(399),gA={attributes:{"data-cke":!0}};gA.setAttributes=os(),gA.insert=es().bind(null,"head"),gA.domAPI=Xr(),gA.insertStyleElement=rs();Qr()(mA.Z,gA);mA.Z&&mA.Z.locals&&mA.Z.locals;const pA="automatic",fA=/^(https?:)?\/\//;class kA extends he{static get pluginName(){return"LinkEditing"}static get requires(){return[Kg,Hg,Hp]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:rA}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>rA(sA(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new dA(t)),t.commands.add("unlink",new uA(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${Xw(n)}`});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===pA))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode)));t.plugins.get(Kg).registerAttribute("linkHref"),function(t,e,n,o){const i=t.editing.view,r=new Set;i.document.registerPostFixer((i=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const l=dp(s.getFirstPosition(),e,s.getAttribute(e),t.model),c=t.editing.mapper.toViewRange(l);for(const t of c.getItems())t.is("element",n)&&!t.hasClass(o)&&(i.addClass(o,t),r.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){i.change((t=>{for(const e of r.values())t.removeClass(o,e),r.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:pA,callback:t=>fA.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new hA(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n,schema:o},{item:i})=>{if(o.isInline(i)&&e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const o in t.styles)n.setStyle(o,t.styles[o],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableLinkOpen(){const t=this.editor,e=t.editing.view.document,n=t.model.document;this.listenTo(e,"click",((t,e)=>{if(!(sr.isMac?e.domEvent.metaKey:e.domEvent.ctrlKey))return;let n=e.domTarget;if("a"!=n.tagName.toLowerCase()&&(n=n.closest("a")),!n)return;const o=n.getAttribute("href");o&&(t.stop(),e.preventDefault(),cA(o))}),{context:"$capture"}),this.listenTo(e,"enter",((t,e)=>{const o=n.selection,i=o.getSelectedElement(),r=i?i.getAttribute("linkHref"):o.getAttribute("linkHref");r&&e.domEvent.altKey&&(t.stop(),cA(r))}),{context:"a"})}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,o=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(o&&o.hasAttribute("linkHref")||t.change((e=>{bA(e,AA(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(Mm);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const o=t.getFirstPosition(),i=dp(o,"linkHref",t.getAttribute("linkHref"),e);(o.isTouching(i.start)||o.isTouching(i.end))&&e.change((t=>{bA(t,AA(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,o;this.listenTo(e.document,"delete",(()=>{o=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(o?o=!1:wA(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),o=e.getLastPosition(),i=n.nodeAfter;if(!i)return!1;if(!i.is("$text"))return!1;if(!i.hasAttribute("linkHref"))return!1;const r=o.textNode||o.nodeBefore;if(i===r)return!0;return dp(n,"linkHref",i.getAttribute("linkHref"),t).containsRange(t.createRange(n,o),!0)}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[i])=>{o=!1,wA(t)&&n&&(t.model.change((t=>{for(const[e,o]of n)t.setAttribute(e,o,i)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,o=t.editing.view;let i=!1,r=!1;this.listenTo(o.document,"delete",((t,e)=>{r=e.domEvent.keyCode===dr.backspace}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{i=!1;const t=n.getFirstPosition(),o=n.getAttribute("linkHref");if(!o)return;const r=dp(t,"linkHref",o,e);i=r.containsPosition(t)||r.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r&&(r=!1,i||t.model.enqueueChange((t=>{bA(t,AA(e.schema))})))}),{priority:"low"})}}function bA(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function wA(t){return t.model.change((t=>t.batch)).isTyping}function AA(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}var _A=n(4827),CA={attributes:{"data-cke":!0}};CA.setAttributes=os(),CA.insert=es().bind(null,"head"),CA.domAPI=Xr(),CA.insertStyleElement=rs();Qr()(_A.Z,CA);_A.Z&&_A.Z.locals&&_A.Z.locals;class vA extends Kd{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const o=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&o.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:o,tabindex:"-1"},children:this.children}),Wd(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),Gd({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Link URL"),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const o=new Su(this.locale);o.set({name:n.id,label:n.label,withText:!0}),o.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),o.on("execute",(()=>{n.set("value",!o.isOn)})),e.add(o)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Kd;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}var yA=n(9465),xA={attributes:{"data-cke":!0}};xA.setAttributes=os(),xA.insert=es().bind(null,"head"),xA.domAPI=Xr(),xA.insertStyleElement=rs();Qr()(yA.Z,xA);yA.Z&&yA.Z.locals&&yA.Z.locals;class EA extends Kd{constructor(t){super(t);const e=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Hd.pencil,"edit"),this.set("href"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const o=new xu(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.delegate("execute").to(this,n),o}_createPreviewButton(){const t=new xu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&sA(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}const DA='',SA="link-ui";class IA extends he{static get requires(){return[em]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(Im),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(em),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:SA,view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:SA,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new EA(t.locale),n=t.commands.get("link"),o=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(o),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set(iA,((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),o=new vA(t.locale,e);return o.urlInputView.fieldView.bind("value").to(e,"value"),o.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),o.saveButtonView.bind("isEnabled").to(e),this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element,i=lA(e,n);t.execute("link",i,o.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(o,"cancel",(()=>{this._closeFormView()})),o.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),o}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set(iA,((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const o=new xu(t);return o.isEnabled=!0,o.label=n("Link"),o.icon=DA,o.keystroke=iA,o.tooltip=!0,o.isToggleable=!0,o.bind("isEnabled").to(e,"isEnabled"),o.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>this._showUI(!0))),o}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),Ud({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),o=r();const i=()=>{const t=this._getSelectedLinkElement(),e=r();n&&!t||!n&&e!==o?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,o=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",i),this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let o=null;if(e.markers.has(SA)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(SA)),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));o=t.domConverter.viewRangeToDom(n)}else o=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:o}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&Kp(n))return MA(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),o=MA(n.start),i=MA(n.end);return o&&o==i&&t.createRangeIn(o).getTrimmed().isEqual(n)?o:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(SA))e.updateMarker(SA,{range:n});else if(n.start.isAtEnd){const o=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:e.createRange(o,n.end)})}else e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has(SA)&&t.change((t=>{t.removeMarker(SA)}))}}function MA(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const TA=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class BA extends he{static get requires(){return[Gg]}static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new Yg(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=NA(t.substr(0,t.length-1));return e?{url:e}:void 0}));e.on("matched:data",((e,n)=>{const{batch:o,range:i,url:r}=n;if(!o.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),l=t.model.createRange(a,s);this._applyAutoLink(r,l)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:o}=Zg(t,e),i=NA(n);if(i){const t=e.createRange(o.end.getShiftedBy(-i.length),o.end);this._applyAutoLink(i,t)}}_applyAutoLink(t,e){const n=this.editor.model,o=this.editor.plugins.get("Delete");this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange((i=>{const r=this.editor.config.get("link.defaultProtocol"),s=lA(t,r);i.setAttribute("linkHref",s,e),n.enqueueChange((()=>{o.requestUndoOnBackspace()}))}))}}function NA(t){const e=TA.exec(t);return e?e[2]:null}class zA extends he{static get requires(){return["ImageEditing","ImageUtils",kA]}static get pluginName(){return"LinkImageEditing"}init(){const t=this.editor,e=t.model.schema;t.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["linkHref"]}),t.conversion.for("upcast").add(function(t){const e=t.plugins.has("ImageInlineEditing"),n=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,o,i)=>{const r=o.viewItem,s=n.findViewImgElement(r);if(!s)return;const a=s.findAncestor((t=>n.isBlockImageView(t)));if(e&&!a)return;const l={attributes:["href"]};if(!i.consumable.consume(r,l))return;const c=r.getAttribute("href");if(!c)return;let d=o.modelCursor.parent;if(!d.is("element","imageBlock")){const t=i.convertItem(s,o.modelCursor);o.modelRange=t.modelRange,o.modelCursor=t.modelCursor,d=o.modelCursor.nodeBefore}d&&d.is("element","imageBlock")&&i.writer.setAttribute("linkHref",c,d)}),{priority:"high"})}}(t)),t.conversion.for("downcast").add(function(t){const e=t.plugins.get("ImageUtils");return t=>{t.on("attribute:linkHref:imageBlock",((t,n,o)=>{if(!o.consumable.consume(n.item,t.name))return;const i=o.mapper.toViewElement(n.item),r=o.writer,s=Array.from(i.getChildren()).find((t=>"a"===t.name)),a=e.findViewImgElement(i),l=a.parent.is("element","picture")?a.parent:a;if(s)n.attributeNewValue?r.setAttribute("href",n.attributeNewValue,s):(r.move(r.createRangeOn(l),r.createPositionAt(i,0)),r.remove(s));else{const t=r.createContainerElement("a",{href:n.attributeNewValue});r.insert(r.createPositionAt(i,0),t),r.move(r.createRangeOn(l),r.createPositionAt(t,0))}}),{priority:"high"})}}(t)),this._enableAutomaticDecorators(),this._enableManualDecorators()}_enableAutomaticDecorators(){const t=this.editor,e=t.commands.get("link").automaticDecorators;e.length&&t.conversion.for("downcast").add(e.getDispatcherForLinkedImage())}_enableManualDecorators(){const t=this.editor,e=t.commands.get("link");for(const n of e.manualDecorators)t.plugins.has("ImageBlockEditing")&&t.model.schema.extend("imageBlock",{allowAttributes:n.id}),t.plugins.has("ImageInlineEditing")&&t.model.schema.extend("imageInline",{allowAttributes:n.id}),t.conversion.for("downcast").add(PA(n)),t.conversion.for("upcast").add(LA(t,n))}}function PA(t){return e=>{e.on(`attribute:${t.id}:imageBlock`,((e,n,o)=>{const i=o.mapper.toViewElement(n.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));if(r){for(const[e,n]of Ho(t.attributes))o.writer.setAttribute(e,n,r);t.classes&&o.writer.addClass(t.classes,r);for(const e in t.styles)o.writer.setStyle(e,t.styles[e],r)}}))}}function LA(t,e){const n=t.plugins.has("ImageInlineEditing"),o=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,i,r)=>{const s=i.viewItem,a=o.findViewImgElement(s);if(!a)return;const l=a.findAncestor((t=>o.isBlockImageView(t)));if(n&&!l)return;const c=new Uo(e._createPattern()).match(s);if(!c)return;if(!r.consumable.consume(s,c.match))return;const d=i.modelCursor.nodeBefore||i.modelCursor.parent;r.writer.setAttribute(e.id,!0,d)}),{priority:"high"})}}class OA extends he{static get requires(){return[kA,IA,"ImageBlockEditing"]}static get pluginName(){return"LinkImageUI"}init(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"click",((e,n)=>{this._isSelectedLinkedImage(t.model.document.selection)&&(n.preventDefault(),e.stop())}),{priority:"high"}),this._createToolbarLinkImageButton()}_createToolbarLinkImageButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("linkImage",(n=>{const o=new xu(n),i=t.plugins.get("LinkUI"),r=t.commands.get("link");return o.set({isEnabled:!0,label:e("Link image"),icon:DA,keystroke:iA,tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(r,"isEnabled"),o.bind("isOn").to(r,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>{this._isSelectedLinkedImage(t.model.document.selection)?i._addActionsView():i._showUI(!0)})),o}))}_isSelectedLinkedImage(t){const e=t.getSelectedElement();return this.editor.plugins.get("ImageUtils").isImage(e)&&e.hasAttribute("linkHref")}}var RA=n(3858),jA={attributes:{"data-cke":!0}};jA.setAttributes=os(),jA.insert=es().bind(null,"head"),jA.domAPI=Xr(),jA.insertStyleElement=rs();Qr()(RA.Z,jA);RA.Z&&RA.Z.locals&&RA.Z.locals;class VA extends ge{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Array.from(n.selection.getSelectedBlocks()).filter((t=>HA(t,e.schema))),i=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(i){let e=o[o.length-1].nextSibling,n=Number.POSITIVE_INFINITY,i=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)r>i.getAttribute("listIndent")&&(r=i.getAttribute("listIndent")),i.getAttribute("listIndent")==r&&t[e?"unshift":"push"](i),i=i[e?"previousSibling":"nextSibling"]}}function HA(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class UA extends ge{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let o=e.nextSibling;for(;o&&"listItem"==o.name&&o.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(o),o=o.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let o=t.previousSibling;for(;o&&o.is("element","listItem")&&o.getAttribute("listIndent")>=e;){if(o.getAttribute("listIndent")==e)return o.getAttribute("listType")==n;o=o.previousSibling}return!1}return!0}}function WA(t,e){const n=e.mapper,o=e.writer,i="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=t_,e}(o),s=o.createContainerElement(i,null);return o.insert(o.createPositionAt(s,0),r),n.bindElements(t,r),r}function GA(t,e,n,o){const i=e.parent,r=n.mapper,s=n.writer;let a=r.toViewPosition(o.createPositionBefore(t));const l=YA(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else if(c&&"listItem"==c.name){a=r.toViewPosition(o.createPositionAt(c,"end"));const t=r.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=r.toViewPosition(o.createPositionBefore(t));if(a=ZA(a),s.insert(a,i),c&&"listItem"==c.name){const t=r.toViewElement(c),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const o=s.breakContainer(s.createPositionBefore(t.item)),i=t.item.parent,r=s.createPositionAt(e,"end");qA(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(i),r),n.position=o}}else{const n=i.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let o=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;o=e}o&&(s.breakContainer(s.createPositionAfter(o)),s.move(s.createRangeOn(o.parent),s.createPositionAt(e,"end")))}}qA(s,i,i.nextSibling),qA(s,i.previousSibling,i)}function qA(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function ZA(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function YA(t,e){const n=!!e.sameIndent,o=!!e.smallerIndent,i=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(n&&i==t||o&&i>t)return r;r="forward"===e.direction?r.nextSibling:r.previousSibling}return null}function KA(t,e,n,o){t.ui.componentFactory.add(e,(i=>{const r=t.commands.get(e),s=new xu(i);return s.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function $A(t,e){const n=[],o=t.parent,i={ignoreElementEnd:!0,startPosition:t,shallow:!0,direction:e},r=o.getAttribute("listIndent"),s=[...new Ja(i)].filter((t=>t.item.is("element"))).map((t=>t.item));for(const t of s){if(!t.is("element","listItem"))break;if(t.getAttribute("listIndent")r)){if(t.getAttribute("listType")!==o.getAttribute("listType"))break;if(t.getAttribute("listStyle")!==o.getAttribute("listStyle"))break;if(t.getAttribute("listReversed")!==o.getAttribute("listReversed"))break;if(t.getAttribute("listStart")!==o.getAttribute("listStart"))break;"backward"===e?n.unshift(t):n.push(t)}}return n}function QA(t){let e=[...t.document.selection.getSelectedBlocks()].filter((t=>t.is("element","listItem"))).map((e=>{const n=t.change((t=>t.createPositionAt(e,0)));return[...$A(n,"backward"),...$A(n,"forward")]})).flat();return e=[...new Set(e)],e}const JA=["disc","circle","square"],XA=["decimal","decimal-leading-zero","lower-roman","upper-roman","lower-latin","upper-latin"];function t_(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Ni.call(this)}function e_(t){return(e,n,o)=>{const i=o.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent"))return;i.consume(n.item,"insert"),i.consume(n.item,"attribute:listType"),i.consume(n.item,"attribute:listIndent");const r=n.item;GA(r,WA(r,o),o,t)}}function n_(t,e,n){if(!n.consumable.test(e.item,t.name))return;const o=n.mapper.toViewElement(e.item),i=n.writer;i.breakContainer(i.createPositionBefore(o)),i.breakContainer(i.createPositionAfter(o));const r=o.parent,s="numbered"==e.attributeNewValue?"ol":"ul";i.rename(s,r)}function o_(t,e,n){n.consumable.consume(e.item,t.name);const o=n.mapper.toViewElement(e.item).parent,i=n.writer;qA(i,o,o.nextSibling),qA(i,o.previousSibling,o)}function i_(t,e,n){if(n.consumable.test(e.item,t.name)&&"listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const o=n.writer,i=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=o.breakContainer(t),"li"==t.parent.name);){const e=t,n=o.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=o.remove(o.createRange(e,n));i.push(t)}t=o.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=qA(o,n,n.nextSibling);e&&e.parent==n&&t.offset--}}qA(o,t.nodeBefore,t.nodeAfter)}}}function r_(t,e,n){const o=n.mapper.toViewPosition(e.position),i=o.nodeBefore,r=o.nodeAfter;qA(n.writer,i,r)}function s_(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,o=t.createElement("listItem"),i=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",i,o);const r=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",r,o),!n.safeInsert(o,e.modelCursor))return;const s=function(t,e,n){const{writer:o,schema:i}=n;let r=o.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)r=n.convertItem(s,r).modelCursor;else{const e=n.convertItem(s,o.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!i.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:u_(e.modelCursor),r=o.createPositionAfter(t))}return r}(o,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(o,e)}}function a_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t){!(e.is("element","li")||m_(e))&&e._remove()}}}function l_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1;for(const e of t)n&&!m_(e)&&e._remove(),m_(e)&&(n=!0)}}function c_(t){return(e,n)=>{if(n.isPhantom)return;const o=n.modelPosition.nodeBefore;if(o&&o.is("element","listItem")){const e=n.mapper.toViewElement(o),i=e.getAncestors().find(m_),r=t.createPositionAt(e,0).getWalker();for(const t of r){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function d_(t,[e,n]){let o,i=e.is("documentFragment")?e.getChild(0):e;if(o=n?this.createSelection(n):this.document.selection,i&&i.is("element","listItem")){const t=o.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;i&&i.is("element","listItem");)i._setAttribute("listIndent",i.getAttribute("listIndent")+t),i=i.nextSibling}}}function u_(t){const e=new Ja({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function h_(t,e,n,o,i,r){const s=YA(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=i.mapper,l=i.writer,c=s?s.getAttribute("listIndent"):null;let d;if(s)if(c==t){const t=a.toViewElement(s).parent;d=l.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}else d=n;d=ZA(d);for(const t of[...o.getChildren()])m_(t)&&(d=l.move(l.createRangeOn(t),d).end,qA(l,t,t.nextSibling),qA(l,t.previousSibling,t))}function m_(t){return t.is("element","ol")||t.is("element","ul")}class g_ extends he{static get pluginName(){return"ListEditing"}static get requires(){return[Ap,Gg]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var o;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),o=new Map;let i=!1;for(const o of n)if("insert"==o.type&&"listItem"==o.name)r(o.position);else if("insert"==o.type&&"listItem"!=o.name){if("$text"!=o.name){const n=o.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),i=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),i=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),i=!0),n.hasAttribute("listReversed")&&(e.removeAttribute("listReversed",n),i=!0),n.hasAttribute("listStart")&&(e.removeAttribute("listStart",n),i=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))r(e.previousPosition)}r(o.position.getShiftedBy(o.length))}else"remove"==o.type&&"listItem"==o.name?r(o.position):("attribute"==o.type&&"listIndent"==o.attributeKey||"attribute"==o.type&&"listType"==o.attributeKey)&&r(o.range.start);for(const t of o.values())s(t),a(t);return i;function r(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(o.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,o.has(t))return;o.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&o.set(e,e)}}function s(t){let n=0,o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(r>n){let s;null===o?(o=r-n,s=n):(o>r&&(o=r),s=r-o),e.setAttribute("listIndent",s,t),i=!0}else o=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(o&&o.getAttribute("listIndent")>r&&(n=n.slice(0,r+1)),0!=r)if(n[r]){const o=n[r];t.getAttribute("listType")!=o&&(e.setAttribute("listType",o,t),i=!0)}else n[r]=t.getAttribute("listType");o=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",p_),e.mapper.registerViewToModelLength("li",p_),n.mapper.on("modelToViewPosition",c_(n.view)),n.mapper.on("viewToModelPosition",(o=t.model,(t,e)=>{const n=e.viewPosition,i=n.parent,r=e.mapper;if("ul"==i.name||"ol"==i.name){if(n.isAtEnd){const t=r.toModelElement(n.nodeBefore),i=r.getModelLength(n.nodeBefore);e.modelPosition=o.createPositionBefore(t).getShiftedBy(i)}else{const t=r.toModelElement(n.nodeAfter);e.modelPosition=o.createPositionBefore(t)}t.stop()}else if("li"==i.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=r.toModelElement(i);let a=1,l=n.nodeBefore;for(;l&&m_(l);)a+=r.getModelLength(l),l=l.previousSibling;e.modelPosition=o.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",c_(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",i_,{priority:"high"}),e.on("insert:listItem",e_(t.model)),e.on("attribute:listType:listItem",n_,{priority:"high"}),e.on("attribute:listType:listItem",o_,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,"attribute:listIndent"))return;const i=o.mapper.toViewElement(n.item),r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s);r.remove(l),a&&a.nextSibling&&qA(r,a,a.nextSibling),h_(n.attributeOldValue+1,n.range.start,l.start,i,o,t),GA(n.item,i,o,t);for(const t of n.item.getChildren())o.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,o)=>{const i=o.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s),c=r.remove(l);a&&a.nextSibling&&qA(r,a,a.nextSibling),h_(o.mapper.toModelElement(i).getAttribute("listIndent")+1,n.position,l.start,i,o,t);for(const t of r.createRangeIn(c).getItems())o.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",r_,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",i_,{priority:"high"}),e.on("insert:listItem",e_(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",a_,{priority:"high"}),t.on("element:ol",a_,{priority:"high"}),t.on("element:li",l_,{priority:"high"}),t.on("element:li",s_)})),t.model.on("insertContent",d_,{priority:"high"}),t.commands.add("numberedList",new VA(t,"numbered")),t.commands.add("bulletedList",new VA(t,"bulleted")),t.commands.add("indentList",new UA(t,"forward")),t.commands.add("outdentList",new UA(t,"backward"));const i=n.view.document;this.listenTo(i,"enter",((t,e)=>{const n=this.editor.model.document,o=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==o.name&&o.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(i,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const o=n.getFirstPosition();if(!o.isAtStart)return;const i=o.parent;if("listItem"!==i.name)return;i.previousSibling&&"listItem"===i.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function p_(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=p_(t);return e}const f_='',k_='';class b_ extends he{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;KA(this.editor,"numberedList",t("Numbered List"),f_),KA(this.editor,"bulletedList",t("Bulleted List"),k_)}}class w_ extends ge{constructor(t,e){super(t),this._defaultType=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){this._tryToConvertItemsToList(t);const e=this.editor.model,n=QA(e);n.length&&e.change((e=>{for(const o of n)e.setAttribute("listStyle",t.type||this._defaultType,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")?t.getAttribute("listStyle"):null}_checkEnabled(){const t=this.editor,e=t.commands.get("numberedList"),n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type)return;const e=(n=t.type,JA.includes(n)?"bulleted":XA.includes(n)?"numbered":null);var n;if(!e)return;const o=this.editor,i=e+"List";o.commands.get(i).value||o.execute(i)}}class A_ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=QA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listReversed",!!t.reversed,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listReversed"):null}}class __ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=QA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listStart",t.startIndex||1,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listStart"):null}}const C_="default";class v_ extends he{static get requires(){return[g_]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t),t.config.define("list",{properties:{styles:!0,startIndex:!1,reversed:!1}})}init(){const t=this.editor,e=t.model,n=function(t){const e=[];t.styles&&e.push({attributeName:"listStyle",defaultValue:C_,addCommand(t){t.commands.add("listStyle",new w_(t,C_))},appliesToListItem:()=>!0,setAttributeOnDowncast(t,e,n){e&&e!==C_?t.setStyle("list-style-type",e,n):t.removeStyle("list-style-type",n)},getAttributeOnUpcast:t=>t.getStyle("list-style-type")||C_});t.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,addCommand(t){t.commands.add("listReversed",new A_(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){e?t.setAttribute("reversed","reversed",n):t.removeAttribute("reversed",n)},getAttributeOnUpcast:t=>t.hasAttribute("reversed")});t.startIndex&&e.push({attributeName:"listStart",defaultValue:1,addCommand(t){t.commands.add("listStart",new __(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){1!=e?t.setAttribute("start",e,n):t.removeAttribute("start",n)},getAttributeOnUpcast:t=>t.getAttribute("start")||1});return e}(t.config.get("list.properties"));e.schema.extend("listItem",{allowAttributes:n.map((t=>t.attributeName))});for(const e of n)e.addCommand(t);var o;this.listenTo(t.commands.get("indentList"),"_executeCleanup",function(t,e){return(n,o)=>{const i=o[0],r=i.getAttribute("listIndent"),s=o.filter((t=>t.getAttribute("listIndent")===r));let a=null;i.previousSibling.getAttribute("listIndent")+1!==r&&(a=YA(i.previousSibling,{sameIndent:!0,direction:"backward",listIndent:r})),t.model.change((t=>{for(const n of s)for(const o of e)if(o.appliesToListItem(n)){const e=null==a?o.defaultValue:a.getAttribute(o.attributeName);t.setAttribute(o.attributeName,e,n)}}))}}(t,n)),this.listenTo(t.commands.get("outdentList"),"_executeCleanup",function(t,e){return(n,o)=>{if(!(o=o.reverse().filter((t=>t.is("element","listItem")))).length)return;const i=o[0].getAttribute("listIndent"),r=o[0].getAttribute("listType");let s=o[0].previousSibling;if(s.is("element","listItem"))for(;s.getAttribute("listIndent")!==i;)s=s.previousSibling;else s=null;s||(s=o[o.length-1].nextSibling),s&&s.is("element","listItem")&&s.getAttribute("listType")===r&&t.model.change((t=>{const n=o.filter((t=>t.getAttribute("listIndent")===i));for(const o of n)for(const n of e)if(n.appliesToListItem(o)){const e=n.attributeName,i=s.getAttribute(e);t.setAttribute(e,i,o)}}))}}(t,n)),this.listenTo(t.commands.get("bulletedList"),"_executeCleanup",E_(t)),this.listenTo(t.commands.get("numberedList"),"_executeCleanup",E_(t)),e.document.registerPostFixer(function(t,e){return n=>{let o=!1;const i=D_(t.model.document.differ.getChanges()).filter((t=>"todo"!==t.getAttribute("listType")));if(!i.length)return o;let r=i[i.length-1].nextSibling;if((!r||!r.is("element","listItem"))&&(r=i[0].previousSibling,r)){const t=i[0].getAttribute("listIndent");for(;r.is("element","listItem")&&r.getAttribute("listIndent")!==t&&(r=r.previousSibling,r););}for(const t of e){const e=t.attributeName;for(const s of i)if(t.appliesToListItem(s))if(s.hasAttribute(e)){const i=s.previousSibling;x_(i,s,t.attributeName)&&(n.setAttribute(e,i.getAttribute(e),s),o=!0)}else y_(r,s,t)?n.setAttribute(e,r.getAttribute(e),s):n.setAttribute(e,t.defaultValue,s),o=!0;else n.removeAttribute(e,s)}return o}}(t,n)),t.conversion.for("upcast").add((o=n,t=>{t.on("element:li",((t,e,n)=>{const i=e.viewItem.parent;if(!i)return;const r=e.modelRange.start.nodeAfter||e.modelRange.end.nodeBefore;for(const t of o)if(t.appliesToListItem(r)){const e=t.getAttributeOnUpcast(i);n.writer.setAttribute(t.attributeName,e,r)}}),{priority:"low"})})),t.conversion.for("downcast").add(function(t){return n=>{for(const o of t)n.on(`attribute:${o.attributeName}:listItem`,((t,n,i)=>{const r=i.writer,s=n.item,a=YA(s.previousSibling,{sameIndent:!0,listIndent:s.getAttribute("listIndent"),direction:"backward"}),l=i.mapper.toViewElement(s);e(s,a)||r.breakContainer(r.createPositionBefore(l)),o.setAttributeOnDowncast(r,n.attributeNewValue,l.parent)}),{priority:"low"})};function e(t,e){return e&&t.getAttribute("listType")===e.getAttribute("listType")&&t.getAttribute("listIndent")===e.getAttribute("listIndent")&&t.getAttribute("listStyle")===e.getAttribute("listStyle")&&t.getAttribute("listReversed")===e.getAttribute("listReversed")&&t.getAttribute("listStart")===e.getAttribute("listStart")}}(n)),this._mergeListAttributesWhileMergingLists(n)}afterInit(){const t=this.editor;t.commands.get("todoList")&&t.model.document.registerPostFixer(function(t){return e=>{const n=D_(t.model.document.differ.getChanges()).filter((t=>"todo"===t.getAttribute("listType")&&(t.hasAttribute("listStyle")||t.hasAttribute("listReversed")||t.hasAttribute("listStart"))));if(!n.length)return!1;for(const t of n)e.removeAttribute("listStyle",t),e.removeAttribute("listReversed",t),e.removeAttribute("listStart",t);return!0}}(t))}_mergeListAttributesWhileMergingLists(t){const e=this.editor.model;let n;this.listenTo(e,"deleteContent",((t,[e])=>{const o=e.getFirstPosition(),i=e.getLastPosition();if(o.parent===i.parent)return;if(!o.parent.is("element","listItem"))return;const r=i.parent.nextSibling;if(!r||!r.is("element","listItem"))return;const s=YA(o.parent,{sameIndent:!0,listIndent:r.getAttribute("listIndent")});s&&s.getAttribute("listType")===r.getAttribute("listType")&&(n=s)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{n&&(e.change((e=>{const o=YA(n.nextSibling,{sameIndent:!0,listIndent:n.getAttribute("listIndent"),direction:"forward"});if(!o)return void(n=null);const i=[o,...$A(e.createPositionAt(o,0),"forward")];for(const o of i)for(const i of t)if(i.appliesToListItem(o)){const t=i.attributeName,r=n.getAttribute(t);e.setAttribute(t,r,o)}})),n=null)}),{priority:"low"})}}function y_(t,e,n){if(!t)return!1;const o=t.getAttribute(n.attributeName);return!!o&&(o!=n.defaultValue&&t.getAttribute("listType")===e.getAttribute("listType"))}function x_(t,e,n){if(!t||!t.is("element","listItem"))return!1;if(e.getAttribute("listType")!==t.getAttribute("listType"))return!1;const o=t.getAttribute("listIndent");if(o<1||o!==e.getAttribute("listIndent"))return!1;const i=t.getAttribute(n);return!(!i||i===e.getAttribute(n))}function E_(t){return(e,n)=>{n=n.filter((t=>t.is("element","listItem"))),t.model.change((t=>{for(const e of n)t.removeAttribute("listStyle",e)}))}}function D_(t){const e=[];for(const n of t){const t=S_(n);t&&t.is("element","listItem")&&e.push(t)}return e}function S_(t){return"attribute"===t.type?t.range.start.nodeAfter:"insert"===t.type?t.position.nodeAfter:null}var I_=n(3195),M_={attributes:{"data-cke":!0}};M_.setAttributes=os(),M_.insert=es().bind(null,"head"),M_.domAPI=Xr(),M_.insertStyleElement=rs();Qr()(I_.Z,M_);I_.Z&&I_.Z.locals&&I_.Z.locals;class T_ extends Kd{constructor(t,e){super(t);const n=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid"),e&&this.children.addMany(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",n.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:n.if("isCollapsed","hidden"),"aria-labelledby":n.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}_createButtonView(){const t=new xu(this.locale),e=t.bindTemplate;return t.set({withText:!0,icon:ju}),t.extendTemplate({attributes:{"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("label").to(this),t.bind("isOn").to(this,"isCollapsed",(t=>!t)),t.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),t}}var B_=n(7133),N_={attributes:{"data-cke":!0}};N_.setAttributes=os(),N_.insert=es().bind(null,"head"),N_.domAPI=Xr(),N_.insertStyleElement=rs();Qr()(B_.Z,N_);B_.Z&&B_.Z.locals&&B_.Z.locals;class z_ extends Kd{constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:o}){super(t);const i=["ck","ck-list-properties"];this.children=this.createCollection(),this.stylesView=null,this.additionalPropertiesCollapsibleView=null,this.startIndexFieldView=null,this.reversedSwitchButtonView=null,this.focusTracker=new Ha,this.keystrokes=new Ua,this.focusables=new qd,this.focusCycler=new zu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),e.styles?(this.stylesView=this._createStylesView(n,o),this.children.add(this.stylesView)):i.push("ck-list-properties_without-styles"),(e.startIndex||e.reversed)&&(this._addNumberedListPropertyViews(e,n),i.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:i},children:this.children})}render(){if(super.render(),this.stylesView){for(const t of this.stylesView.children)this.focusables.add(t),this.focusTracker.add(t.element);(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element))}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element),this.listenTo(this.startIndexFieldView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"});const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(t,e){const n=new Kd(this.locale);return n.children=n.createCollection(this.locale),n.children.addMany(t),n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children}),n.children.delegate("execute").to(this),n}_addNumberedListPropertyViews(t){const e=this.locale.t,n=[];t.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),n.push(this.startIndexFieldView)),t.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),n.push(this.reversedSwitchButtonView)),t.styles?(this.additionalPropertiesCollapsibleView=new T_(this.locale,n),this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t)))),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{n||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)})),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(n)}_createStartIndexField(){const t=this.locale.t,e=new Oh(this.locale,jh);return e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"}),e.fieldView.set({min:1,step:1,value:1,inputMode:"numeric"}),e.fieldView.on("input",(()=>{const n=e.fieldView.element,o=n.valueAsNumber;Number.isNaN(o)||(n.checkValidity()?this.fire("listStart",{startIndex:o}):e.errorText=t("Start index must be greater than 0."))})),e}_createReversedSwitchButton(){const t=this.locale.t,e=new Su(this.locale);return e.set({withText:!0,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),e.delegate("execute").to(this,"listReversed"),e}}var P_=n(4553),L_={attributes:{"data-cke":!0}};L_.setAttributes=os(),L_.insert=es().bind(null,"head"),L_.domAPI=Xr(),L_.insertStyleElement=rs();Qr()(P_.Z,L_);P_.Z&&P_.Z.locals&&P_.Z.locals;class O_ extends he{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor,e=t.locale.t,n=t.config.get("list.properties");n.styles&&t.ui.componentFactory.add("bulletedList",R_({editor:t,parentCommandName:"bulletedList",buttonLabel:e("Bulleted List"),buttonIcon:k_,styleGridAriaLabel:e("Bulleted list styles toolbar"),styleDefinitions:[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:''},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:''},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:''}]})),(n.styles||n.startIndex||n.reversed)&&t.ui.componentFactory.add("numberedList",R_({editor:t,parentCommandName:"numberedList",buttonLabel:e("Numbered List"),buttonIcon:f_,styleGridAriaLabel:e("Numbered list styles toolbar"),styleDefinitions:[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:''},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:''},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:''},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:''},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:''},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:''}]}))}}function R_({editor:t,parentCommandName:e,buttonLabel:n,buttonIcon:o,styleGridAriaLabel:i,styleDefinitions:r}){const s=t.commands.get(e);return a=>{const l=ph(a,Uu),c=l.buttonView;l.bind("isEnabled").to(s),l.class="ck-list-styles-dropdown",c.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),c.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),c.bind("isOn").to(s,"value",(t=>!!t));const d=function({editor:t,dropdownView:e,parentCommandName:n,styleDefinitions:o,styleGridAriaLabel:i}){const r=t.locale,s=t.config.get("list.properties");let a;"numberedList"!=n&&(s.startIndex=!1,s.reversed=!1);if(s.styles){const e=t.commands.get("listStyle"),i=function({editor:t,listStyleCommand:e,parentCommandName:n}){const o=t.locale,i=t.commands.get(n);return({label:n,type:r,icon:s,tooltip:a})=>{const l=new xu(o);return l.set({label:n,icon:s,tooltip:a}),e.on("change:value",(()=>{l.isOn=e.value===r})),l.on("execute",(()=>{i.value?e.value!==r?t.execute("listStyle",{type:r}):t.execute("listStyle",{type:e._defaultType}):t.model.change((()=>{t.execute("listStyle",{type:r})})),t.editing.view.focus()})),l}}({editor:t,parentCommandName:n,listStyleCommand:e}),r="function"==typeof e.isStyleTypeSupported?t=>e.isStyleTypeSupported(t.type):()=>!0;a=o.filter(r).map(i)}const l=new z_(r,{styleGridAriaLabel:i,enabledProperties:s,styleButtonViews:a});if(s.startIndex){const e=t.commands.get("listStart");l.startIndexFieldView.bind("isEnabled").to(e),l.startIndexFieldView.fieldView.bind("value").to(e),l.on("listStart",((e,n)=>t.execute("listStart",n)))}if(s.reversed){const e=t.commands.get("listReversed");l.reversedSwitchButtonView.bind("isEnabled").to(e),l.reversedSwitchButtonView.bind("isOn").to(e,"value"),l.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}return l.delegate("execute").to(e),l}({editor:t,dropdownView:l,parentCommandName:e,styleGridAriaLabel:i,styleDefinitions:r});return l.panelView.children.add(d),l}}function j_(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,o,i){if(!i.consumable.consume(o.item,n.name))return;const r=o.attributeNewValue,s=i.writer,a=i.mapper.toViewElement(o.item),l=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(l);const c=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),c)}}function V_(t,e,n,o){return t.createContainerElement("figure",{class:"media"},[e.getMediaViewElement(t,n,o),t.createSlot()])}function F_(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function H_(t,e,n,o){t.change((i=>{const r=i.createElement("media",{url:e});t.insertObject(r,n,null,{setSelection:"on",findOptimalPosition:o})}))}class U_ extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=F_(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=nf(t,e).start.parent;n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent);return e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,o=F_(n);o?e.change((e=>{e.setAttribute("url",t,o)})):H_(e,t,n,!0)}}class W_{constructor(t,e){const n=e.providers,o=e.extraProviders||[],i=new Set(e.removeProviders),r=n.concat(o).filter((t=>{const e=t.name;return e?!i.has(e):(c("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new G_(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,o=Mo(e.url);for(const e of o){const o=this._getUrlMatches(t,e);if(o)return new G_(this.locale,t,o,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let o=t.replace(/^https?:\/\//,"");return n=o.match(e),n||(o=o.replace(/^www\./,""),n=o.match(e),n||null)}}class G_{constructor(t,e,n,o){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=o}getViewElement(t,e){const n={};let o;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const i=this._getPreviewHtml(e);o=t.createRawElement("div",n,((t,e)=>{e.setContentOf(t,i)}))}else this.url&&(n.url=this.url),o=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,o),o}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Cu,e=new wu;t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42";return new $d({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}var q_=n(952),Z_={attributes:{"data-cke":!0}};Z_.setAttributes=os(),Z_.insert=es().bind(null,"head"),Z_.domAPI=Xr(),Z_.insertStyleElement=rs();Qr()(q_.Z,Z_);q_.Z&&q_.Z.locals&&q_.Z.locals;class Y_ extends he{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
`},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
`},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
`},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
`},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new W_(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion,i=t.config.get("mediaEmbed.previewsInData"),r=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new U_(t)),e.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]}),o.for("dataDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return V_(e,s,n,{elementName:r,renderMediaPreview:n&&i})}}),o.for("dataDowncast").add(j_(s,{elementName:r,renderMediaPreview:i})),o.for("editingDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const o=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),$p(t,e,{label:n})}(V_(e,s,o,{elementName:r,renderForEditingView:!0}),e,n("media widget"))}}),o.for("editingDowncast").add(j_(s,{elementName:r,renderForEditingView:!0})),o.for("upcast").elementToElement({view:t=>["oembed",r].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).add((t=>{t.on("element:figure",(function(t,e,n){if(!n.consumable.consume(e.viewItem,{name:!0,classes:"media"}))return;const{modelRange:o,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=o,e.modelCursor=i;Fa(o.getItems())||n.consumable.revert(e.viewItem,{name:!0,classes:"media"})}))}))}}const K_=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class $_ extends he{static get requires(){return[Mf,Gg,qf]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=cd.fromPosition(t.start);n.stickiness="toPrevious";const o=cd.fromPosition(t.end);o.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,o),n.detach(),o.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(hs.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,o=n.plugins.get(Y_).registry,i=new fl(t,e),r=i.getWalker({ignoreElementEnd:!0});let s="";for(const t of r)t.item.is("$textProxy")&&(s+=t.item.data);if(s=s.trim(),!s.match(K_))return void i.detach();if(!o.hasMedia(s))return void i.detach();n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=cd.fromPosition(t),this._timeoutId=hs.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(i),i.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),H_(n.model,s,e,!1),this._positionToInsert.detach(),this._positionToInsert=null})),n.plugins.get("Delete").requestUndoOnBackspace()}),100)):i.detach()}}var Q_=n(3525),J_={attributes:{"data-cke":!0}};J_.setAttributes=os(),J_.insert=es().bind(null,"head"),J_.domAPI=Xr(),J_.insertStyleElement=rs();Qr()(Q_.Z,J_);Q_.Z&&Q_.Z.locals&&Q_.Z.locals;class X_ extends Kd{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),Gd({view:this});[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}}class tC extends he{static get requires(){return[Y_]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(Y_).registry;t.ui.componentFactory.add("mediaEmbed",(o=>{const i=ph(o),r=new X_(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(i,r,e,t),this._setUpForm(i,r,e),i}))}_setUpDropdown(t,e,n){const o=this.editor,i=o.t,r=t.buttonView;function s(){o.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),r.set({label:i("Insert media"),icon:'',tooltip:!0}),r.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(o.execute("mediaEmbed",e.url),s())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>s()))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}var eC=n(5777),nC={attributes:{"data-cke":!0}};nC.setAttributes=os(),nC.insert=es().bind(null,"head"),nC.domAPI=Xr(),nC.insertStyleElement=rs();Qr()(eC.Z,nC);eC.Z&&eC.Z.locals&&eC.Z.locals;function oC(t,e){if(!t.childCount)return;const n=new Tm(t.document),o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),i=[];for(const t of n)if("elementStart"===t.type&&o.match(t.item)){const e=sC(t.item);i.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return i}(t,n);if(!o.length)return;let i=null,r=1;o.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;if(!n)return!0;return o=n,!(o.is("element","ol")||o.is("element","ul"));var o}(o[s-1],t),l=a?null:o[s-1],c=(u=t,(d=l)?u.indent-d.indent:u.indent-1);var d,u;if(a&&(i=null,r=1),!i||0!==c){const o=function(t,e){const n=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi"),o=/mso-level-number-format:([^;]{0,100});/gi,i=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,r=n.exec(e);let s="decimal",a="ol",l=null;if(r&&r[1]){const e=o.exec(r[1]);if(e&&e[1]&&(s=e[1].trim(),a="bullet"!==s&&"image"!==s?"ol":"ul"),"bullet"===s){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;if("o"===n)return"circle";if("·"===n)return"disc";if("§"===n)return"square";return null}(t.element);e&&(s=e)}else{const t=i.exec(r[1]);t&&t[1]&&(l=parseInt(t[1]))}}return{type:a,startIndex:l,style:iC(s)}}(t,e);if(i){if(t.indent>r){const t=i.getChild(i.childCount-1),e=t.getChild(t.childCount-1);i=rC(o,e,n),r+=1}else if(t.indent1&&n.setAttribute("start",t.startIndex,i),i}function sC(t){const e={},n=t.getStyle("mso-list");if(n){const t=n.match(/(^|\s{1,100})l(\d+)/i),o=n.match(/\s{0,100}lfo(\d+)/i),i=n.match(/\s{0,100}level(\d+)/i);t&&o&&i&&(e.id=t[2],e.order=o[1],e.indent=i[1])}return e}const aC=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class lC{constructor(t){this.document=t}isActive(t){return aC.test(t)}execute(t){const e=new Tm(this.document),{body:n}=t._parsedData;!function(t,e){for(const n of t.getChildren())if(n.is("element","b")&&"normal"===n.getStyle("font-weight")){const o=t.getChildIndex(n);e.remove(n),e.insertChild(o,n.getChildren(),t)}}(n,e),function(t,e){for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","li")){const n=t.getChild(0);n&&n.is("element","p")&&e.unwrapElement(n)}}}(n,e),t.content=n}}function cC(t,e){if(!t.childCount)return;const n=new Tm,o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n){if("elementStart"!=t.type)continue;const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;o.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&i.push(t.item.getAttribute("id"))}return i}(t,n);!function(t,e,n){const o=n.createRangeIn(e),i=new Uo({name:"img"}),r=[];for(const e of o)if(i.match(e.item)){const n=e.item,o=n.getAttribute("v:shapes")?n.getAttribute("v:shapes").split(" "):[];o.length&&o.every((e=>t.indexOf(e)>-1))?r.push(n):n.getAttribute("src")||r.push(n)}for(const t of r)n.remove(t)}(o,t,n),function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n)"elementStart"==t.type&&o.match(t.item)&&i.push(t.item);for(const t of i)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:"img"}),i=[];for(const t of n)o.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&i.push(t.item);return i}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let o=0;oString.fromCharCode(parseInt(t,16)))).join(""))}const uC=//i,hC=/xmlns:o="urn:schemas-microsoft-com/i;class mC{constructor(t){this.document=t}isActive(t){return uC.test(t)||hC.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;oC(e,n),cC(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function gC(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length)))}function pC(t,e){const n=new DOMParser,o=function(t){return gC(gC(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e="",n="",o=t.indexOf(e);if(o<0)return t;const i=t.indexOf(n,o+e.length);return t.substring(0,o+e.length)+(i>=0?t.substring(i):"")}(t=t.replace(/

abc

\n\t\t\t//\n\t\t\tif ( isAttribute && this._wrapAttributeElement( wrapElement, child ) ) {\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// Wrap the child if it is not an attribute element or if it is an attribute element that should be inside\n\t\t\t// `wrapElement` (due to priority).\n\t\t\t//\n\t\t\t//

abc

-->

abc

\n\t\t\t//

abc

-->

abc

\n\t\t\telse if ( isText || !isAttribute || shouldABeOutsideB( wrapElement, child ) ) {\n\t\t\t\t// Clone attribute.\n\t\t\t\tconst newAttribute = wrapElement._clone();\n\n\t\t\t\t// Wrap current node with new attribute.\n\t\t\t\tchild._remove();\n\t\t\t\tnewAttribute._appendChild( child );\n\n\t\t\t\tparent._insertChild( i, newAttribute );\n\t\t\t\tthis._addToClonedElementsGroup( newAttribute );\n\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// If other nested attribute is found and it wasn't wrapped (see above), continue wrapping inside it.\n\t\t\t//\n\t\t\t//

abc

-->

abc

\n\t\t\t//\n\t\t\telse /* if ( isAttribute ) */ {\n\t\t\t\tthis._wrapChildren( child, 0, child.childCount, wrapElement );\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each wrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of wrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Unwraps children from provided `unwrapElement`. Only children contained in `parent` element between\n\t * `startOffset` and `endOffset` will be unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} parent\n\t * @param {Number} startOffset\n\t * @param {Number} endOffset\n\t * @param {module:engine/view/element~Element} unwrapElement\n\t */\n\t_unwrapChildren( parent, startOffset, endOffset, unwrapElement ) {\n\t\tlet i = startOffset;\n\t\tconst unwrapPositions = [];\n\n\t\t// Iterate over each element between provided offsets inside parent.\n\t\t// We don't use tree walker or range iterator because we will be removing and merging potentially multiple nodes,\n\t\t// so it could get messy. It is safer to it manually in this case.\n\t\twhile ( i < endOffset ) {\n\t\t\tconst child = parent.getChild( i );\n\n\t\t\t// Skip all text nodes. There should be no container element's here either.\n\t\t\tif ( !child.is( 'attributeElement' ) ) {\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// (In all examples, assume that `unwrapElement` is `` element.)\n\t\t\t//\n\t\t\t// If the child is similar to the given attribute element, unwrap it - it will be completely removed.\n\t\t\t//\n\t\t\t//

abcxyz

-->

abcxyz

\n\t\t\t//\n\t\t\tif ( child.isSimilar( unwrapElement ) ) {\n\t\t\t\tconst unwrapped = child.getChildren();\n\t\t\t\tconst count = child.childCount;\n\n\t\t\t\t// Replace wrapper element with its children\n\t\t\t\tchild._remove();\n\t\t\t\tparent._insertChild( i, unwrapped );\n\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\n\t\t\t\t// Save start and end position of moved items.\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + count )\n\t\t\t\t);\n\n\t\t\t\t// Skip elements that were unwrapped. Assuming there won't be another element to unwrap in child elements.\n\t\t\t\ti += count;\n\t\t\t\tendOffset += count - 1;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If the child is not similar but is an attribute element, try partial unwrapping - remove the same attributes/styles/classes.\n\t\t\t// Partial unwrapping will happen only if the elements have the same name.\n\t\t\t//\n\t\t\t//

abcxyz

-->

abcxyz

\n\t\t\t//

abcxyz

-->

abcxyz

\n\t\t\t//\n\t\t\tif ( this._unwrapAttributeElement( unwrapElement, child ) ) {\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + 1 )\n\t\t\t\t);\n\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If other nested attribute is found, look through it's children for elements to unwrap.\n\t\t\t//\n\t\t\t//

abc

-->

abc

\n\t\t\t//\n\t\t\tthis._unwrapChildren( child, 0, child.childCount, unwrapElement );\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each unwrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of unwrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset || position.offset == endOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Helper function for `view.writer.wrap`. Wraps range with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/range~Range} New range after wrapping, spanning over wrapping attribute element.\n\t */\n\t_wrapRange( range, attribute ) {\n\t\t// Break attributes at range start and end.\n\t\tconst { start: breakStart, end: breakEnd } = this._breakAttributesRange( range, true );\n\t\tconst parentContainer = breakStart.parent;\n\n\t\t// Wrap all children with attribute.\n\t\tconst newRange = this._wrapChildren( parentContainer, breakStart.offset, breakEnd.offset, attribute );\n\n\t\t// Merge attributes at the both ends and return a new range.\n\t\tconst start = this.mergeAttributes( newRange.start );\n\n\t\t// If start position was merged - move end position back.\n\t\tif ( !start.isEqual( newRange.start ) ) {\n\t\t\tnewRange.end.offset--;\n\t\t}\n\t\tconst end = this.mergeAttributes( newRange.end );\n\n\t\treturn new Range( start, end );\n\t}\n\n\t/**\n\t * Helper function for {@link #wrap}. Wraps position with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/position~Position} New position after wrapping.\n\t */\n\t_wrapPosition( position, attribute ) {\n\t\t// Return same position when trying to wrap with attribute similar to position parent.\n\t\tif ( attribute.isSimilar( position.parent ) ) {\n\t\t\treturn movePositionToTextNode( position.clone() );\n\t\t}\n\n\t\t// When position is inside text node - break it and place new position between two text nodes.\n\t\tif ( position.parent.is( '$text' ) ) {\n\t\t\tposition = breakTextNode( position );\n\t\t}\n\n\t\t// Create fake element that will represent position, and will not be merged with other attributes.\n\t\tconst fakePosition = this.createAttributeElement();\n\t\tfakePosition._priority = Number.POSITIVE_INFINITY;\n\t\tfakePosition.isSimilar = () => false;\n\n\t\t// Insert fake element in position location.\n\t\tposition.parent._insertChild( position.offset, fakePosition );\n\n\t\t// Range around inserted fake attribute element.\n\t\tconst wrapRange = new Range( position, position.getShiftedBy( 1 ) );\n\n\t\t// Wrap fake element with attribute (it will also merge if possible).\n\t\tthis.wrap( wrapRange, attribute );\n\n\t\t// Remove fake element and place new position there.\n\t\tconst newPosition = new Position( fakePosition.parent, fakePosition.index );\n\t\tfakePosition._remove();\n\n\t\t// If position is placed between text nodes - merge them and return position inside.\n\t\tconst nodeBefore = newPosition.nodeBefore;\n\t\tconst nodeAfter = newPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof Text && nodeAfter instanceof Text ) {\n\t\t\treturn mergeTextNodes( nodeBefore, nodeAfter );\n\t\t}\n\n\t\t// If position is next to text node - move position inside.\n\t\treturn movePositionToTextNode( newPosition );\n\t}\n\n\t/**\n\t * \tWraps one {@link module:engine/view/attributeelement~AttributeElement AttributeElement} into another by\n\t * \tmerging them if possible. When merging is possible - all attributes, styles and classes are moved from wrapper\n\t * \telement to element being wrapped.\n\t *\n\t * \t@private\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} toWrap AttributeElement to wrap using wrapper element.\n\t * \t@returns {Boolean} Returns `true` if elements are merged.\n\t */\n\t_wrapAttributeElement( wrapper, toWrap ) {\n\t\tif ( !canBeJoined( wrapper, toWrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't merge if name or priority differs.\n\t\tif ( wrapper.name !== toWrap.name || wrapper.priority !== toWrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if attributes can be merged.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are different we cannot wrap.\n\t\t\tif ( toWrap.hasAttribute( key ) && toWrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if styles can be merged.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( toWrap.hasStyle( key ) && toWrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Move all attributes/classes/styles from wrapper to wrapped AttributeElement.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Move only these attributes that are not present - other are similar.\n\t\t\tif ( !toWrap.hasAttribute( key ) ) {\n\t\t\t\tthis.setAttribute( key, wrapper.getAttribute( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( !toWrap.hasStyle( key ) ) {\n\t\t\t\tthis.setStyle( key, wrapper.getStyle( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getClassNames() ) {\n\t\t\tif ( !toWrap.hasClass( key ) ) {\n\t\t\t\tthis.addClass( key, toWrap );\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Unwraps {@link module:engine/view/attributeelement~AttributeElement AttributeElement} from another by removing\n\t * corresponding attributes, classes and styles. All attributes, classes and styles from wrapper should be present\n\t * inside element being unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * @param {module:engine/view/attributeelement~AttributeElement} toUnwrap AttributeElement to unwrap using wrapper element.\n\t * @returns {Boolean} Returns `true` if elements are unwrapped.\n\t **/\n\t_unwrapAttributeElement( wrapper, toUnwrap ) {\n\t\tif ( !canBeJoined( wrapper, toUnwrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't unwrap if name or priority differs.\n\t\tif ( wrapper.name !== toUnwrap.name || wrapper.priority !== toUnwrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper attributes.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasAttribute( key ) || toUnwrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper classes.\n\t\tif ( !toUnwrap.hasClass( ...wrapper.getClassNames() ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper styles.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\t// If some styles are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasStyle( key ) || toUnwrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Remove all wrapper's attributes from unwrapped element.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.removeAttribute( key, toUnwrap );\n\t\t}\n\n\t\t// Remove all wrapper's classes from unwrapped element.\n\t\tthis.removeClass( Array.from( wrapper.getClassNames() ), toUnwrap );\n\n\t\t// Remove all wrapper's styles from unwrapped element.\n\t\tthis.removeStyle( Array.from( wrapper.getStyleNames() ), toUnwrap );\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at the boundaries of given range.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/range~Range} New range with located at break positions.\n\t */\n\t_breakAttributesRange( range, forceSplitText = false ) {\n\t\tconst rangeStart = range.start;\n\t\tconst rangeEnd = range.end;\n\n\t\tvalidateRangeContainer( range, this.document );\n\n\t\t// Break at the collapsed position. Return new collapsed range.\n\t\tif ( range.isCollapsed ) {\n\t\t\tconst position = this._breakAttributes( range.start, forceSplitText );\n\n\t\t\treturn new Range( position, position );\n\t\t}\n\n\t\tconst breakEnd = this._breakAttributes( rangeEnd, forceSplitText );\n\t\tconst count = breakEnd.parent.childCount;\n\t\tconst breakStart = this._breakAttributes( rangeStart, forceSplitText );\n\n\t\t// Calculate new break end offset.\n\t\tbreakEnd.offset += breakEnd.parent.childCount - count;\n\n\t\treturn new Range( breakStart, breakEnd );\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at given position.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position\n\t * is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element` when break position\n\t * is placed inside {@link module:engine/view/uielement~UIElement UIElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position Position where to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/position~Position} New position after breaking the attributes.\n\t */\n\t_breakAttributes( position, forceSplitText = false ) {\n\t\tconst positionOffset = position.offset;\n\t\tconst positionParent = position.parent;\n\n\t\t// If position is placed inside EmptyElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'emptyElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break an `EmptyElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-empty-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-empty-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside UIElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'uiElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `UIElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-ui-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-ui-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside RawElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'rawElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `RawElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-raw-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-raw-element', this.document );\n\t\t}\n\n\t\t// There are no attributes to break and text nodes breaking is not forced.\n\t\tif ( !forceSplitText && positionParent.is( '$text' ) && isContainerOrFragment( positionParent.parent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Position's parent is container, so no attributes to break.\n\t\tif ( isContainerOrFragment( positionParent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Break text and start again in new position.\n\t\tif ( positionParent.is( '$text' ) ) {\n\t\t\treturn this._breakAttributes( breakTextNode( position ), forceSplitText );\n\t\t}\n\n\t\tconst length = positionParent.childCount;\n\n\t\t//

foobar{}

\n\t\t//

foobar[]

\n\t\t//

foobar[]

\n\t\tif ( positionOffset == length ) {\n\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index + 1 );\n\n\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t} else {\n\t\t\t//

foo{}bar

\n\t\t\t//

foo[]bar

\n\t\t\t//

foo{}bar

\n\t\t\tif ( positionOffset === 0 ) {\n\t\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t\t//

foob{}ar

\n\t\t\t//

foob[]ar

\n\t\t\t//

foob[]ar

\n\t\t\t//

foob[]ar

\n\t\t\telse {\n\t\t\t\tconst offsetAfter = positionParent.index + 1;\n\n\t\t\t\t// Break element.\n\t\t\t\tconst clonedNode = positionParent._clone();\n\n\t\t\t\t// Insert cloned node to position's parent node.\n\t\t\t\tpositionParent.parent._insertChild( offsetAfter, clonedNode );\n\t\t\t\tthis._addToClonedElementsGroup( clonedNode );\n\n\t\t\t\t// Get nodes to move.\n\t\t\t\tconst count = positionParent.childCount - positionOffset;\n\t\t\t\tconst nodesToMove = positionParent._removeChildren( positionOffset, count );\n\n\t\t\t\t// Move nodes to cloned node.\n\t\t\t\tclonedNode._appendChild( nodesToMove );\n\n\t\t\t\t// Create new position to work on.\n\t\t\t\tconst newPosition = new Position( positionParent.parent, offsetAfter );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Stores the information that an {@link module:engine/view/attributeelement~AttributeElement attribute element} was\n\t * added to the tree. Saves the reference to the group in the given element and updates the group, so other elements\n\t * from the group now keep a reference to the given attribute element.\n\t *\n\t * The clones group can be obtained using {@link module:engine/view/attributeelement~AttributeElement#getElementsWithSameId}.\n\t *\n\t * Does nothing if added element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to save.\n\t */\n\t_addToClonedElementsGroup( element ) {\n\t\t// Add only if the element is in document tree.\n\t\tif ( !element.root.is( 'rootElement' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Traverse the element's children recursively to find other attribute elements that also might got inserted.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._addToClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\tgroup = new Set();\n\t\t\tthis._cloneGroups.set( id, group );\n\t\t}\n\n\t\tgroup.add( element );\n\t\telement._clonesGroup = group;\n\t}\n\n\t/**\n\t * Removes all the information about the given {@link module:engine/view/attributeelement~AttributeElement attribute element}\n\t * from its clones group.\n\t *\n\t * Keep in mind, that the element will still keep a reference to the group (but the group will not keep a reference to it).\n\t * This allows to reference the whole group even if the element was already removed from the tree.\n\t *\n\t * Does nothing if the element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to remove.\n\t */\n\t_removeFromClonedElementsGroup( element ) {\n\t\t// Traverse the element's children recursively to find other attribute elements that also got removed.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.delete( element );\n\t\t// Not removing group from element on purpose!\n\t\t// If other parts of code have reference to this element, they will be able to get references to other elements from the group.\n\t}\n}\n\n// Helper function for `view.writer.wrap`. Checks if given element has any children that are not ui elements.\nfunction _hasNonUiChildren( parent ) {\n\treturn Array.from( parent.getChildren() ).some( child => !child.is( 'uiElement' ) );\n}\n\n/**\n * The `attribute` passed to {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`}\n * must be an instance of {@link module:engine/view/attributeelement~AttributeElement `AttributeElement`}.\n *\n * @error view-writer-wrap-invalid-attribute\n */\n\n// Returns first parent container of specified {@link module:engine/view/position~Position Position}.\n// Position's parent node is checked as first, then next parents are checked.\n// Note that {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n//\n// @param {module:engine/view/position~Position} position Position used as a start point to locate parent container.\n// @returns {module:engine/view/containerelement~ContainerElement|module:engine/view/documentfragment~DocumentFragment|undefined}\n// Parent container element or `undefined` if container is not found.\nfunction getParentContainer( position ) {\n\tlet parent = position.parent;\n\n\twhile ( !isContainerOrFragment( parent ) ) {\n\t\tif ( !parent ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\n\treturn parent;\n}\n\n// Checks if first {@link module:engine/view/attributeelement~AttributeElement AttributeElement} provided to the function\n// can be wrapped outside second element. It is done by comparing elements'\n// {@link module:engine/view/attributeelement~AttributeElement#priority priorities}, if both have same priority\n// {@link module:engine/view/element~Element#getIdentity identities} are compared.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} a\n// @param {module:engine/view/attributeelement~AttributeElement} b\n// @returns {Boolean}\nfunction shouldABeOutsideB( a, b ) {\n\tif ( a.priority < b.priority ) {\n\t\treturn true;\n\t} else if ( a.priority > b.priority ) {\n\t\treturn false;\n\t}\n\n\t// When priorities are equal and names are different - use identities.\n\treturn a.getIdentity() < b.getIdentity();\n}\n\n// Returns new position that is moved to near text node. Returns same position if there is no text node before of after\n// specified position.\n//\n//\t\t

foo[]

->

foo{}

\n//\t\t

[]foo

->

{}foo

\n//\n// @param {module:engine/view/position~Position} position\n// @returns {module:engine/view/position~Position} Position located inside text node or same position if there is no text nodes\n// before or after position location.\nfunction movePositionToTextNode( position ) {\n\tconst nodeBefore = position.nodeBefore;\n\n\tif ( nodeBefore && nodeBefore.is( '$text' ) ) {\n\t\treturn new Position( nodeBefore, nodeBefore.data.length );\n\t}\n\n\tconst nodeAfter = position.nodeAfter;\n\n\tif ( nodeAfter && nodeAfter.is( '$text' ) ) {\n\t\treturn new Position( nodeAfter, 0 );\n\t}\n\n\treturn position;\n}\n\n// Breaks text node into two text nodes when possible.\n//\n//\t\t

foo{}bar

->

foo[]bar

\n//\t\t

{}foobar

->

[]foobar

\n//\t\t

foobar{}

->

foobar[]

\n//\n// @param {module:engine/view/position~Position} position Position that need to be placed inside text node.\n// @returns {module:engine/view/position~Position} New position after breaking text node.\nfunction breakTextNode( position ) {\n\tif ( position.offset == position.parent.data.length ) {\n\t\treturn new Position( position.parent.parent, position.parent.index + 1 );\n\t}\n\n\tif ( position.offset === 0 ) {\n\t\treturn new Position( position.parent.parent, position.parent.index );\n\t}\n\n\t// Get part of the text that need to be moved.\n\tconst textToMove = position.parent.data.slice( position.offset );\n\n\t// Leave rest of the text in position's parent.\n\tposition.parent._data = position.parent.data.slice( 0, position.offset );\n\n\t// Insert new text node after position's parent text node.\n\tposition.parent.parent._insertChild( position.parent.index + 1, new Text( position.root.document, textToMove ) );\n\n\t// Return new position between two newly created text nodes.\n\treturn new Position( position.parent.parent, position.parent.index + 1 );\n}\n\n// Merges two text nodes into first node. Removes second node and returns merge position.\n//\n// @param {module:engine/view/text~Text} t1 First text node to merge. Data from second text node will be moved at the end of\n// this text node.\n// @param {module:engine/view/text~Text} t2 Second text node to merge. This node will be removed after merging.\n// @returns {module:engine/view/position~Position} Position after merging text nodes.\nfunction mergeTextNodes( t1, t2 ) {\n\t// Merge text data into first text node and remove second one.\n\tconst nodeBeforeLength = t1.data.length;\n\tt1._data += t2.data;\n\tt2._remove();\n\n\treturn new Position( t1, nodeBeforeLength );\n}\n\n// Checks if provided nodes are valid to insert.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n// contains instances that are not supported ones (see error description for valid ones.\n//\n// @param Iterable. nodes\n// @param {Object} errorContext\nfunction validateNodesToInsert( nodes, errorContext ) {\n\tfor ( const node of nodes ) {\n\t\tif ( !validNodesToInsert.some( ( validNode => node instanceof validNode ) ) ) { // eslint-disable-line no-use-before-define\n\t\t\t/**\n\t\t\t * One of the nodes to be inserted is of an invalid type.\n\t\t\t *\n\t\t\t * Nodes to be inserted with {@link module:engine/view/downcastwriter~DowncastWriter#insert `DowncastWriter#insert()`} should be\n\t\t\t * of the following types:\n\t\t\t *\n\t\t\t * * {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n\t\t\t * * {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n\t\t\t * * {@link module:engine/view/emptyelement~EmptyElement EmptyElement},\n\t\t\t * * {@link module:engine/view/uielement~UIElement UIElement},\n\t\t\t * * {@link module:engine/view/rawelement~RawElement RawElement},\n\t\t\t * * {@link module:engine/view/text~Text Text}.\n\t\t\t *\n\t\t\t * @error view-writer-insert-invalid-node-type\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-insert-invalid-node-type', errorContext );\n\t\t}\n\n\t\tif ( !node.is( '$text' ) ) {\n\t\t\tvalidateNodesToInsert( node.getChildren(), errorContext );\n\t\t}\n\t}\n}\n\nconst validNodesToInsert = [ Text, AttributeElement, ContainerElement, EmptyElement, RawElement, UIElement ];\n\n// Checks if node is ContainerElement or DocumentFragment, because in most cases they should be treated the same way.\n//\n// @param {module:engine/view/node~Node} node\n// @returns {Boolean} Returns `true` if node is instance of ContainerElement or DocumentFragment.\nfunction isContainerOrFragment( node ) {\n\treturn node && ( node.is( 'containerElement' ) || node.is( 'documentFragment' ) );\n}\n\n// Checks if {@link module:engine/view/range~Range#start range start} and {@link module:engine/view/range~Range#end range end} are placed\n// inside same {@link module:engine/view/containerelement~ContainerElement container element}.\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when validation fails.\n//\n// @param {module:engine/view/range~Range} range\n// @param {Object} errorContext\nfunction validateRangeContainer( range, errorContext ) {\n\tconst startContainer = getParentContainer( range.start );\n\tconst endContainer = getParentContainer( range.end );\n\n\tif ( !startContainer || !endContainer || startContainer !== endContainer ) {\n\t\t/**\n\t\t * The container of the given range is invalid.\n\t\t *\n\t\t * This may happen if {@link module:engine/view/range~Range#start range start} and\n\t\t * {@link module:engine/view/range~Range#end range end} positions are not placed inside the same container element or\n\t\t * a parent container for these positions cannot be found.\n\t\t *\n\t\t * Methods like {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#remove()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#clean()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#unwrap()`} need to be called\n\t\t * on a range that has its start and end positions located in the same container element. Both positions can be\n\t\t * nested within other elements (e.g. an attribute element) but the closest container ancestor must be the same.\n\t\t *\n\t\t * @error view-writer-invalid-range-container\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-invalid-range-container', errorContext );\n\t}\n}\n\n// Checks if two attribute elements can be joined together. Elements can be joined together if, and only if\n// they do not have ids specified.\n//\n// @private\n// @param {module:engine/view/element~Element} a\n// @param {module:engine/view/element~Element} b\n// @returns {Boolean}\nfunction canBeJoined( a, b ) {\n\treturn a.id === null && b.id === null;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/istext\n */\n\n/**\n * Checks if the object is a native DOM Text node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isText( obj ) {\n\treturn Object.prototype.toString.call( obj ) == '[object Text]';\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\n\n/**\n * Set of utilities related to handling block and inline fillers.\n *\n * Browsers do not allow to put caret in elements which does not have height. Because of it, we need to fill all\n * empty elements which should be selectable with elements or characters called \"fillers\". Unfortunately there is no one\n * universal filler, this is why two types are uses:\n *\n * * Block filler is an element which fill block elements, like `

`. CKEditor uses `
` as a block filler during the editing,\n * as browsers do natively. So instead of an empty `

` there will be `


`. The advantage of block filler is that\n * it is transparent for the selection, so when the caret is before the `
` and user presses right arrow he will be\n * moved to the next paragraph, not after the `
`. The disadvantage is that it breaks a block, so it can not be used\n * in the middle of a line of text. The {@link module:engine/view/filler~BR_FILLER `
` filler} can be replaced with any other\n * character in the data output, for instance {@link module:engine/view/filler~NBSP_FILLER non-breaking space} or\n * {@link module:engine/view/filler~MARKED_NBSP_FILLER marked non-breaking space}.\n *\n * * Inline filler is a filler which does not break a line of text, so it can be used inside the text, for instance in the empty\n * `` surrendered by text: `foobar`, if we want to put the caret there. CKEditor uses a sequence of the zero-width\n * spaces as an {@link module:engine/view/filler~INLINE_FILLER inline filler} having the predetermined\n * {@link module:engine/view/filler~INLINE_FILLER_LENGTH length}. A sequence is used, instead of a single character to\n * avoid treating random zero-width spaces as the inline filler. Disadvantage of the inline filler is that it is not\n * transparent for the selection. The arrow key moves the caret between zero-width spaces characters, so the additional\n * code is needed to handle the caret.\n *\n * Both inline and block fillers are handled by the {@link module:engine/view/renderer~Renderer renderer} and are not present in the\n * view.\n *\n * @module engine/view/filler\n */\n\n/**\n * Non-breaking space filler creator. This function creates the ` ` text node.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~MARKED_NBSP_FILLER\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\nexport const NBSP_FILLER = domDocument => domDocument.createTextNode( '\\u00A0' );\n\n/**\n * Marked non-breaking space filler creator. This function creates the ` ` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\nexport const MARKED_NBSP_FILLER = domDocument => {\n\tconst span = domDocument.createElement( 'span' );\n\tspan.dataset.ckeFiller = true;\n\tspan.innerHTML = '\\u00A0';\n\n\treturn span;\n};\n\n/**\n * `
` filler creator. This function creates the `
` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @see module:engine/view/filler~MARKED_NBSP_FILLER\n * @function\n */\nexport const BR_FILLER = domDocument => {\n\tconst fillerBr = domDocument.createElement( 'br' );\n\tfillerBr.dataset.ckeFiller = true;\n\n\treturn fillerBr;\n};\n\n/**\n * Length of the {@link module:engine/view/filler~INLINE_FILLER INLINE_FILLER}.\n */\nexport const INLINE_FILLER_LENGTH = 7;\n\n/**\n * Inline filler which is a sequence of the word joiners.\n *\n * @type {String}\n */\nexport const INLINE_FILLER = '\\u2060'.repeat( INLINE_FILLER_LENGTH );\n\n/**\n * Checks if the node is a text node which starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( 'foo' ) ); // false\n *\t\tstartsWithFiller( document.createElement( 'p' ) ); // false\n *\n * @param {Node} domNode DOM node.\n * @returns {Boolean} True if the text node starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function startsWithFiller( domNode ) {\n\treturn isText( domNode ) && ( domNode.data.substr( 0, INLINE_FILLER_LENGTH ) === INLINE_FILLER );\n}\n\n/**\n * Checks if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // false\n *\n * @param {Text} domText DOM text node.\n * @returns {Boolean} True if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function isInlineFiller( domText ) {\n\treturn domText.data.length == INLINE_FILLER_LENGTH && startsWithFiller( domText );\n}\n\n/**\n * Get string data from the text node, removing an {@link module:engine/view/filler~INLINE_FILLER inline filler} from it,\n * if text node contains it.\n *\n *\t\tgetDataWithoutFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ) == 'foo' // true\n *\t\tgetDataWithoutFiller( document.createTextNode( 'foo' ) ) == 'foo' // true\n *\n * @param {Text} domText DOM text node, possible with inline filler.\n * @returns {String} Data without filler.\n */\nexport function getDataWithoutFiller( domText ) {\n\tif ( startsWithFiller( domText ) ) {\n\t\treturn domText.data.slice( INLINE_FILLER_LENGTH );\n\t} else {\n\t\treturn domText.data;\n\t}\n}\n\n/**\n * Assign key observer which move cursor from the end of the inline filler to the beginning of it when\n * the left arrow is pressed, so the filler does not break navigation.\n *\n * @param {module:engine/view/view~View} view View controller instance we should inject quirks handling on.\n */\nexport function injectQuirksHandling( view ) {\n\tview.document.on( 'arrowKey', jumpOverInlineFiller, { priority: 'low' } );\n}\n\n// Move cursor from the end of the inline filler to the beginning of it when, so the filler does not break navigation.\nfunction jumpOverInlineFiller( evt, data ) {\n\tif ( data.keyCode == keyCodes.arrowleft ) {\n\t\tconst domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n\n\t\tif ( domSelection.rangeCount == 1 && domSelection.getRangeAt( 0 ).collapsed ) {\n\t\t\tconst domParent = domSelection.getRangeAt( 0 ).startContainer;\n\t\t\tconst domOffset = domSelection.getRangeAt( 0 ).startOffset;\n\n\t\t\tif ( startsWithFiller( domParent ) && domOffset <= INLINE_FILLER_LENGTH ) {\n\t\t\t\tdomSelection.collapse( domParent, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/fastdiff\n */\n\n/**\n * Finds positions of the first and last change in the given string/array and generates a set of changes:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ { index: 2, type: 'insert', values: [ 'x', 'y', 'z' ] } ]\n *\n *\t\tfastDiff( '12a', '12aa' );\n *\t\t// [ { index: 3, type: 'insert', values: [ 'a' ] } ]\n *\n *\t\tfastDiff( '12xyza', '12a' );\n *\t\t// [ { index: 2, type: 'delete', howMany: 3 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'a' ], [ '1', '2', 'a' ] );\n *\t\t// [ { index: 3, type: 'delete', howMany: 1 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'b', 'c', '3' ], [ '2', 'a', 'b' ] );\n *\t\t// [ { index: 0, type: 'insert', values: [ '2', 'a', 'b' ] }, { index: 3, type: 'delete', howMany: 6 } ]\n *\n * Passed arrays can contain any type of data, however to compare them correctly custom comparator function\n * should be passed as a third parameter:\n *\n *\t\tfastDiff( [ { value: 1 }, { value: 2 } ], [ { value: 1 }, { value: 3 } ], ( a, b ) => {\n *\t\t\treturn a.value === b.value;\n *\t\t} );\n *\t\t// [ { index: 1, type: 'insert', values: [ { value: 3 } ] }, { index: 2, type: 'delete', howMany: 1 } ]\n *\n * The resulted set of changes can be applied to the input in order to transform it into the output, for example:\n *\n *\t\tlet input = '12abc3';\n *\t\tconst output = '2ab';\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + change.values.join( '' ) + input.substring( change.index );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + input.substring( change.index + change.howMany );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * or in case of arrays:\n *\n *\t\tlet input = [ '1', '2', 'a', 'b', 'c', '3' ];\n *\t\tconst output = [ '2', 'a', 'b' ];\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( change.values, input.slice( change.index ) );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( input.slice( change.index + change.howMany ) );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * By passing `true` as the fourth parameter (`atomicChanges`) the output of this function will become compatible with\n * the {@link module:utils/diff~diff `diff()`} function:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ 'equal', 'equal', 'insert', 'insert', 'insert', 'equal' ]\n *\n * The default output format of this function is compatible with the output format of\n * {@link module:utils/difftochanges~diffToChanges `diffToChanges()`}. The `diffToChanges()` input format is, in turn,\n * compatible with the output of {@link module:utils/diff~diff `diff()`}:\n *\n *\t\tconst a = '1234';\n *\t\tconst b = '12xyz34';\n *\n *\t\t// Both calls will return the same results (grouped changes format).\n *\t\tfastDiff( a, b );\n *\t\tdiffToChanges( diff( a, b ) );\n *\n *\t\t// Again, both calls will return the same results (atomic changes format).\n *\t\tfastDiff( a, b, null, true );\n *\t\tdiff( a, b );\n *\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Input array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default `===` (strict equal operator) is used.\n * @param {Boolean} [atomicChanges=false] Whether an array of `inset|delete|equal` operations should\n * be returned instead of changes set. This makes this function compatible with {@link module:utils/diff~diff `diff()`}.\n * @returns {Array} Array of changes.\n */\nexport default function fastDiff( a, b, cmp, atomicChanges = false ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\t// Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because,\n\t// unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string.\n\t// One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units.\n\t// See ckeditor/ckeditor5#3147.\n\t//\n\t// We need to make sure here that fastDiff() works identical to diff().\n\tif ( !Array.isArray( a ) ) {\n\t\ta = Array.prototype.slice.call( a );\n\t}\n\n\tif ( !Array.isArray( b ) ) {\n\t\tb = Array.prototype.slice.call( b );\n\t}\n\n\t// Find first and last change.\n\tconst changeIndexes = findChangeBoundaryIndexes( a, b, cmp );\n\n\t// Transform into changes array.\n\treturn atomicChanges ? changeIndexesToAtomicChanges( changeIndexes, b.length ) : changeIndexesToChanges( b, changeIndexes );\n}\n\n// Finds position of the first and last change in the given arrays. For example:\n//\n//\t\tconst indexes = findChangeBoundaryIndexes( [ '1', '2', '3', '4' ], [ '1', '3', '4', '2', '4' ] );\n//\t\tconsole.log( indexes ); // { firstIndex: 1, lastIndexOld: 3, lastIndexNew: 4 }\n//\n// The above indexes means that in the first array the modified part is `1[23]4` and in the second array it is `1[342]4`.\n// Based on such indexes, array with `insert`/`delete` operations which allows transforming first value into the second one\n// can be generated.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Object}\n// @returns {Number} return.firstIndex Index of the first change in both values (always the same for both).\n// @returns {Number} result.lastIndexOld Index of the last common value in `arr1`.\n// @returns {Number} result.lastIndexNew Index of the last common value in `arr2`.\nfunction findChangeBoundaryIndexes( arr1, arr2, cmp ) {\n\t// Find the first difference between passed values.\n\tconst firstIndex = findFirstDifferenceIndex( arr1, arr2, cmp );\n\n\t// If arrays are equal return -1 indexes object.\n\tif ( firstIndex === -1 ) {\n\t\treturn { firstIndex: -1, lastIndexOld: -1, lastIndexNew: -1 };\n\t}\n\n\t// Remove the common part of each value and reverse them to make it simpler to find the last difference between them.\n\tconst oldArrayReversed = cutAndReverse( arr1, firstIndex );\n\tconst newArrayReversed = cutAndReverse( arr2, firstIndex );\n\n\t// Find the first difference between reversed values.\n\t// It should be treated as \"how many elements from the end the last difference occurred\".\n\t//\n\t// For example:\n\t//\n\t// \t\t\t\tinitial\t->\tafter cut\t-> reversed:\n\t// oldValue:\t'321ba'\t->\t'21ba'\t\t-> 'ab12'\n\t// newValue:\t'31xba'\t->\t'1xba'\t\t-> 'abx1'\n\t// lastIndex:\t\t\t\t\t\t\t-> 2\n\t//\n\t// So the last change occurred two characters from the end of the arrays.\n\tconst lastIndex = findFirstDifferenceIndex( oldArrayReversed, newArrayReversed, cmp );\n\n\t// Use `lastIndex` to calculate proper offset, starting from the beginning (`lastIndex` kind of starts from the end).\n\tconst lastIndexOld = arr1.length - lastIndex;\n\tconst lastIndexNew = arr2.length - lastIndex;\n\n\treturn { firstIndex, lastIndexOld, lastIndexNew };\n}\n\n// Returns a first index on which given arrays differ. If both arrays are the same, -1 is returned.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Number}\nfunction findFirstDifferenceIndex( arr1, arr2, cmp ) {\n\tfor ( let i = 0; i < Math.max( arr1.length, arr2.length ); i++ ) {\n\t\tif ( arr1[ i ] === undefined || arr2[ i ] === undefined || !cmp( arr1[ i ], arr2[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1; // Return -1 if arrays are equal.\n}\n\n// Returns a copy of the given array with `howMany` elements removed starting from the beginning and in reversed order.\n//\n// @param {Array} arr Array to be processed.\n// @param {Number} howMany How many elements from array beginning to remove.\n// @returns {Array} Shortened and reversed array.\nfunction cutAndReverse( arr, howMany ) {\n\treturn arr.slice( howMany ).reverse();\n}\n\n// Generates changes array based on change indexes from `findChangeBoundaryIndexes` function. This function will\n// generate array with 0 (no changes), 1 (deletion or insertion) or 2 records (insertion and deletion).\n//\n// @param {Array} newArray New array for which change indexes were calculated.\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @returns {Array.} Array of changes compatible with {@link module:utils/difftochanges~diffToChanges} format.\nfunction changeIndexesToChanges( newArray, changeIndexes ) {\n\tconst result = [];\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// Order operations as 'insert', 'delete' array to keep compatibility with {@link module:utils/difftochanges~diffToChanges}\n\t// in most cases. However, 'diffToChanges' does not stick to any order so in some cases\n\t// (for example replacing '12345' with 'abcd') it will generate 'delete', 'insert' order.\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex,\n\t\t\ttype: 'insert',\n\t\t\tvalues: newArray.slice( firstIndex, lastIndexNew )\n\t\t} );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex + ( lastIndexNew - firstIndex ), // Increase index of what was inserted.\n\t\t\ttype: 'delete',\n\t\t\thowMany: lastIndexOld - firstIndex\n\t\t} );\n\t}\n\n\treturn result;\n}\n\n// Generates array with set `equal|insert|delete` operations based on change indexes from `findChangeBoundaryIndexes` function.\n//\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @param {Number} newLength Length of the new array on which `findChangeBoundaryIndexes` calculated change indexes.\n// @returns {Array.} Array of changes compatible with {@link module:utils/diff~diff} format.\nfunction changeIndexesToAtomicChanges( changeIndexes, newLength ) {\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// No changes.\n\tif ( firstIndex === -1 ) {\n\t\treturn Array( newLength ).fill( 'equal' );\n\t}\n\n\tlet result = [];\n\tif ( firstIndex > 0 ) {\n\t\tresult = result.concat( Array( firstIndex ).fill( 'equal' ) );\n\t}\n\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexNew - firstIndex ).fill( 'insert' ) );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexOld - firstIndex ).fill( 'delete' ) );\n\t}\n\n\tif ( lastIndexNew < newLength ) {\n\t\tresult = result.concat( Array( newLength - lastIndexNew ).fill( 'equal' ) );\n\t}\n\n\treturn result;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/diff\n */\n\nimport fastDiff from '../src/fastdiff';\n\n// The following code is based on the \"O(NP) Sequence Comparison Algorithm\"\n// by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n\n/**\n * Calculates the difference between two arrays or strings producing an array containing a list of changes\n * necessary to transform input into output.\n *\n *\t\tdiff( 'aba', 'acca' ); // [ 'equal', 'insert', 'insert', 'delete', 'equal' ]\n *\n * This function is based on the \"O(NP) Sequence Comparison Algorithm\" by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n * Unfortunately, while it gives the most precise results, its to complex for longer strings/arrow (above 200 items).\n * Therefore, `diff()` automatically switches to {@link module:utils/fastdiff~fastDiff `fastDiff()`} when detecting\n * such a scenario. The return formats of both functions are identical.\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Output array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default === is used.\n * @returns {Array} Array of changes.\n */\nexport default function diff( a, b, cmp ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\tconst aLength = a.length;\n\tconst bLength = b.length;\n\n\t// Perform `fastDiff` for longer strings/arrays (see #269).\n\tif ( aLength > 200 || bLength > 200 || aLength + bLength > 300 ) {\n\t\treturn diff.fastDiff( a, b, cmp, true );\n\t}\n\n\t// Temporary action type statics.\n\tlet _insert, _delete;\n\n\t// Swapped the arrays to use the shorter one as the first one.\n\tif ( bLength < aLength ) {\n\t\tconst tmp = a;\n\n\t\ta = b;\n\t\tb = tmp;\n\n\t\t// We swap the action types as well.\n\t\t_insert = 'delete';\n\t\t_delete = 'insert';\n\t} else {\n\t\t_insert = 'insert';\n\t\t_delete = 'delete';\n\t}\n\n\tconst m = a.length;\n\tconst n = b.length;\n\tconst delta = n - m;\n\n\t// Edit scripts, for each diagonal.\n\tconst es = {};\n\t// Furthest points, the furthest y we can get on each diagonal.\n\tconst fp = {};\n\n\tfunction snake( k ) {\n\t\t// We use -1 as an alternative below to handle initial values ( instead of filling the fp with -1 first ).\n\t\t// Furthest points (y) on the diagonal below k.\n\t\tconst y1 = ( fp[ k - 1 ] !== undefined ? fp[ k - 1 ] : -1 ) + 1;\n\t\t// Furthest points (y) on the diagonal above k.\n\t\tconst y2 = fp[ k + 1 ] !== undefined ? fp[ k + 1 ] : -1;\n\t\t// The way we should go to get further.\n\t\tconst dir = y1 > y2 ? -1 : 1;\n\n\t\t// Clone previous changes array (if any).\n\t\tif ( es[ k + dir ] ) {\n\t\t\tes[ k ] = es[ k + dir ].slice( 0 );\n\t\t}\n\n\t\t// Create changes array.\n\t\tif ( !es[ k ] ) {\n\t\t\tes[ k ] = [];\n\t\t}\n\n\t\t// Push the action.\n\t\tes[ k ].push( y1 > y2 ? _insert : _delete );\n\n\t\t// Set the beginning coordinates.\n\t\tlet y = Math.max( y1, y2 );\n\t\tlet x = y - k;\n\n\t\t// Traverse the diagonal as long as the values match.\n\t\twhile ( x < m && y < n && cmp( a[ x ], b[ y ] ) ) {\n\t\t\tx++;\n\t\t\ty++;\n\t\t\t// Push no change action.\n\t\t\tes[ k ].push( 'equal' );\n\t\t}\n\n\t\treturn y;\n\t}\n\n\tlet p = 0;\n\tlet k;\n\n\t// Traverse the graph until we reach the end of the longer string.\n\tdo {\n\t\t// Updates furthest points and edit scripts for diagonals below delta.\n\t\tfor ( k = -p; k < delta; k++ ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest points and edit scripts for diagonals above delta.\n\t\tfor ( k = delta + p; k > delta; k-- ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest point and edit script for the delta diagonal.\n\t\t// note that the delta diagonal is the one which goes through the sink (m, n).\n\t\tfp[ delta ] = snake( delta );\n\n\t\tp++;\n\t} while ( fp[ delta ] !== n );\n\n\t// Return the final list of edit changes.\n\t// We remove the first item that represents the action for the injected nulls.\n\treturn es[ delta ].slice( 1 );\n}\n\n// Store the API in static property to easily overwrite it in tests.\n// Too bad dependency injection does not work in Webpack + ES 6 (const) + Babel.\ndiff.fastDiff = fastDiff;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/insertat\n */\n\n/**\n * Inserts node to the parent at given index.\n *\n * @param {Element} parentElement Parent element.\n * @param {Number} index Insertions index.\n * @param {Node} nodeToInsert Node to insert.\n */\nexport default function insertAt( parentElement, index, nodeToInsert ) {\n\tparentElement.insertBefore( nodeToInsert, parentElement.childNodes[ index ] || null );\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/remove\n */\n\n/**\n * Removes given node from parent.\n *\n * @param {Node} node Node to remove.\n */\nexport default function remove( node ) {\n\tconst parent = node.parentNode;\n\n\tif ( parent ) {\n\t\tparent.removeChild( node );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module utils/dom/iscomment\n */\n\n/**\n * Checks whether the object is a native DOM Comment node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isComment( obj ) {\n\treturn obj && obj.nodeType === Node.COMMENT_NODE;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/isnode\n */\n\n/**\n * Checks if the object is a native DOM Node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isNode( obj ) {\n\tif ( obj ) {\n\t\tif ( obj.defaultView ) {\n\t\t\treturn obj instanceof obj.defaultView.Document;\n\t\t} else if ( obj.ownerDocument && obj.ownerDocument.defaultView ) {\n\t\t\treturn obj instanceof obj.ownerDocument.defaultView.Node;\n\t\t}\n\t}\n\n\treturn false;\n}\n","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./renderer.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./renderer.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module engine/view/renderer\n */\n\nimport ViewText from './text';\nimport ViewPosition from './position';\nimport { INLINE_FILLER, INLINE_FILLER_LENGTH, startsWithFiller, isInlineFiller } from './filler';\n\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport insertAt from '@ckeditor/ckeditor5-utils/src/dom/insertat';\nimport remove from '@ckeditor/ckeditor5-utils/src/dom/remove';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isComment from '@ckeditor/ckeditor5-utils/src/dom/iscomment';\nimport isNode from '@ckeditor/ckeditor5-utils/src/dom/isnode';\nimport fastDiff from '@ckeditor/ckeditor5-utils/src/fastdiff';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n\nimport '../../theme/renderer.css';\n\n/**\n * Renderer is responsible for updating the DOM structure and the DOM selection based on\n * the {@link module:engine/view/renderer~Renderer#markToSync information about updated view nodes}.\n * In other words, it renders the view to the DOM.\n *\n * Its main responsibility is to make only the necessary, minimal changes to the DOM. However, unlike in many\n * virtual DOM implementations, the primary reason for doing minimal changes is not the performance but ensuring\n * that native editing features such as text composition, autocompletion, spell checking, selection's x-index are\n * affected as little as possible.\n *\n * Renderer uses {@link module:engine/view/domconverter~DomConverter} to transform view nodes and positions\n * to and from the DOM.\n */\nexport default class Renderer {\n\t/**\n\t * Creates a renderer instance.\n\t *\n\t * @param {module:engine/view/domconverter~DomConverter} domConverter Converter instance.\n\t * @param {module:engine/view/documentselection~DocumentSelection} selection View selection.\n\t */\n\tconstructor( domConverter, selection ) {\n\t\t/**\n\t\t * Set of DOM Documents instances.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.domDocuments = new Set();\n\n\t\t/**\n\t\t * Converter instance.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/domconverter~DomConverter}\n\t\t */\n\t\tthis.domConverter = domConverter;\n\n\t\t/**\n\t\t * Set of nodes which attributes changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedAttributes = new Set();\n\n\t\t/**\n\t\t * Set of elements which child lists changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedChildren = new Set();\n\n\t\t/**\n\t\t * Set of text nodes which text data changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedTexts = new Set();\n\n\t\t/**\n\t\t * View selection. Renderer updates DOM selection based on the view selection.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/documentselection~DocumentSelection}\n\t\t */\n\t\tthis.selection = selection;\n\n\t\t/**\n\t\t * Indicates if the view document is focused and selection can be rendered. Selection will not be rendered if\n\t\t * this is set to `false`.\n\t\t *\n\t\t * @member {Boolean}\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'isFocused', false );\n\n\t\t/**\n\t\t * Indicates whether the user is making a selection in the document (e.g. holding the mouse button and moving the cursor).\n\t\t * When they stop selecting, the property goes back to `false`.\n\t\t *\n\t\t * Note: In some browsers, the renderer will stop rendering the selection and inline fillers while the user is making\n\t\t * a selection to avoid glitches in DOM selection\n\t\t * (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\t *\n\t\t * @member {Boolean}\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'isSelecting', false );\n\n\t\t// Rendering the selection and inline filler manipulation should be postponed in (non-Android) Blink until the user finishes\n\t\t// creating the selection in DOM to avoid accidental selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\t// When the user stops selecting, all pending changes should be rendered ASAP, though.\n\t\tif ( env.isBlink && !env.isAndroid ) {\n\t\t\tthis.on( 'change:isSelecting', () => {\n\t\t\t\tif ( !this.isSelecting ) {\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * The text node in which the inline filler was rendered.\n\t\t *\n\t\t * @private\n\t\t * @member {Text}\n\t\t */\n\t\tthis._inlineFiller = null;\n\n\t\t/**\n\t\t * DOM element containing fake selection.\n\t\t *\n\t\t * @private\n\t\t * @type {null|HTMLElement}\n\t\t */\n\t\tthis._fakeSelectionContainer = null;\n\t}\n\n\t/**\n\t * Marks a view node to be updated in the DOM by {@link #render `render()`}.\n\t *\n\t * Note that only view nodes whose parents have corresponding DOM elements need to be marked to be synchronized.\n\t *\n\t * @see #markedAttributes\n\t * @see #markedChildren\n\t * @see #markedTexts\n\t *\n\t * @param {module:engine/view/document~ChangeType} type Type of the change.\n\t * @param {module:engine/view/node~Node} node Node to be marked.\n\t */\n\tmarkToSync( type, node ) {\n\t\tif ( type === 'text' ) {\n\t\t\tif ( this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis.markedTexts.add( node );\n\t\t\t}\n\t\t} else {\n\t\t\t// If the node has no DOM element it is not rendered yet,\n\t\t\t// its children/attributes do not need to be marked to be sync.\n\t\t\tif ( !this.domConverter.mapViewToDom( node ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( type === 'attributes' ) {\n\t\t\t\tthis.markedAttributes.add( node );\n\t\t\t} else if ( type === 'children' ) {\n\t\t\t\tthis.markedChildren.add( node );\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Unknown type passed to Renderer.markToSync.\n\t\t\t\t *\n\t\t\t\t * @error view-renderer-unknown-type\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'view-renderer-unknown-type', this );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Renders all buffered changes ({@link #markedAttributes}, {@link #markedChildren} and {@link #markedTexts}) and\n\t * the current view selection (if needed) to the DOM by applying a minimal set of changes to it.\n\t *\n\t * Renderer tries not to break the text composition (e.g. IME) and x-index of the selection,\n\t * so it does as little as it is needed to update the DOM.\n\t *\n\t * Renderer also handles {@link module:engine/view/filler fillers}. Especially, it checks if the inline filler is needed\n\t * at the selection position and adds or removes it. To prevent breaking text composition inline filler will not be\n\t * removed as long as the selection is in the text node which needed it at first.\n\t */\n\trender() {\n\t\tlet inlineFillerPosition;\n\t\tconst isInlineFillerRenderingPossible = env.isBlink && !env.isAndroid ? !this.isSelecting : true;\n\n\t\t// Refresh mappings.\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildrenMappings( element );\n\t\t}\n\n\t\t// Don't manipulate inline fillers while the selection is being made in (non-Android) Blink to prevent accidental\n\t\t// DOM selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\tif ( isInlineFillerRenderingPossible ) {\n\t\t\t// There was inline filler rendered in the DOM but it's not\n\t\t\t// at the selection position any more, so we can remove it\n\t\t\t// (cause even if it's needed, it must be placed in another location).\n\t\t\tif ( this._inlineFiller && !this._isSelectionInInlineFiller() ) {\n\t\t\t\tthis._removeInlineFiller();\n\t\t\t}\n\n\t\t\t// If we've got the filler, let's try to guess its position in the view.\n\t\t\tif ( this._inlineFiller ) {\n\t\t\t\tinlineFillerPosition = this._getInlineFillerPosition();\n\t\t\t}\n\t\t\t// Otherwise, if it's needed, create it at the selection position.\n\t\t\telse if ( this._needsInlineFillerAtSelection() ) {\n\t\t\t\tinlineFillerPosition = this.selection.getFirstPosition();\n\n\t\t\t\t// Do not use `markToSync` so it will be added even if the parent is already added.\n\t\t\t\tthis.markedChildren.add( inlineFillerPosition.parent );\n\t\t\t}\n\t\t}\n\t\t// Paranoid check: we make sure the inline filler has any parent so it can be mapped to view position\n\t\t// by DomConverter.\n\t\telse if ( this._inlineFiller && this._inlineFiller.parentNode ) {\n\t\t\t// While the user is making selection, preserve the inline filler at its original position.\n\t\t\tinlineFillerPosition = this.domConverter.domPositionToView( this._inlineFiller );\n\t\t}\n\n\t\tfor ( const element of this.markedAttributes ) {\n\t\t\tthis._updateAttrs( element );\n\t\t}\n\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildren( element, { inlineFillerPosition } );\n\t\t}\n\n\t\tfor ( const node of this.markedTexts ) {\n\t\t\tif ( !this.markedChildren.has( node.parent ) && this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis._updateText( node, { inlineFillerPosition } );\n\t\t\t}\n\t\t}\n\n\t\t// * Check whether the inline filler is required and where it really is in the DOM.\n\t\t// At this point in most cases it will be in the DOM, but there are exceptions.\n\t\t// For example, if the inline filler was deep in the created DOM structure, it will not be created.\n\t\t// Similarly, if it was removed at the beginning of this function and then neither text nor children were updated,\n\t\t// it will not be present. Fix those and similar scenarios.\n\t\t// * Don't manipulate inline fillers while the selection is being made in (non-Android) Blink to prevent accidental\n\t\t// DOM selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\tif ( isInlineFillerRenderingPossible ) {\n\t\t\tif ( inlineFillerPosition ) {\n\t\t\t\tconst fillerDomPosition = this.domConverter.viewPositionToDom( inlineFillerPosition );\n\t\t\t\tconst domDocument = fillerDomPosition.parent.ownerDocument;\n\n\t\t\t\tif ( !startsWithFiller( fillerDomPosition.parent ) ) {\n\t\t\t\t\t// Filler has not been created at filler position. Create it now.\n\t\t\t\t\tthis._inlineFiller = addInlineFiller( domDocument, fillerDomPosition.parent, fillerDomPosition.offset );\n\t\t\t\t} else {\n\t\t\t\t\t// Filler has been found, save it.\n\t\t\t\t\tthis._inlineFiller = fillerDomPosition.parent;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// There is no filler needed.\n\t\t\t\tthis._inlineFiller = null;\n\t\t\t}\n\t\t}\n\n\t\t// First focus the new editing host, then update the selection.\n\t\t// Otherwise, FF may throw an error (https://github.com/ckeditor/ckeditor5/issues/721).\n\t\tthis._updateFocus();\n\t\tthis._updateSelection();\n\n\t\tthis.markedTexts.clear();\n\t\tthis.markedAttributes.clear();\n\t\tthis.markedChildren.clear();\n\t}\n\n\t/**\n\t * Updates mappings of view element's children.\n\t *\n\t * Children that were replaced in the view structure by similar elements (same tag name) are treated as 'replaced'.\n\t * This means that their mappings can be updated so the new view elements are mapped to the existing DOM elements.\n\t * Thanks to that these elements do not need to be re-rendered completely.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose children mappings will be updated.\n\t */\n\t_updateChildrenMappings( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM and there is no need to process it.\n\t\t\treturn;\n\t\t}\n\n\t\t// Removing nodes from the DOM as we iterate can cause `actualDomChildren`\n\t\t// (which is a live-updating `NodeList`) to get out of sync with the\n\t\t// indices that we compute as we iterate over `actions`.\n\t\t// This would produce incorrect element mappings.\n\t\t//\n\t\t// Converting live list to an array to make the list static.\n\t\tconst actualDomChildren = Array.from(\n\t\t\tthis.domConverter.mapViewToDom( viewElement ).childNodes\n\t\t);\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { withChildren: false } )\n\t\t);\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\t\tconst actions = this._findReplaceActions( diff, actualDomChildren, expectedDomChildren );\n\n\t\tif ( actions.indexOf( 'replace' ) !== -1 ) {\n\t\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action === 'replace' ) {\n\t\t\t\t\tconst insertIndex = counter.equal + counter.insert;\n\t\t\t\t\tconst deleteIndex = counter.equal + counter.delete;\n\t\t\t\t\tconst viewChild = viewElement.getChild( insertIndex );\n\n\t\t\t\t\t// UIElement and RawElement are special cases. Their children are not stored in a view (#799)\n\t\t\t\t\t// so we cannot use them with replacing flow (since they use view children during rendering\n\t\t\t\t\t// which will always result in rendering empty elements).\n\t\t\t\t\tif ( viewChild && !( viewChild.is( 'uiElement' ) || viewChild.is( 'rawElement' ) ) ) {\n\t\t\t\t\t\tthis._updateElementMappings( viewChild, actualDomChildren[ deleteIndex ] );\n\t\t\t\t\t}\n\n\t\t\t\t\tremove( expectedDomChildren[ insertIndex ] );\n\t\t\t\t\tcounter.equal++;\n\t\t\t\t} else {\n\t\t\t\t\tcounter[ action ]++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Updates mappings of a given view element.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose mappings will be updated.\n\t * @param {Node} domElement The DOM element representing the given view element.\n\t */\n\t_updateElementMappings( viewElement, domElement ) {\n\t\t// Remap 'DomConverter' bindings.\n\t\tthis.domConverter.unbindDomElement( domElement );\n\t\tthis.domConverter.bindElements( domElement, viewElement );\n\n\t\t// View element may have children which needs to be updated, but are not marked, mark them to update.\n\t\tthis.markedChildren.add( viewElement );\n\n\t\t// Because we replace new view element mapping with the existing one, the corresponding DOM element\n\t\t// will not be rerendered. The new view element may have different attributes than the previous one.\n\t\t// Since its corresponding DOM element will not be rerendered, new attributes will not be added\n\t\t// to the DOM, so we need to mark it here to make sure its attributes gets updated. See #1427 for more\n\t\t// detailed case study.\n\t\t// Also there are cases where replaced element is removed from the view structure and then has\n\t\t// its attributes changed or removed. In such cases the element will not be present in `markedAttributes`\n\t\t// and also may be the same (`element.isSimilar()`) as the reused element not having its attributes updated.\n\t\t// To prevent such situations we always mark reused element to have its attributes rerenderd (#1560).\n\t\tthis.markedAttributes.add( viewElement );\n\t}\n\n\t/**\n\t * Gets the position of the inline filler based on the current selection.\n\t * Here, we assume that we know that the filler is needed and\n\t * {@link #_isSelectionInInlineFiller is at the selection position}, and, since it is needed,\n\t * it is somewhere at the selection position.\n\t *\n\t * Note: The filler position cannot be restored based on the filler's DOM text node, because\n\t * when this method is called (before rendering), the bindings will often be broken. View-to-DOM\n\t * bindings are only dependable after rendering.\n\t *\n\t * @private\n\t * @returns {module:engine/view/position~Position}\n\t */\n\t_getInlineFillerPosition() {\n\t\tconst firstPos = this.selection.getFirstPosition();\n\n\t\tif ( firstPos.parent.is( '$text' ) ) {\n\t\t\treturn ViewPosition._createBefore( this.selection.getFirstPosition().parent );\n\t\t} else {\n\t\t\treturn firstPos;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the selection has not left the inline filler's text node.\n\t * If it is `true`, it means that the filler had been added for a reason and the selection did not\n\t * leave the filler's text node. For example, the user can be in the middle of a composition so it should not be touched.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler and selection are in the same place.\n\t */\n\t_isSelectionInInlineFiller() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Note, we can't check if selection's position equals position of the\n\t\t// this._inlineFiller node, because of #663. We may not be able to calculate\n\t\t// the filler's position in the view at this stage.\n\t\t// Instead, we check it the other way – whether selection is anchored in\n\t\t// that text node or next to it.\n\n\t\t// Possible options are:\n\t\t// \"FILLER{}\"\n\t\t// \"FILLERadded-text{}\"\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst position = this.domConverter.viewPositionToDom( selectionPosition );\n\n\t\tif ( position && isText( position.parent ) && startsWithFiller( position.parent ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Removes the inline filler.\n\t *\n\t * @private\n\t */\n\t_removeInlineFiller() {\n\t\tconst domFillerNode = this._inlineFiller;\n\n\t\t// Something weird happened and the stored node doesn't contain the filler's text.\n\t\tif ( !startsWithFiller( domFillerNode ) ) {\n\t\t\t/**\n\t\t\t * The inline filler node was lost. Most likely, something overwrote the filler text node\n\t\t\t * in the DOM.\n\t\t\t *\n\t\t\t * @error view-renderer-filler-was-lost\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-renderer-filler-was-lost', this );\n\t\t}\n\n\t\tif ( isInlineFiller( domFillerNode ) ) {\n\t\t\tdomFillerNode.remove();\n\t\t} else {\n\t\t\tdomFillerNode.data = domFillerNode.data.substr( INLINE_FILLER_LENGTH );\n\t\t}\n\n\t\tthis._inlineFiller = null;\n\t}\n\n\t/**\n\t * Checks if the inline {@link module:engine/view/filler filler} should be added.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler should be added.\n\t */\n\t_needsInlineFillerAtSelection() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst selectionParent = selectionPosition.parent;\n\t\tconst selectionOffset = selectionPosition.offset;\n\n\t\t// If there is no DOM root we do not care about fillers.\n\t\tif ( !this.domConverter.mapViewToDom( selectionParent.root ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !( selectionParent.is( 'element' ) ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Prevent adding inline filler inside elements with contenteditable=false.\n\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/1170\n\t\tif ( !isEditable( selectionParent ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// We have block filler, we do not need inline one.\n\t\tif ( selectionOffset === selectionParent.getFillerOffset() ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst nodeBefore = selectionPosition.nodeBefore;\n\t\tconst nodeAfter = selectionPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof ViewText || nodeAfter instanceof ViewText ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks if text needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} viewText View text to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateText( viewText, options ) {\n\t\tconst domText = this.domConverter.findCorrespondingDomText( viewText );\n\t\tconst newDomText = this.domConverter.viewToDom( viewText, domText.ownerDocument );\n\n\t\tconst actualText = domText.data;\n\t\tlet expectedText = newDomText.data;\n\n\t\tconst filler = options.inlineFillerPosition;\n\n\t\tif ( filler && filler.parent == viewText.parent && filler.offset == viewText.index ) {\n\t\t\texpectedText = INLINE_FILLER + expectedText;\n\t\t}\n\n\t\tif ( actualText != expectedText ) {\n\t\t\tconst actions = fastDiff( actualText, expectedText );\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action.type === 'insert' ) {\n\t\t\t\t\tdomText.insertData( action.index, action.values.join( '' ) );\n\t\t\t\t} else { // 'delete'\n\t\t\t\t\tdomText.deleteData( action.index, action.howMany );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if attribute list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement The view element to update.\n\t */\n\t_updateAttrs( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that 'viewElement' is outdated as its mapping was updated\n\t\t\t// in 'this._updateChildrenMappings()'. There is no need to process it as new view element which\n\t\t\t// replaced old 'viewElement' mapping was also added to 'this.markedAttributes'\n\t\t\t// in 'this._updateChildrenMappings()' so it will be processed separately.\n\t\t\treturn;\n\t\t}\n\n\t\tconst domAttrKeys = Array.from( domElement.attributes ).map( attr => attr.name );\n\t\tconst viewAttrKeys = viewElement.getAttributeKeys();\n\n\t\t// Add or overwrite attributes.\n\t\tfor ( const key of viewAttrKeys ) {\n\t\t\tthis.domConverter.setDomElementAttribute( domElement, key, viewElement.getAttribute( key ), viewElement );\n\t\t}\n\n\t\t// Remove from DOM attributes which do not exists in the view.\n\t\tfor ( const key of domAttrKeys ) {\n\t\t\t// All other attributes not present in the DOM should be removed.\n\t\t\tif ( !viewElement.hasAttribute( key ) ) {\n\t\t\t\tthis.domConverter.removeDomElementAttribute( domElement, key );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if elements child list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement View element to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateChildren( viewElement, options ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM.\n\t\t\t// There is no need to process it. It will be processed when re-inserted.\n\t\t\treturn;\n\t\t}\n\n\t\tconst inlineFillerPosition = options.inlineFillerPosition;\n\t\tconst actualDomChildren = this.domConverter.mapViewToDom( viewElement ).childNodes;\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { bind: true } )\n\t\t);\n\n\t\t// Inline filler element has to be created as it is present in the DOM, but not in the view. It is required\n\t\t// during diffing so text nodes could be compared correctly and also during rendering to maintain\n\t\t// proper order and indexes while updating the DOM.\n\t\tif ( inlineFillerPosition && inlineFillerPosition.parent === viewElement ) {\n\t\t\taddInlineFiller( domElement.ownerDocument, expectedDomChildren, inlineFillerPosition.offset );\n\t\t}\n\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\n\t\tlet i = 0;\n\t\tconst nodesToUnbind = new Set();\n\n\t\t// Handle deletions first.\n\t\t// This is to prevent a situation where an element that already exists in `actualDomChildren` is inserted at a different\n\t\t// index in `actualDomChildren`. Since `actualDomChildren` is a `NodeList`, this works like move, not like an insert,\n\t\t// and it disrupts the whole algorithm. See https://github.com/ckeditor/ckeditor5/issues/6367.\n\t\t//\n\t\t// It doesn't matter in what order we remove or add nodes, as long as we remove and add correct nodes at correct indexes.\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'delete' ) {\n\t\t\t\tnodesToUnbind.add( actualDomChildren[ i ] );\n\t\t\t\tremove( actualDomChildren[ i ] );\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\ti = 0;\n\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\tinsertAt( domElement, i, expectedDomChildren[ i ] );\n\t\t\t\ti++;\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\t// Force updating text nodes inside elements which did not change and do not need to be re-rendered (#1125).\n\t\t\t\t// Do it here (not in the loop above) because only after insertions the `i` index is correct.\n\t\t\t\tthis._markDescendantTextToSync( this.domConverter.domToView( expectedDomChildren[ i ] ) );\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\t// Unbind removed nodes. When node does not have a parent it means that it was removed from DOM tree during\n\t\t// comparison with the expected DOM. We don't need to check child nodes, because if child node was reinserted,\n\t\t// it was moved to DOM tree out of the removed node.\n\t\tfor ( const node of nodesToUnbind ) {\n\t\t\tif ( !node.parentNode ) {\n\t\t\t\tthis.domConverter.unbindDomElement( node );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Shorthand for diffing two arrays or node lists of DOM nodes.\n\t *\n\t * @private\n\t * @param {Array.|NodeList} actualDomChildren Actual DOM children\n\t * @param {Array.|NodeList} expectedDomChildren Expected DOM children.\n\t * @returns {Array.} The list of actions based on the {@link module:utils/diff~diff} function.\n\t */\n\t_diffNodeLists( actualDomChildren, expectedDomChildren ) {\n\t\tactualDomChildren = filterOutFakeSelectionContainer( actualDomChildren, this._fakeSelectionContainer );\n\n\t\treturn diff( actualDomChildren, expectedDomChildren, sameNodes.bind( null, this.domConverter ) );\n\t}\n\n\t/**\n\t * Finds DOM nodes that were replaced with the similar nodes (same tag name) in the view. All nodes are compared\n\t * within one `insert`/`delete` action group, for example:\n\t *\n\t * \t\tActual DOM:\t\t

FooBarBazBax

\n\t * \t\tExpected DOM:\t

Bar123Baz456

\n\t * \t\tInput actions:\t[ insert, insert, delete, delete, equal, insert, delete ]\n\t * \t\tOutput actions:\t[ insert, replace, delete, equal, replace ]\n\t *\n\t * @private\n\t * @param {Array.} actions Actions array which is a result of the {@link module:utils/diff~diff} function.\n\t * @param {Array.|NodeList} actualDom Actual DOM children\n\t * @param {Array.} expectedDom Expected DOM children.\n\t * @returns {Array.} Actions array modified with the `replace` actions.\n\t */\n\t_findReplaceActions( actions, actualDom, expectedDom ) {\n\t\t// If there is no both 'insert' and 'delete' actions, no need to check for replaced elements.\n\t\tif ( actions.indexOf( 'insert' ) === -1 || actions.indexOf( 'delete' ) === -1 ) {\n\t\t\treturn actions;\n\t\t}\n\n\t\tlet newActions = [];\n\t\tlet actualSlice = [];\n\t\tlet expectedSlice = [];\n\n\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\tfor ( const action of actions ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\texpectedSlice.push( expectedDom[ counter.equal + counter.insert ] );\n\t\t\t} else if ( action === 'delete' ) {\n\t\t\t\tactualSlice.push( actualDom[ counter.equal + counter.delete ] );\n\t\t\t} else { // equal\n\t\t\t\tnewActions = newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t\t\t\tnewActions.push( 'equal' );\n\t\t\t\t// Reset stored elements on 'equal'.\n\t\t\t\tactualSlice = [];\n\t\t\t\texpectedSlice = [];\n\t\t\t}\n\t\t\tcounter[ action ]++;\n\t\t}\n\n\t\treturn newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t}\n\n\t/**\n\t * Marks text nodes to be synchronized.\n\t *\n\t * If a text node is passed, it will be marked. If an element is passed, all descendant text nodes inside it will be marked.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewNode View node to sync.\n\t */\n\t_markDescendantTextToSync( viewNode ) {\n\t\tif ( !viewNode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( viewNode.is( '$text' ) ) {\n\t\t\tthis.markedTexts.add( viewNode );\n\t\t} else if ( viewNode.is( 'element' ) ) {\n\t\t\tfor ( const child of viewNode.getChildren() ) {\n\t\t\t\tthis._markDescendantTextToSync( child );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the selection needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateSelection() {\n\t\t// Block updating DOM selection in (non-Android) Blink while the user is selecting to prevent accidental selection collapsing.\n\t\t// Note: Structural changes in DOM must trigger selection rendering, though. Nodes the selection was anchored\n\t\t// to, may disappear in DOM which would break the selection (e.g. in real-time collaboration scenarios).\n\t\t// https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723\n\t\tif ( env.isBlink && !env.isAndroid && this.isSelecting && !this.markedChildren.size ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there is no selection - remove DOM and fake selections.\n\t\tif ( this.selection.rangeCount === 0 ) {\n\t\t\tthis._removeDomSelection();\n\t\t\tthis._removeFakeSelection();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst domRoot = this.domConverter.mapViewToDom( this.selection.editableElement );\n\n\t\t// Do nothing if there is no focus, or there is no DOM element corresponding to selection's editable element.\n\t\tif ( !this.isFocused || !domRoot ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Render selection.\n\t\tif ( this.selection.isFake ) {\n\t\t\tthis._updateFakeSelection( domRoot );\n\t\t} else {\n\t\t\tthis._removeFakeSelection();\n\t\t\tthis._updateDomSelection( domRoot );\n\t\t}\n\t}\n\n\t/**\n\t * Updates the fake selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the fake selection container should be added.\n\t */\n\t_updateFakeSelection( domRoot ) {\n\t\tconst domDocument = domRoot.ownerDocument;\n\n\t\tif ( !this._fakeSelectionContainer ) {\n\t\t\tthis._fakeSelectionContainer = createFakeSelectionContainer( domDocument );\n\t\t}\n\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\t// Bind fake selection container with the current selection *position*.\n\t\tthis.domConverter.bindFakeSelection( container, this.selection );\n\n\t\tif ( !this._fakeSelectionNeedsUpdate( domRoot ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !container.parentElement || container.parentElement != domRoot ) {\n\t\t\tdomRoot.appendChild( container );\n\t\t}\n\n\t\tcontainer.textContent = this.selection.fakeSelectionLabel || '\\u00A0';\n\n\t\tconst domSelection = domDocument.getSelection();\n\t\tconst domRange = domDocument.createRange();\n\n\t\tdomSelection.removeAllRanges();\n\t\tdomRange.selectNodeContents( container );\n\t\tdomSelection.addRange( domRange );\n\t}\n\n\t/**\n\t * Updates the DOM selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the DOM selection should be rendered.\n\t */\n\t_updateDomSelection( domRoot ) {\n\t\tconst domSelection = domRoot.ownerDocument.defaultView.getSelection();\n\n\t\t// Let's check whether DOM selection needs updating at all.\n\t\tif ( !this._domSelectionNeedsUpdate( domSelection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Multi-range selection is not available in most browsers, and, at least in Chrome, trying to\n\t\t// set such selection, that is not continuous, throws an error. Because of that, we will just use anchor\n\t\t// and focus of view selection.\n\t\t// Since we are not supporting multi-range selection, we also do not need to check if proper editable is\n\t\t// selected. If there is any editable selected, it is okay (editable is taken from selection anchor).\n\t\tconst anchor = this.domConverter.viewPositionToDom( this.selection.anchor );\n\t\tconst focus = this.domConverter.viewPositionToDom( this.selection.focus );\n\n\t\tdomSelection.collapse( anchor.parent, anchor.offset );\n\t\tdomSelection.extend( focus.parent, focus.offset );\n\n\t\t// Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n\t\tif ( env.isGecko ) {\n\t\t\tfixGeckoSelectionAfterBr( focus, domSelection );\n\t\t}\n\t}\n\n\t/**\n\t * Checks whether a given DOM selection needs to be updated.\n\t *\n\t * @private\n\t * @param {Selection} domSelection The DOM selection to check.\n\t * @returns {Boolean}\n\t */\n\t_domSelectionNeedsUpdate( domSelection ) {\n\t\tif ( !this.domConverter.isDomSelectionCorrect( domSelection ) ) {\n\t\t\t// Current DOM selection is in incorrect position. We need to update it.\n\t\t\treturn true;\n\t\t}\n\n\t\tconst oldViewSelection = domSelection && this.domConverter.domSelectionToView( domSelection );\n\n\t\tif ( oldViewSelection && this.selection.isEqual( oldViewSelection ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If selection is not collapsed, it does not need to be updated if it is similar.\n\t\tif ( !this.selection.isCollapsed && this.selection.isSimilar( oldViewSelection ) ) {\n\t\t\t// Selection did not changed and is correct, do not update.\n\t\t\treturn false;\n\t\t}\n\n\t\t// Selections are not similar.\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks whether the fake selection needs to be updated.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where a new fake selection container should be added.\n\t * @returns {Boolean}\n\t */\n\t_fakeSelectionNeedsUpdate( domRoot ) {\n\t\tconst container = this._fakeSelectionContainer;\n\t\tconst domSelection = domRoot.ownerDocument.getSelection();\n\n\t\t// Fake selection needs to be updated if there's no fake selection container, or the container currently sits\n\t\t// in a different root.\n\t\tif ( !container || container.parentElement !== domRoot ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Make sure that the selection actually is within the fake selection.\n\t\tif ( domSelection.anchorNode !== container && !container.contains( domSelection.anchorNode ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn container.textContent !== this.selection.fakeSelectionLabel;\n\t}\n\n\t/**\n\t * Removes the DOM selection.\n\t *\n\t * @private\n\t */\n\t_removeDomSelection() {\n\t\tfor ( const doc of this.domDocuments ) {\n\t\t\tconst domSelection = doc.getSelection();\n\n\t\t\tif ( domSelection.rangeCount ) {\n\t\t\t\tconst activeDomElement = doc.activeElement;\n\t\t\t\tconst viewElement = this.domConverter.mapDomToView( activeDomElement );\n\n\t\t\t\tif ( activeDomElement && viewElement ) {\n\t\t\t\t\tdoc.getSelection().removeAllRanges();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Removes the fake selection.\n\t *\n\t * @private\n\t */\n\t_removeFakeSelection() {\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\tif ( container ) {\n\t\t\tcontainer.remove();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if focus needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateFocus() {\n\t\tif ( this.isFocused ) {\n\t\t\tconst editable = this.selection.editableElement;\n\n\t\t\tif ( editable ) {\n\t\t\t\tthis.domConverter.focus( editable );\n\t\t\t}\n\t\t}\n\t}\n}\n\nmix( Renderer, ObservableMixin );\n\n// Checks if provided element is editable.\n//\n// @private\n// @param {module:engine/view/element~Element} element\n// @returns {Boolean}\nfunction isEditable( element ) {\n\tif ( element.getAttribute( 'contenteditable' ) == 'false' ) {\n\t\treturn false;\n\t}\n\n\tconst parent = element.findAncestor( element => element.hasAttribute( 'contenteditable' ) );\n\n\treturn !parent || parent.getAttribute( 'contenteditable' ) == 'true';\n}\n\n// Adds inline filler at a given position.\n//\n// The position can be given as an array of DOM nodes and an offset in that array,\n// or a DOM parent element and an offset in that element.\n//\n// @private\n// @param {Document} domDocument\n// @param {Element|Array.} domParentOrArray\n// @param {Number} offset\n// @returns {Text} The DOM text node that contains an inline filler.\nfunction addInlineFiller( domDocument, domParentOrArray, offset ) {\n\tconst childNodes = domParentOrArray instanceof Array ? domParentOrArray : domParentOrArray.childNodes;\n\tconst nodeAfterFiller = childNodes[ offset ];\n\n\tif ( isText( nodeAfterFiller ) ) {\n\t\tnodeAfterFiller.data = INLINE_FILLER + nodeAfterFiller.data;\n\n\t\treturn nodeAfterFiller;\n\t} else {\n\t\tconst fillerNode = domDocument.createTextNode( INLINE_FILLER );\n\n\t\tif ( Array.isArray( domParentOrArray ) ) {\n\t\t\tchildNodes.splice( offset, 0, fillerNode );\n\t\t} else {\n\t\t\tinsertAt( domParentOrArray, offset, fillerNode );\n\t\t}\n\n\t\treturn fillerNode;\n\t}\n}\n\n// Whether two DOM nodes should be considered as similar.\n// Nodes are considered similar if they have the same tag name.\n//\n// @private\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction areSimilar( node1, node2 ) {\n\treturn isNode( node1 ) && isNode( node2 ) &&\n\t\t!isText( node1 ) && !isText( node2 ) &&\n\t\t!isComment( node1 ) && !isComment( node2 ) &&\n\t\tnode1.tagName.toLowerCase() === node2.tagName.toLowerCase();\n}\n\n// Whether two dom nodes should be considered as the same.\n// Two nodes which are considered the same are:\n//\n//\t\t* Text nodes with the same text.\n//\t\t* Element nodes represented by the same object.\n//\t\t* Two block filler elements.\n//\n// @private\n// @param {String} blockFillerMode Block filler mode, see {@link module:engine/view/domconverter~DomConverter#blockFillerMode}.\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction sameNodes( domConverter, actualDomChild, expectedDomChild ) {\n\t// Elements.\n\tif ( actualDomChild === expectedDomChild ) {\n\t\treturn true;\n\t}\n\t// Texts.\n\telse if ( isText( actualDomChild ) && isText( expectedDomChild ) ) {\n\t\treturn actualDomChild.data === expectedDomChild.data;\n\t}\n\t// Block fillers.\n\telse if ( domConverter.isBlockFiller( actualDomChild ) &&\n\t\tdomConverter.isBlockFiller( expectedDomChild ) ) {\n\t\treturn true;\n\t}\n\n\t// Not matching types.\n\treturn false;\n}\n\n// The following is a Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n// When the native DOM selection is at the end of the block and preceded by
e.g.\n//\n//\t\t

foo
[]

\n//\n// which happens a lot when using the soft line break, the browser fails to (visually) move the\n// caret to the new line. A quick fix is as simple as force–refreshing the selection with the same range.\nfunction fixGeckoSelectionAfterBr( focus, domSelection ) {\n\tconst parent = focus.parent;\n\n\t// This fix works only when the focus point is at the very end of an element.\n\t// There is no point in running it in cases unrelated to the browser bug.\n\tif ( parent.nodeType != Node.ELEMENT_NODE || focus.offset != parent.childNodes.length - 1 ) {\n\t\treturn;\n\t}\n\n\tconst childAtOffset = parent.childNodes[ focus.offset ];\n\n\t// To stay on the safe side, the fix being as specific as possible, it targets only the\n\t// selection which is at the very end of the element and preceded by
.\n\tif ( childAtOffset && childAtOffset.tagName == 'BR' ) {\n\t\tdomSelection.addRange( domSelection.getRangeAt( 0 ) );\n\t}\n}\n\nfunction filterOutFakeSelectionContainer( domChildList, fakeSelectionContainer ) {\n\tconst childList = Array.from( domChildList );\n\n\tif ( childList.length == 0 || !fakeSelectionContainer ) {\n\t\treturn childList;\n\t}\n\n\tconst last = childList[ childList.length - 1 ];\n\n\tif ( last == fakeSelectionContainer ) {\n\t\tchildList.pop();\n\t}\n\n\treturn childList;\n}\n\n// Creates a fake selection container for a given document.\n//\n// @private\n// @param {Document} domDocument\n// @returns {HTMLElement}\nfunction createFakeSelectionContainer( domDocument ) {\n\tconst container = domDocument.createElement( 'div' );\n\n\tcontainer.className = 'ck-fake-selection-container';\n\n\tObject.assign( container.style, {\n\t\tposition: 'fixed',\n\t\ttop: 0,\n\t\tleft: '-9999px',\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/752.\n\t\twidth: '42px'\n\t} );\n\n\t// Fill it with a text node so we can update it later.\n\tcontainer.textContent = '\\u00A0';\n\n\treturn container;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window, document */\n\n/**\n * @module utils/dom/global\n */\n\n/**\n * A helper (module) giving an access to the global DOM objects such as `window` and\n * `document`. Accessing these objects using this helper allows easy and bulletproof\n * testing, i.e. stubbing native properties:\n *\n *\t\timport global from 'ckeditor5/utils/dom/global.js';\n *\n *\t\t// This stub will work for any code using global module.\n *\t\ttestUtils.sinon.stub( global, 'window', {\n *\t\t\tinnerWidth: 10000\n *\t\t} );\n *\n *\t\tconsole.log( global.window.innerWidth );\n */\nexport default { window, document };\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/indexof\n */\n\n/**\n * Returns index of the node in the parent element.\n *\n * @param {Node} node Node which index is tested.\n * @returns {Number} Index of the node in the parent element. Returns 0 if node has no parent.\n */\nexport default function indexOf( node ) {\n\tlet index = 0;\n\n\twhile ( node.previousSibling ) {\n\t\tnode = node.previousSibling;\n\t\tindex++;\n\t}\n\n\treturn index;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module utils/dom/getancestors\n */\n\n/**\n * Returns all ancestors of given DOM node, starting from the top-most (root). Includes the given node itself. If the\n * node is a part of `DocumentFragment` that `DocumentFragment` will be returned. In contrary, if the node is\n * appended to a `Document`, that `Document` will not be returned (algorithms operating on DOM tree care for `Document#documentElement`\n * at most, which will be returned).\n *\n * @param {Node} node DOM node.\n * @returns {Array.} Array of given `node` parents.\n */\nexport default function getAncestors( node ) {\n\tconst nodes = [];\n\n\t// We are interested in `Node`s `DocumentFragment`s only.\n\twhile ( node && node.nodeType != Node.DOCUMENT_NODE ) {\n\t\tnodes.unshift( node );\n\t\tnode = node.parentNode;\n\t}\n\n\treturn nodes;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/domconverter\n */\n\n/* globals document, Node, NodeFilter, DOMParser, Text */\n\nimport ViewText from './text';\nimport ViewElement from './element';\nimport ViewUIElement from './uielement';\nimport ViewPosition from './position';\nimport ViewRange from './range';\nimport ViewSelection from './selection';\nimport ViewDocumentFragment from './documentfragment';\nimport ViewTreeWalker from './treewalker';\nimport Matcher from './matcher';\nimport {\n\tBR_FILLER, INLINE_FILLER_LENGTH, NBSP_FILLER, MARKED_NBSP_FILLER,\n\tgetDataWithoutFiller, isInlineFiller, startsWithFiller\n} from './filler';\n\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { logWarning } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport indexOf from '@ckeditor/ckeditor5-utils/src/dom/indexof';\nimport getAncestors from '@ckeditor/ckeditor5-utils/src/dom/getancestors';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isComment from '@ckeditor/ckeditor5-utils/src/dom/iscomment';\n\nconst BR_FILLER_REF = BR_FILLER( document ); // eslint-disable-line new-cap\nconst NBSP_FILLER_REF = NBSP_FILLER( document ); // eslint-disable-line new-cap\nconst MARKED_NBSP_FILLER_REF = MARKED_NBSP_FILLER( document ); // eslint-disable-line new-cap\nconst UNSAFE_ATTRIBUTE_NAME_PREFIX = 'data-ck-unsafe-attribute-';\nconst UNSAFE_ELEMENT_REPLACEMENT_ATTRIBUTE = 'data-ck-unsafe-element';\nconst UNSAFE_ELEMENTS = [ 'script', 'style' ];\n\n/**\n * `DomConverter` is a set of tools to do transformations between DOM nodes and view nodes. It also handles\n * {@link module:engine/view/domconverter~DomConverter#bindElements bindings} between these nodes.\n *\n * An instance of the DOM converter is available under\n * {@link module:engine/view/view~View#domConverter `editor.editing.view.domConverter`}.\n *\n * The DOM converter does not check which nodes should be rendered (use {@link module:engine/view/renderer~Renderer}), does not keep the\n * state of a tree nor keeps the synchronization between the tree view and the DOM tree (use {@link module:engine/view/document~Document}).\n *\n * The DOM converter keeps DOM elements to view element bindings, so when the converter gets destroyed, the bindings are lost.\n * Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.\n */\nexport default class DomConverter {\n\t/**\n\t * Creates a DOM converter.\n\t *\n\t * @param {module:engine/view/document~Document} document The view document instance.\n\t * @param {Object} options An object with configuration options.\n\t * @param {module:engine/view/filler~BlockFillerMode} [options.blockFillerMode] The type of the block filler to use.\n\t * Default value depends on the options.renderingMode:\n\t * 'nbsp' when options.renderingMode == 'data',\n\t * 'br' when options.renderingMode == 'editing'.\n\t * @param {'data'|'editing'} [options.renderingMode='editing'] Whether to leave the View-to-DOM conversion result unchanged\n\t * or improve editing experience by filtering out interactive data.\n\t */\n\tconstructor( document, options = {} ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\n\t\t/**\n\t\t * Whether to leave the View-to-DOM conversion result unchanged or improve editing experience by filtering out interactive data.\n\t\t *\n\t\t * @member {'data'|'editing'} module:engine/view/domconverter~DomConverter#renderingMode\n\t\t */\n\t\tthis.renderingMode = options.renderingMode || 'editing';\n\n\t\t/**\n\t\t * The mode of a block filler used by the DOM converter.\n\t\t *\n\t\t * @member {'br'|'nbsp'|'markedNbsp'} module:engine/view/domconverter~DomConverter#blockFillerMode\n\t\t */\n\t\tthis.blockFillerMode = options.blockFillerMode || ( this.renderingMode === 'editing' ? 'br' : 'nbsp' );\n\n\t\t/**\n\t\t * Elements which are considered pre-formatted elements.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#preElements\n\t\t */\n\t\tthis.preElements = [ 'pre' ];\n\n\t\t/**\n\t\t * Elements which are considered block elements (and hence should be filled with a\n\t\t * {@link #isBlockFiller block filler}).\n\t\t *\n\t\t * Whether an element is considered a block element also affects handling of trailing whitespaces.\n\t\t *\n\t\t * You can extend this array if you introduce support for block elements which are not yet recognized here.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#blockElements\n\t\t */\n\t\tthis.blockElements = [\n\t\t\t'address', 'article', 'aside', 'blockquote', 'caption', 'center', 'dd', 'details', 'dir', 'div',\n\t\t\t'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header',\n\t\t\t'hgroup', 'legend', 'li', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'summary', 'table', 'tbody',\n\t\t\t'td', 'tfoot', 'th', 'thead', 'tr', 'ul'\n\t\t];\n\n\t\t/**\n\t\t * A list of elements that exist inline (in text) but their inner structure cannot be edited because\n\t\t * of the way they are rendered by the browser. They are mostly HTML form elements but there are other\n\t\t * elements such as `` or `' +\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'spotify',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(artist\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(album\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(track\\/\\w+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'youtube',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/watch\\?v=([\\w-]+)/,\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/v\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtube\\.com\\/embed\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtu\\.be\\/([\\w-]+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'vimeo',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^vimeo\\.com\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/[^/]+\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/album\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/channels\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/groups\\/[^/]+\\/videos\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/ondemand\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^player\\.vimeo\\.com\\/video\\/(\\d+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'instagram',\n\t\t\t\t\turl: /^instagram\\.com\\/p\\/(\\w+)/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'twitter',\n\t\t\t\t\turl: /^twitter\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'googleMaps',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^google\\.com\\/maps/,\n\t\t\t\t\t\t/^goo\\.gl\\/maps/,\n\t\t\t\t\t\t/^maps\\.google\\.com/,\n\t\t\t\t\t\t/^maps\\.app\\.goo\\.gl/\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'flickr',\n\t\t\t\t\turl: /^flickr\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'facebook',\n\t\t\t\t\turl: /^facebook\\.com/\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\t/**\n\t\t * The media registry managing the media providers in the editor.\n\t\t *\n\t\t * @member {module:media-embed/mediaregistry~MediaRegistry} #registry\n\t\t */\n\t\tthis.registry = new MediaRegistry( editor.locale, editor.config.get( 'mediaEmbed' ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tconst renderMediaPreview = editor.config.get( 'mediaEmbed.previewsInData' );\n\t\tconst elementName = editor.config.get( 'mediaEmbed.elementName' );\n\n\t\tconst registry = this.registry;\n\n\t\teditor.commands.add( 'mediaEmbed', new MediaEmbedCommand( editor ) );\n\n\t\t// Configure the schema.\n\t\tschema.register( 'media', {\n\t\t\tinheritAllFrom: '$blockObject',\n\t\t\tallowAttributes: [ 'url' ]\n\t\t} );\n\n\t\t// Model -> Data\n\t\tconversion.for( 'dataDowncast' ).elementToStructure( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\n\t\t\t\treturn createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\telementName,\n\t\t\t\t\trenderMediaPreview: url && renderMediaPreview\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> Data (url -> data-oembed-url)\n\t\tconversion.for( 'dataDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\telementName,\n\t\t\t\trenderMediaPreview\n\t\t\t} ) );\n\n\t\t// Model -> View (element)\n\t\tconversion.for( 'editingDowncast' ).elementToStructure( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\t\t\t\tconst figure = createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\telementName,\n\t\t\t\t\trenderForEditingView: true\n\t\t\t\t} );\n\n\t\t\t\treturn toMediaWidget( figure, writer, t( 'media widget' ) );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> View (url -> data-oembed-url)\n\t\tconversion.for( 'editingDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\telementName,\n\t\t\t\trenderForEditingView: true\n\t\t\t} ) );\n\n\t\t// View -> Model (data-oembed-url -> url)\n\t\tconversion.for( 'upcast' )\n\t\t\t// Upcast semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: element => [ 'oembed', elementName ].includes( element.name ) && element.getAttribute( 'url' ) ?\n\t\t\t\t\t{ name: true } :\n\t\t\t\t\tnull,\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t// Upcast non-semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t'data-oembed-url': true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'data-oembed-url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t// Consume `
` elements, that were left after upcast.\n\t\t\t.add( dispatcher => {\n\t\t\t\tdispatcher.on( 'element:figure', converter );\n\n\t\t\t\tfunction converter( evt, data, conversionApi ) {\n\t\t\t\t\tif ( !conversionApi.consumable.consume( data.viewItem, { name: true, classes: 'media' } ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst { modelRange, modelCursor } = conversionApi.convertChildren( data.viewItem, data.modelCursor );\n\n\t\t\t\t\tdata.modelRange = modelRange;\n\t\t\t\t\tdata.modelCursor = modelCursor;\n\n\t\t\t\t\tconst modelElement = first( modelRange.getItems() );\n\n\t\t\t\t\tif ( !modelElement ) {\n\t\t\t\t\t\t// Revert consumed figure so other features can convert it.\n\t\t\t\t\t\tconversionApi.consumable.revert( data.viewItem, { name: true, classes: 'media' } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/automediaembed\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { LiveRange, LivePosition } from 'ckeditor5/src/engine';\nimport { Clipboard } from 'ckeditor5/src/clipboard';\nimport { Delete } from 'ckeditor5/src/typing';\nimport { Undo } from 'ckeditor5/src/undo';\nimport { global } from 'ckeditor5/src/utils';\n\nimport MediaEmbedEditing from './mediaembedediting';\nimport { insertMedia } from './utils';\n\nconst URL_REGEXP = /^(?:http(s)?:\\/\\/)?[\\w-]+\\.[\\w-.~:/?#[\\]@!$&'()*+,;=%]+$/;\n\n/**\n * The auto-media embed plugin. It recognizes media links in the pasted content and embeds\n * them shortly after they are injected into the document.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class AutoMediaEmbed extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ Clipboard, Delete, Undo ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'AutoMediaEmbed';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\tsuper( editor );\n\n\t\t/**\n\t\t * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n\t\t * cleaning of the timeout.\n\t\t *\n\t\t * @private\n\t\t * @member {Number} #_timeoutId\n\t\t */\n\t\tthis._timeoutId = null;\n\n\t\t/**\n\t\t * The position where the `` element will be inserted after the timeout,\n\t\t * determined each time the new content is pasted into the document.\n\t\t *\n\t\t * @private\n\t\t * @member {module:engine/model/liveposition~LivePosition} #_positionToInsert\n\t\t */\n\t\tthis._positionToInsert = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst modelDocument = editor.model.document;\n\n\t\t// We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n\t\t// After pasting, the content between those positions will be checked for a URL that could be transformed\n\t\t// into media.\n\t\tthis.listenTo( editor.plugins.get( 'ClipboardPipeline' ), 'inputTransformation', () => {\n\t\t\tconst firstRange = modelDocument.selection.getFirstRange();\n\n\t\t\tconst leftLivePosition = LivePosition.fromPosition( firstRange.start );\n\t\t\tleftLivePosition.stickiness = 'toPrevious';\n\n\t\t\tconst rightLivePosition = LivePosition.fromPosition( firstRange.end );\n\t\t\trightLivePosition.stickiness = 'toNext';\n\n\t\t\tmodelDocument.once( 'change:data', () => {\n\t\t\t\tthis._embedMediaBetweenPositions( leftLivePosition, rightLivePosition );\n\n\t\t\t\tleftLivePosition.detach();\n\t\t\t\trightLivePosition.detach();\n\t\t\t}, { priority: 'high' } );\n\t\t} );\n\n\t\teditor.commands.get( 'undo' ).on( 'execute', () => {\n\t\t\tif ( this._timeoutId ) {\n\t\t\t\tglobal.window.clearTimeout( this._timeoutId );\n\t\t\t\tthis._positionToInsert.detach();\n\n\t\t\t\tthis._timeoutId = null;\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Analyzes the part of the document between provided positions in search for a URL representing media.\n\t * When the URL is found, it is automatically converted into media.\n\t *\n\t * @protected\n\t * @param {module:engine/model/liveposition~LivePosition} leftPosition Left position of the selection.\n\t * @param {module:engine/model/liveposition~LivePosition} rightPosition Right position of the selection.\n\t */\n\t_embedMediaBetweenPositions( leftPosition, rightPosition ) {\n\t\tconst editor = this.editor;\n\t\tconst mediaRegistry = editor.plugins.get( MediaEmbedEditing ).registry;\n\t\t// TODO: Use marker instead of LiveRange & LivePositions.\n\t\tconst urlRange = new LiveRange( leftPosition, rightPosition );\n\t\tconst walker = urlRange.getWalker( { ignoreElementEnd: true } );\n\n\t\tlet url = '';\n\n\t\tfor ( const node of walker ) {\n\t\t\tif ( node.item.is( '$textProxy' ) ) {\n\t\t\t\turl += node.item.data;\n\t\t\t}\n\t\t}\n\n\t\turl = url.trim();\n\n\t\t// If the URL does not match to universal URL regexp, let's skip that.\n\t\tif ( !url.match( URL_REGEXP ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// If the URL represents a media, let's use it.\n\t\tif ( !mediaRegistry.hasMedia( url ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaEmbedCommand = editor.commands.get( 'mediaEmbed' );\n\n\t\t// Do not anything if media element cannot be inserted at the current position (#47).\n\t\tif ( !mediaEmbedCommand.isEnabled ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Position won't be available in the `setTimeout` function so let's clone it.\n\t\tthis._positionToInsert = LivePosition.fromPosition( leftPosition );\n\n\t\t// This action mustn't be executed if undo was called between pasting and auto-embedding.\n\t\tthis._timeoutId = global.window.setTimeout( () => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tthis._timeoutId = null;\n\n\t\t\t\twriter.remove( urlRange );\n\t\t\t\turlRange.detach();\n\n\t\t\t\tlet insertionPosition;\n\n\t\t\t\t// Check if position where the media element should be inserted is still valid.\n\t\t\t\t// Otherwise leave it as undefined to use document.selection - default behavior of model.insertContent().\n\t\t\t\tif ( this._positionToInsert.root.rootName !== '$graveyard' ) {\n\t\t\t\t\tinsertionPosition = this._positionToInsert;\n\t\t\t\t}\n\n\t\t\t\tinsertMedia( editor.model, url, insertionPosition, false );\n\n\t\t\t\tthis._positionToInsert.detach();\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t} );\n\n\t\t\teditor.plugins.get( 'Delete' ).requestUndoOnBackspace();\n\t\t}, 100 );\n\t}\n}\n","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaform.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaform.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/ui/mediaformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tinjectCssTransitionDisabler,\n\tsubmitHandler\n} from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport { icons } from 'ckeditor5/src/core';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/mediaform.css';\n\n/**\n * The media form view controller class.\n *\n * See {@link module:media-embed/ui/mediaformview~MediaFormView}.\n *\n * @extends module:ui/view~View\n */\nexport default class MediaFormView extends View {\n\t/**\n\t * @param {Array.} validators Form validators used by {@link #isValid}.\n\t * @param {module:utils/locale~Locale} [locale] The localization services instance.\n\t */\n\tconstructor( validators, locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\t/**\n\t\t * Tracks information about the DOM focus in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/focustracker~FocusTracker}\n\t\t */\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\t/**\n\t\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/keystrokehandler~KeystrokeHandler}\n\t\t */\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\t/**\n\t\t * The value of the URL input.\n\t\t *\n\t\t * @member {String} #mediaURLInputValue\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'mediaURLInputValue', '' );\n\n\t\t/**\n\t\t * The URL input view.\n\t\t *\n\t\t * @member {module:ui/labeledfield/labeledfieldview~LabeledFieldView}\n\t\t */\n\t\tthis.urlInputView = this._createUrlInput();\n\n\t\t/**\n\t\t * The Save button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.saveButtonView = this._createButton( t( 'Save' ), icons.check, 'ck-button-save' );\n\t\tthis.saveButtonView.type = 'submit';\n\t\tthis.saveButtonView.bind( 'isEnabled' ).to( this, 'mediaURLInputValue', value => !!value );\n\n\t\t/**\n\t\t * The Cancel button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.cancelButtonView = this._createButton( t( 'Cancel' ), icons.cancel, 'ck-button-cancel', 'cancel' );\n\n\t\t/**\n\t\t * A collection of views that can be focused in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis._focusables = new ViewCollection();\n\n\t\t/**\n\t\t * Helps cycling over {@link #_focusables} in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/focuscycler~FocusCycler}\n\t\t */\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * An array of form validators used by {@link #isValid}.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {Array.}\n\t\t */\n\t\tthis._validators = validators;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-media-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.urlInputView,\n\t\t\t\tthis.saveButtonView,\n\t\t\t\tthis.cancelButtonView\n\t\t\t]\n\t\t} );\n\n\t\tinjectCssTransitionDisabler( this );\n\n\t\t/**\n\t\t * The default info text for the {@link #urlInputView}.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoDefault\n\t\t */\n\n\t\t/**\n\t\t * The info text with an additional tip for the {@link #urlInputView},\n\t\t * displayed when the input has some value.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoTip\n\t\t */\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trender() {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.urlInputView,\n\t\t\tthis.saveButtonView,\n\t\t\tthis.cancelButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element );\n\n\t\tconst stopPropagation = data => data.stopPropagation();\n\n\t\t// Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n\t\t// keystroke handler would take over the key management in the URL input. We need to prevent\n\t\t// this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\n\t\t// Intercept the `selectstart` event, which is blocked by default because of the default behavior\n\t\t// of the DropdownView#panelView.\n\t\t// TODO: blocking `selectstart` in the #panelView should be configurable per–drop–down instance.\n\t\tthis.listenTo( this.urlInputView.element, 'selectstart', ( evt, domEvt ) => {\n\t\t\tdomEvt.stopPropagation();\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tfocus() {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #urlInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t *\n\t * @type {String}\n\t */\n\tget url() {\n\t\treturn this.urlInputView.fieldView.element.value.trim();\n\t}\n\n\tset url( url ) {\n\t\tthis.urlInputView.fieldView.element.value = url.trim();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t *\n\t * @returns {Boolean}\n\t */\n\tisValid() {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.urlInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #urlInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tresetFormStatus() {\n\t\tthis.urlInputView.errorText = null;\n\t\tthis.urlInputView.infoText = this._urlInputViewInfoDefault;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @private\n\t * @returns {module:ui/labeledfield/labeledfieldview~LabeledFieldView} Labeled input view instance.\n\t */\n\t_createUrlInput() {\n\t\tconst t = this.locale.t;\n\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\t\tconst inputField = labeledInput.fieldView;\n\n\t\tthis._urlInputViewInfoDefault = t( 'Paste the media URL in the input.' );\n\t\tthis._urlInputViewInfoTip = t( 'Tip: Paste the URL into the content to embed faster.' );\n\n\t\tlabeledInput.label = t( 'Media URL' );\n\t\tlabeledInput.infoText = this._urlInputViewInfoDefault;\n\n\t\tinputField.on( 'input', () => {\n\t\t\t// Display the tip text only when there is some value. Otherwise fall back to the default info text.\n\t\t\tlabeledInput.infoText = inputField.element.value ? this._urlInputViewInfoTip : this._urlInputViewInfoDefault;\n\t\t\tthis.mediaURLInputValue = inputField.element.value.trim();\n\t\t} );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @private\n\t * @param {String} label The button label.\n\t * @param {String} icon The button icon.\n\t * @param {String} className The additional button CSS class name.\n\t * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n\t * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n\t */\n\t_createButton( label, icon, className, eventName ) {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\tif ( eventName ) {\n\t\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\t\t}\n\n\t\treturn button;\n\t}\n}\n\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * e.g. click on {@link #saveButtonView}.\n *\n * @event submit\n */\n\n/**\n * Fired when the form view is canceled, e.g. by a click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembedui\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createDropdown } from 'ckeditor5/src/ui';\n\nimport MediaFormView from './ui/mediaformview';\nimport MediaEmbedEditing from './mediaembedediting';\nimport mediaIcon from '../theme/icons/media.svg';\n\n/**\n * The media embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class MediaEmbedUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ MediaEmbedEditing ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'MediaEmbedUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( 'mediaEmbed' );\n\t\tconst registry = editor.plugins.get( MediaEmbedEditing ).registry;\n\n\t\teditor.ui.componentFactory.add( 'mediaEmbed', locale => {\n\t\t\tconst dropdown = createDropdown( locale );\n\n\t\t\tconst mediaForm = new MediaFormView( getFormValidators( editor.t, registry ), editor.locale );\n\n\t\t\tthis._setUpDropdown( dropdown, mediaForm, command, editor );\n\t\t\tthis._setUpForm( dropdown, mediaForm, command );\n\n\t\t\treturn dropdown;\n\t\t} );\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpDropdown( dropdown, form, command ) {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst button = dropdown.buttonView;\n\n\t\tdropdown.bind( 'isEnabled' ).to( command );\n\t\tdropdown.panelView.children.add( form );\n\n\t\tbutton.set( {\n\t\t\tlabel: t( 'Insert media' ),\n\t\t\ticon: mediaIcon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\t// Note: Use the low priority to make sure the following listener starts working after the\n\t\t// default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n\t\t// invisible form/input cannot be focused/selected.\n\t\tbutton.on( 'open', () => {\n\t\t\tform.disableCssTransitions();\n\n\t\t\t// Make sure that each time the panel shows up, the URL field remains in sync with the value of\n\t\t\t// the command. If the user typed in the input, then canceled (`urlInputView#fieldView#value` stays\n\t\t\t// unaltered) and re-opened it without changing the value of the media command (e.g. because they\n\t\t\t// didn't change the selection), they would see the old value instead of the actual value of the\n\t\t\t// command.\n\t\t\tform.url = command.value || '';\n\t\t\tform.urlInputView.fieldView.select();\n\t\t\tform.focus();\n\t\t\tform.enableCssTransitions();\n\t\t}, { priority: 'low' } );\n\n\t\tdropdown.on( 'submit', () => {\n\t\t\tif ( form.isValid() ) {\n\t\t\t\teditor.execute( 'mediaEmbed', form.url );\n\t\t\t\tcloseUI();\n\t\t\t}\n\t\t} );\n\n\t\tdropdown.on( 'change:isOpen', () => form.resetFormStatus() );\n\t\tdropdown.on( 'cancel', () => closeUI() );\n\n\t\tfunction closeUI() {\n\t\t\teditor.editing.view.focus();\n\t\t\tdropdown.isOpen = false;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpForm( dropdown, form, command ) {\n\t\tform.delegate( 'submit', 'cancel' ).to( dropdown );\n\t\tform.urlInputView.bind( 'value' ).to( command, 'value' );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tform.urlInputView.bind( 'isReadOnly' ).to( command, 'isEnabled', value => !value );\n\t}\n}\n\nfunction getFormValidators( t, registry ) {\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.url.length ) {\n\t\t\t\treturn t( 'The URL must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( !registry.hasMedia( form.url ) ) {\n\t\t\t\treturn t( 'This media URL is not supported.' );\n\t\t\t}\n\t\t}\n\t];\n}\n","export default \"\";","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaembed.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaembed.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/list\n */\n\nimport { Matcher, UpcastWriter } from 'ckeditor5/src/engine';\n\n/**\n * Transforms Word specific list-like elements to the semantic HTML lists.\n *\n * Lists in Word are represented by block elements with special attributes like:\n *\n *\t\t

...

// Paragraph based list.\n *\t\t

...

// Heading 1 based list.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment The view structure to be transformed.\n * @param {String} stylesString Styles from which list-like elements styling will be extracted.\n */\nexport function transformListItemLikeElementsIntoLists( documentFragment, stylesString ) {\n\tif ( !documentFragment.childCount ) {\n\t\treturn;\n\t}\n\n\tconst writer = new UpcastWriter( documentFragment.document );\n\tconst itemLikeElements = findAllItemLikeElements( documentFragment, writer );\n\n\tif ( !itemLikeElements.length ) {\n\t\treturn;\n\t}\n\n\tlet currentList = null;\n\tlet currentIndentation = 1;\n\n\titemLikeElements.forEach( ( itemLikeElement, i ) => {\n\t\tconst isDifferentList = isNewListNeeded( itemLikeElements[ i - 1 ], itemLikeElement );\n\t\tconst previousItemLikeElement = isDifferentList ? null : itemLikeElements[ i - 1 ];\n\t\tconst indentationDifference = getIndentationDifference( previousItemLikeElement, itemLikeElement );\n\n\t\tif ( isDifferentList ) {\n\t\t\tcurrentList = null;\n\t\t\tcurrentIndentation = 1;\n\t\t}\n\n\t\tif ( !currentList || indentationDifference !== 0 ) {\n\t\t\tconst listStyle = detectListStyle( itemLikeElement, stylesString );\n\n\t\t\tif ( !currentList ) {\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, itemLikeElement.element, writer );\n\t\t\t} else if ( itemLikeElement.indent > currentIndentation ) {\n\t\t\t\tconst lastListItem = currentList.getChild( currentList.childCount - 1 );\n\t\t\t\tconst lastListItemChild = lastListItem.getChild( lastListItem.childCount - 1 );\n\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, lastListItemChild, writer );\n\t\t\t\tcurrentIndentation += 1;\n\t\t\t} else if ( itemLikeElement.indent < currentIndentation ) {\n\t\t\t\tconst differentIndentation = currentIndentation - itemLikeElement.indent;\n\n\t\t\t\tcurrentList = findParentListAtLevel( currentList, differentIndentation );\n\t\t\t\tcurrentIndentation = parseInt( itemLikeElement.indent );\n\t\t\t}\n\n\t\t\tif ( itemLikeElement.indent <= currentIndentation ) {\n\t\t\t\tif ( !currentList.is( 'element', listStyle.type ) ) {\n\t\t\t\t\tcurrentList = writer.rename( listStyle.type, currentList );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst listItem = transformElementIntoListItem( itemLikeElement.element, writer );\n\n\t\twriter.appendChild( listItem, currentList );\n\t} );\n}\n\n/**\n * Removes paragraph wrapping content inside a list item.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport function unwrapParagraphInListItem( documentFragment, writer ) {\n\tfor ( const value of writer.createRangeIn( documentFragment ) ) {\n\t\tconst element = value.item;\n\n\t\tif ( element.is( 'element', 'li' ) ) {\n\t\t\t// Google Docs allows for single paragraph inside LI.\n\t\t\tconst firstChild = element.getChild( 0 );\n\n\t\t\tif ( firstChild && firstChild.is( 'element', 'p' ) ) {\n\t\t\t\twriter.unwrapElement( firstChild );\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Finds all list-like elements in a given document fragment.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// in which to look for list-like nodes.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.} Array of found list-like items. Each item is an object containing:\n//\n//\t\t* {module:engine/src/view/element~Element} element List-like element.\n//\t\t* {Number} id List item id parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} order List item creation order parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} indent List item indentation level parsed from `mso-list` style (see `getListItemData()` function).\nfunction findAllItemLikeElements( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\t// Matcher for finding list-like elements.\n\tconst itemLikeElementsMatcher = new Matcher( {\n\t\tname: /^p|h\\d+$/,\n\t\tstyles: {\n\t\t\t'mso-list': /.*/\n\t\t}\n\t} );\n\n\tconst itemLikeElements = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && itemLikeElementsMatcher.match( value.item ) ) {\n\t\t\tconst itemData = getListItemData( value.item );\n\n\t\t\titemLikeElements.push( {\n\t\t\t\telement: value.item,\n\t\t\t\tid: itemData.id,\n\t\t\t\torder: itemData.order,\n\t\t\t\tindent: itemData.indent\n\t\t\t} );\n\t\t}\n\t}\n\n\treturn itemLikeElements;\n}\n\n// Extracts list item style from the provided CSS.\n//\n// List item style is extracted from the CSS stylesheet. Each list with its specific style attribute\n// value (`mso-list:l1 level1 lfo1`) has its dedicated properties in a CSS stylesheet defined with a selector like:\n//\n// \t\t@list l1:level1 { ... }\n//\n// It contains `mso-level-number-format` property which defines list numbering/bullet style. If this property\n// is not defined it means default `decimal` numbering.\n//\n// Here CSS string representation is used as `mso-level-number-format` property is an invalid CSS property\n// and will be removed during CSS parsing.\n//\n// @param {Object} listLikeItem List-like item for which list style will be searched for. Usually\n// a result of `findAllItemLikeElements()` function.\n// @param {String} stylesString CSS stylesheet.\n// @returns {Object} result\n// @returns {String} result.type List type, could be `ul` or `ol`.\n// @returns {Number} result.startIndex List start index, valid only for ordered lists.\n// @returns {String|null} result.style List style, for example: `decimal`, `lower-roman`, etc. It is extracted\n// directly from Word stylesheet and adjusted to represent proper values for the CSS `list-style-type` property.\n// If it cannot be adjusted, the `null` value is returned.\nfunction detectListStyle( listLikeItem, stylesString ) {\n\tconst listStyleRegexp = new RegExp( `@list l${ listLikeItem.id }:level${ listLikeItem.indent }\\\\s*({[^}]*)`, 'gi' );\n\tconst listStyleTypeRegex = /mso-level-number-format:([^;]{0,100});/gi;\n\tconst listStartIndexRegex = /mso-level-start-at:\\s{0,100}([0-9]{0,10})\\s{0,100};/gi;\n\n\tconst listStyleMatch = listStyleRegexp.exec( stylesString );\n\n\tlet listStyleType = 'decimal'; // Decimal is default one.\n\tlet type = 'ol'; //
    is default list.\n\tlet startIndex = null;\n\n\tif ( listStyleMatch && listStyleMatch[ 1 ] ) {\n\t\tconst listStyleTypeMatch = listStyleTypeRegex.exec( listStyleMatch[ 1 ] );\n\n\t\tif ( listStyleTypeMatch && listStyleTypeMatch[ 1 ] ) {\n\t\t\tlistStyleType = listStyleTypeMatch[ 1 ].trim();\n\t\t\ttype = listStyleType !== 'bullet' && listStyleType !== 'image' ? 'ol' : 'ul';\n\t\t}\n\n\t\t// Styles for the numbered lists are always defined in the Word CSS stylesheet.\n\t\t// Unordered lists MAY contain a value for the Word CSS definition `mso-level-text` but sometimes\n\t\t// this tag is missing. And because of that, we cannot depend on that. We need to predict the list style value\n\t\t// based on the list style marker element.\n\t\tif ( listStyleType === 'bullet' ) {\n\t\t\tconst bulletedStyle = findBulletedListStyle( listLikeItem.element );\n\n\t\t\tif ( bulletedStyle ) {\n\t\t\t\tlistStyleType = bulletedStyle;\n\t\t\t}\n\t\t} else {\n\t\t\tconst listStartIndexMatch = listStartIndexRegex.exec( listStyleMatch[ 1 ] );\n\n\t\t\tif ( listStartIndexMatch && listStartIndexMatch[ 1 ] ) {\n\t\t\t\tstartIndex = parseInt( listStartIndexMatch[ 1 ] );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\ttype,\n\t\tstartIndex,\n\t\tstyle: mapListStyleDefinition( listStyleType )\n\t};\n}\n\n// Tries to extract the `list-style-type` value based on the marker element for bulleted list.\n//\n// @param {module:engine/view/element~Element} element\n// @returns {String|null}\nfunction findBulletedListStyle( element ) {\n\tconst listMarkerElement = findListMarkerNode( element );\n\n\tif ( !listMarkerElement ) {\n\t\treturn null;\n\t}\n\n\tconst listMarker = listMarkerElement._data;\n\n\tif ( listMarker === 'o' ) {\n\t\treturn 'circle';\n\t} else if ( listMarker === '·' ) {\n\t\treturn 'disc';\n\t}\n\t// Word returns '§' instead of '■' for the square list style.\n\telse if ( listMarker === '§' ) {\n\t\treturn 'square';\n\t}\n\n\treturn null;\n}\n\n// Tries to find a text node that represents the marker element (list-style-type).\n//\n// @param {module:engine/view/element~Element} element\n// @returns {module:engine/view/text~Text|null}\nfunction findListMarkerNode( element ) {\n\t// If the first child is a text node, it is the data for the element.\n\t// The list-style marker is not present here.\n\tif ( element.getChild( 0 ).is( '$text' ) ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childNode of element.getChildren() ) {\n\t\t// The list-style marker will be inside the `` element. Let's ignore all non-span elements.\n\t\t// It may happen that the `` element is added as the first child. Most probably, it's an anchor element.\n\t\tif ( !childNode.is( 'element', 'span' ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst textNodeOrElement = childNode.getChild( 0 );\n\n\t\t// If already found the marker element, use it.\n\t\tif ( textNodeOrElement.is( '$text' ) ) {\n\t\t\treturn textNodeOrElement;\n\t\t}\n\n\t\treturn textNodeOrElement.getChild( 0 );\n\t}\n}\n\n// Parses the `list-style-type` value extracted directly from the Word CSS stylesheet and returns proper CSS definition.\n//\n// @param {String|null} value\n// @returns {String|null}\nfunction mapListStyleDefinition( value ) {\n\tif ( value.startsWith( 'arabic-leading-zero' ) ) {\n\t\treturn 'decimal-leading-zero';\n\t}\n\n\tswitch ( value ) {\n\t\tcase 'alpha-upper':\n\t\t\treturn 'upper-alpha';\n\t\tcase 'alpha-lower':\n\t\t\treturn 'lower-alpha';\n\t\tcase 'roman-upper':\n\t\t\treturn 'upper-roman';\n\t\tcase 'roman-lower':\n\t\t\treturn 'lower-roman';\n\t\tcase 'circle':\n\t\tcase 'disc':\n\t\tcase 'square':\n\t\t\treturn value;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n// Creates an empty list of a given type and inserts it after a specified element.\n//\n// @param {Object} listStyle List style object which determines the type of newly created list.\n// Usually a result of `detectListStyle()` function.\n// @param {module:engine/view/element~Element} element Element after which list is inserted.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} Newly created list element.\n\nfunction insertNewEmptyList( listStyle, element, writer ) {\n\tconst parent = element.parent;\n\tconst list = writer.createElement( listStyle.type );\n\tconst position = parent.getChildIndex( element ) + 1;\n\n\twriter.insertChild( position, list, parent );\n\n\t// We do not support modifying the marker for a particular list item.\n\t// Set the value for the `list-style-type` property directly to the list container.\n\tif ( listStyle.style ) {\n\t\twriter.setStyle( 'list-style-type', listStyle.style, list );\n\t}\n\n\tif ( listStyle.startIndex && listStyle.startIndex > 1 ) {\n\t\twriter.setAttribute( 'start', listStyle.startIndex, list );\n\t}\n\n\treturn list;\n}\n\n// Transforms a given element into a semantic list item. As the function operates on a provided\n// {module:engine/src/view/element~Element element} it will modify the view structure to which this element belongs.\n//\n// @param {module:engine/view/element~Element} element Element which will be transformed into a list item.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} New element to which the given one was transformed. It is\n// inserted in place of the old element (the reference to the old element is lost due to renaming).\nfunction transformElementIntoListItem( element, writer ) {\n\tremoveBulletElement( element, writer );\n\n\treturn writer.rename( 'li', element );\n}\n\n// Extracts list item information from Word specific list-like element style:\n//\n//\t\t`style=\"mso-list:l1 level1 lfo1\"`\n//\n// where:\n//\n//\t\t* `l1` is a list id (however it does not mean this is a continuous list - see #43),\n//\t\t* `level1` is a list item indentation level,\n//\t\t* `lfo1` is a list insertion order in a document.\n//\n// @param {module:engine/view/element~Element} element Element from which style data is extracted.\n// @returns {Object} result\n// @returns {Number} result.id Parent list id.\n// @returns {Number} result.order List item creation order.\n// @returns {Number} result.indent List item indentation level.\nfunction getListItemData( element ) {\n\tconst data = {};\n\tconst listStyle = element.getStyle( 'mso-list' );\n\n\tif ( listStyle ) {\n\t\tconst idMatch = listStyle.match( /(^|\\s{1,100})l(\\d+)/i );\n\t\tconst orderMatch = listStyle.match( /\\s{0,100}lfo(\\d+)/i );\n\t\tconst indentMatch = listStyle.match( /\\s{0,100}level(\\d+)/i );\n\n\t\tif ( idMatch && orderMatch && indentMatch ) {\n\t\t\tdata.id = idMatch[ 2 ];\n\t\t\tdata.order = orderMatch[ 1 ];\n\t\t\tdata.indent = indentMatch[ 1 ];\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// Removes span with a numbering/bullet from a given element.\n//\n// @param {module:engine/view/element~Element} element\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeBulletElement( element, writer ) {\n\t// Matcher for finding `span` elements holding lists numbering/bullets.\n\tconst bulletMatcher = new Matcher( {\n\t\tname: 'span',\n\t\tstyles: {\n\t\t\t'mso-list': 'Ignore'\n\t\t}\n\t} );\n\n\tconst range = writer.createRangeIn( element );\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && bulletMatcher.match( value.item ) ) {\n\t\t\twriter.remove( value.item );\n\t\t}\n\t}\n}\n\n// Whether the previous and current items belong to the same list. It is determined based on `item.id`\n// (extracted from `mso-list` style, see #getListItemData) and a previous sibling of the current item.\n//\n// However, it's quite easy to change the `id` attribute for nested lists in Word. It will break the list feature while pasting.\n// Let's check also the `indent` attribute. If the difference between those two elements is equal to 1, we can assume that\n// the `currentItem` is a beginning of the nested list because lists in CKEditor 5 always start with the `indent=0` attribute.\n// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Boolean}\nfunction isNewListNeeded( previousItem, currentItem ) {\n\tif ( !previousItem ) {\n\t\treturn true;\n\t}\n\n\tif ( previousItem.id !== currentItem.id ) {\n\t\t// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n\t\t//\n\t\t// * List item 1.\n\t\t// - Nested list item 1.\n\t\tif ( currentItem.indent - previousItem.indent === 1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tconst previousSibling = currentItem.element.previousSibling;\n\n\tif ( !previousSibling ) {\n\t\treturn true;\n\t}\n\n\t// Even with the same id the list does not have to be continuous (#43).\n\treturn !isList( previousSibling );\n}\n\nfunction isList( element ) {\n\treturn element.is( 'element', 'ol' ) || element.is( 'element', 'ul' );\n}\n\n// Calculates the indentation difference between two given list items (based on the indent attribute\n// extracted from the `mso-list` style, see #getListItemData).\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Number}\nfunction getIndentationDifference( previousItem, currentItem ) {\n\treturn previousItem ? currentItem.indent - previousItem.indent : currentItem.indent - 1;\n}\n\n// Finds the parent list element (ul/ol) of a given list element with indentation level lower by a given value.\n//\n// @param {module:engine/view/element~Element} listElement List element from which to start looking for a parent list.\n// @param {Number} indentationDifference Indentation difference between lists.\n// @returns {module:engine/view/element~Element} Found list element with indentation level lower by a given value.\nfunction findParentListAtLevel( listElement, indentationDifference ) {\n\tconst ancestors = listElement.getAncestors( { parentFirst: true } );\n\n\tlet parentList = null;\n\tlet levelChange = 0;\n\n\tfor ( const ancestor of ancestors ) {\n\t\tif ( ancestor.name === 'ul' || ancestor.name === 'ol' ) {\n\t\t\tlevelChange++;\n\t\t}\n\n\t\tif ( levelChange === indentationDifference ) {\n\t\t\tparentList = ancestor;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parentList;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/googledocsnormalizer\n */\n\nimport { UpcastWriter } from 'ckeditor5/src/engine';\n\nimport removeBoldWrapper from '../filters/removeboldwrapper';\nimport { unwrapParagraphInListItem } from '../filters/list';\n\nconst googleDocsMatch = /id=(\"|')docs-internal-guid-[-0-9a-f]+(\"|')/i;\n\n/**\n * Normalizer for the content pasted from Google Docs.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\nexport default class GoogleDocsNormalizer {\n\t/**\n\t * Creates a new `GoogleDocsNormalizer` instance.\n\t *\n\t * @param {module:engine/view/document~Document} document View document.\n\t */\n\tconstructor( document ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tisActive( htmlString ) {\n\t\treturn googleDocsMatch.test( htmlString );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\texecute( data ) {\n\t\tconst writer = new UpcastWriter( this.document );\n\t\tconst { body: documentFragment } = data._parsedData;\n\n\t\tremoveBoldWrapper( documentFragment, writer );\n\t\tunwrapParagraphInListItem( documentFragment, writer );\n\n\t\tdata.content = documentFragment;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/removeboldwrapper\n */\n\n/**\n * Removes `` tag wrapper added by Google Docs to a copied content.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment element `data.content` obtained from clipboard\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport default function removeBoldWrapper( documentFragment, writer ) {\n\tfor ( const child of documentFragment.getChildren() ) {\n\t\tif ( child.is( 'element', 'b' ) && child.getStyle( 'font-weight' ) === 'normal' ) {\n\t\t\tconst childIndex = documentFragment.getChildIndex( child );\n\n\t\t\twriter.remove( child );\n\t\t\twriter.insertChild( childIndex, child.getChildren(), documentFragment );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/image\n */\n\n/* globals btoa */\n\nimport { Matcher, UpcastWriter } from 'ckeditor5/src/engine';\n\n/**\n * Replaces source attribute of all `` elements representing regular\n * images (not the Word shapes) with inlined base64 image representation extracted from RTF or Blob data.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment on which transform images.\n * @param {String} rtfData The RTF data from which images representation will be used.\n */\nexport function replaceImagesSourceWithBase64( documentFragment, rtfData ) {\n\tif ( !documentFragment.childCount ) {\n\t\treturn;\n\t}\n\n\tconst upcastWriter = new UpcastWriter();\n\tconst shapesIds = findAllShapesIds( documentFragment, upcastWriter );\n\n\tremoveAllImgElementsRepresentingShapes( shapesIds, documentFragment, upcastWriter );\n\tremoveAllShapeElements( documentFragment, upcastWriter );\n\n\tconst images = findAllImageElementsWithLocalSource( documentFragment, upcastWriter );\n\n\tif ( images.length ) {\n\t\treplaceImagesFileSourceWithInlineRepresentation( images, extractImageDataFromRtf( rtfData ), upcastWriter );\n\t}\n}\n\n/**\n * Converts given HEX string to base64 representation.\n *\n * @protected\n * @param {String} hexString The HEX string to be converted.\n * @returns {String} Base64 representation of a given HEX string.\n */\nexport function _convertHexToBase64( hexString ) {\n\treturn btoa( hexString.match( /\\w{2}/g ).map( char => {\n\t\treturn String.fromCharCode( parseInt( char, 16 ) );\n\t} ).join( '' ) );\n}\n\n// Finds all shapes (`...`) ids. Shapes can represent images (canvas)\n// or Word shapes (which does not have RTF or Blob representation).\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// from which to extract shape ids.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.} Array of shape ids.\nfunction findAllShapesIds( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst shapeElementsMatcher = new Matcher( {\n\t\tname: /v:(.+)/\n\t} );\n\n\tconst shapesIds = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type != 'elementStart' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst el = value.item;\n\t\tconst prevSiblingName = el.previousSibling && el.previousSibling.name || null;\n\n\t\t// If shape element have 'o:gfxdata' attribute and is not directly before `` element it means it represent Word shape.\n\t\tif ( shapeElementsMatcher.match( el ) && el.getAttribute( 'o:gfxdata' ) && prevSiblingName !== 'v:shapetype' ) {\n\t\t\tshapesIds.push( value.item.getAttribute( 'id' ) );\n\t\t}\n\t}\n\n\treturn shapesIds;\n}\n\n// Removes all `` elements which represents Word shapes and not regular images.\n//\n// @param {Array.} shapesIds Shape ids which will be checked against `` elements.\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove `` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeAllImgElementsRepresentingShapes( shapesIds, documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst imageElementsMatcher = new Matcher( {\n\t\tname: 'img'\n\t} );\n\n\tconst imgs = [];\n\n\tfor ( const value of range ) {\n\t\tif ( imageElementsMatcher.match( value.item ) ) {\n\t\t\tconst el = value.item;\n\t\t\tconst shapes = el.getAttribute( 'v:shapes' ) ? el.getAttribute( 'v:shapes' ).split( ' ' ) : [];\n\n\t\t\tif ( shapes.length && shapes.every( shape => shapesIds.indexOf( shape ) > -1 ) ) {\n\t\t\t\timgs.push( el );\n\t\t\t// Shapes may also have empty source while content is paste in some browsers (Safari).\n\t\t\t} else if ( !el.getAttribute( 'src' ) ) {\n\t\t\t\timgs.push( el );\n\t\t\t}\n\t\t}\n\t}\n\n\tfor ( const img of imgs ) {\n\t\twriter.remove( img );\n\t}\n}\n\n// Removes all shape elements (`...`) so they do not pollute the output structure.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove shape elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeAllShapeElements( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst shapeElementsMatcher = new Matcher( {\n\t\tname: /v:(.+)/\n\t} );\n\n\tconst shapes = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type == 'elementStart' && shapeElementsMatcher.match( value.item ) ) {\n\t\t\tshapes.push( value.item );\n\t\t}\n\t}\n\n\tfor ( const shape of shapes ) {\n\t\twriter.remove( shape );\n\t}\n}\n\n// Finds all `` elements in a given document fragment which have source pointing to local `file://` resource.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment in which to look for `` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Object} result All found images grouped by source type.\n// @returns {Array.} result.file Array of found `` elements with `file://` source.\n// @returns {Array.} result.blob Array of found `` elements with `blob:` source.\nfunction findAllImageElementsWithLocalSource( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst imageElementsMatcher = new Matcher( {\n\t\tname: 'img'\n\t} );\n\n\tconst imgs = [];\n\n\tfor ( const value of range ) {\n\t\tif ( imageElementsMatcher.match( value.item ) ) {\n\t\t\tif ( value.item.getAttribute( 'src' ).startsWith( 'file://' ) ) {\n\t\t\t\timgs.push( value.item );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn imgs;\n}\n\n// Extracts all images HEX representations from a given RTF data.\n//\n// @param {String} rtfData The RTF data from which to extract images HEX representation.\n// @returns {Array.} Array of found HEX representations. Each array item is an object containing:\n//\n// \t\t* {String} hex Image representation in HEX format.\n// \t\t* {string} type Type of image, `image/png` or `image/jpeg`.\nfunction extractImageDataFromRtf( rtfData ) {\n\tif ( !rtfData ) {\n\t\treturn [];\n\t}\n\n\tconst regexPictureHeader = /{\\\\pict[\\s\\S]+?\\\\bliptag-?\\d+(\\\\blipupi-?\\d+)?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)?[\\s}]*?/;\n\tconst regexPicture = new RegExp( '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}', 'g' );\n\tconst images = rtfData.match( regexPicture );\n\tconst result = [];\n\n\tif ( images ) {\n\t\tfor ( const image of images ) {\n\t\t\tlet imageType = false;\n\n\t\t\tif ( image.includes( '\\\\pngblip' ) ) {\n\t\t\t\timageType = 'image/png';\n\t\t\t} else if ( image.includes( '\\\\jpegblip' ) ) {\n\t\t\t\timageType = 'image/jpeg';\n\t\t\t}\n\n\t\t\tif ( imageType ) {\n\t\t\t\tresult.push( {\n\t\t\t\t\thex: image.replace( regexPictureHeader, '' ).replace( /[^\\da-fA-F]/g, '' ),\n\t\t\t\t\ttype: imageType\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n// Replaces `src` attribute value of all given images with the corresponding base64 image representation.\n//\n// @param {Array.} imageElements Array of image elements which will have its source replaced.\n// @param {Array.} imagesHexSources Array of images hex sources (usually the result of `extractImageDataFromRtf()` function).\n// The array should be the same length as `imageElements` parameter.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction replaceImagesFileSourceWithInlineRepresentation( imageElements, imagesHexSources, writer ) {\n\t// Assume there is an equal amount of image elements and images HEX sources so they can be matched accordingly based on existing order.\n\tif ( imageElements.length === imagesHexSources.length ) {\n\t\tfor ( let i = 0; i < imageElements.length; i++ ) {\n\t\t\tconst newSrc = `data:${ imagesHexSources[ i ].type };base64,${ _convertHexToBase64( imagesHexSources[ i ].hex ) }`;\n\t\t\twriter.setAttribute( 'src', newSrc, imageElements[ i ] );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/mswordnormalizer\n */\n\nimport { transformListItemLikeElementsIntoLists } from '../filters/list';\nimport { replaceImagesSourceWithBase64 } from '../filters/image';\n\nconst msWordMatch1 = //i;\nconst msWordMatch2 = /xmlns:o=\"urn:schemas-microsoft-com/i;\n\n/**\n * Normalizer for the content pasted from Microsoft Word.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\nexport default class MSWordNormalizer {\n\t/**\n\t * Creates a new `MSWordNormalizer` instance.\n\t *\n\t * @param {module:engine/view/document~Document} document View document.\n\t */\n\tconstructor( document ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tisActive( htmlString ) {\n\t\treturn msWordMatch1.test( htmlString ) || msWordMatch2.test( htmlString );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\texecute( data ) {\n\t\tconst { body: documentFragment, stylesString } = data._parsedData;\n\n\t\ttransformListItemLikeElementsIntoLists( documentFragment, stylesString );\n\t\treplaceImagesSourceWithBase64( documentFragment, data.dataTransfer.getData( 'text/rtf' ) );\n\n\t\tdata.content = documentFragment;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/space\n */\n\n/**\n * Replaces last space preceding elements closing tag with ` `. Such operation prevents spaces from being removed\n * during further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n * This method also takes into account Word specific `` empty tags.\n * Additionally multiline sequences of spaces and new lines between tags are removed (see #39 and #40).\n *\n * @param {String} htmlString HTML string in which spacing should be normalized.\n * @returns {String} Input HTML with spaces normalized.\n */\nexport function normalizeSpacing( htmlString ) {\n\t// Run normalizeSafariSpaceSpans() two times to cover nested spans.\n\treturn normalizeSafariSpaceSpans( normalizeSafariSpaceSpans( htmlString ) )\n\t\t// Remove all \\r\\n from \"spacerun spans\" so the last replace line doesn't strip all whitespaces.\n\t\t.replace( /([^\\S\\r\\n]*?)[\\r\\n]+([^\\S\\r\\n]*<\\/span>)/g, '$1$2' )\n\t\t.replace( /<\\/span>/g, '' )\n\t\t.replace( / <\\//g, '\\u00A0<\\/o:p>/g, '\\u00A0' )\n\t\t// Remove block filler from empty paragraph. Safari uses \\u00A0 instead of  .\n\t\t.replace( /( |\\u00A0)<\\/o:p>/g, '' )\n\t\t// Remove all whitespaces when they contain any \\r or \\n.\n\t\t.replace( />([^\\S\\r\\n]*[\\r\\n]\\s*)<' );\n}\n\n/**\n * Normalizes spacing in special Word `spacerun spans` (`\\s+`) by replacing\n * all spaces with `  ` pairs. This prevents spaces from being removed during further DOM/View processing\n * (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n *\n * @param {Document} htmlDocument Native `Document` object in which spacing should be normalized.\n */\nexport function normalizeSpacerunSpans( htmlDocument ) {\n\thtmlDocument.querySelectorAll( 'span[style*=spacerun]' ).forEach( el => {\n\t\tconst innerTextLength = el.innerText.length || 0;\n\n\t\tel.innerHTML = Array( innerTextLength + 1 ).join( '\\u00A0 ' ).substr( 0, innerTextLength );\n\t} );\n}\n\n// Normalizes specific spacing generated by Safari when content pasted from Word (` `)\n// by replacing all spaces sequences longer than 1 space with `  ` pairs. This prevents spaces from being removed during\n// further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n//\n// This function is similar to {@link module:clipboard/utils/normalizeclipboarddata normalizeClipboardData util} but uses\n// regular spaces /   sequence for replacement.\n//\n// @param {String} htmlString HTML string in which spacing should be normalized\n// @returns {String} Input HTML with spaces normalized.\nfunction normalizeSafariSpaceSpans( htmlString ) {\n\treturn htmlString.replace( /(\\s+)<\\/span>/g, ( fullMatch, spaces ) => {\n\t\treturn spaces.length === 1 ? ' ' : Array( spaces.length + 1 ).join( '\\u00A0 ' ).substr( 0, spaces.length );\n\t} );\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/parse\n */\n\n/* globals DOMParser */\n\nimport { DomConverter, ViewDocument } from 'ckeditor5/src/engine';\n\nimport { normalizeSpacing, normalizeSpacerunSpans } from './space';\n\n/**\n * Parses provided HTML extracting contents of `` and ` - - - - -
    - @if (Route::has('login')) - - @endif - -
    -
    - - - - - -
    - -
    -
    -
    - - -
    -
    - Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end. -
    -
    -
    - -
    -
    - - -
    - -
    -
    - Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process. -
    -
    -
    - -
    -
    - - -
    - -
    -
    - Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials. -
    -
    -
    - -
    -
    - -
    Vibrant Ecosystem
    -
    - -
    -
    - Laravel's robust library of first-party tools and libraries, such as Forge, Vapor, Nova, and Envoyer help you take your projects to the next level. Pair them with powerful open source libraries like Cashier, Dusk, Echo, Horizon, Sanctum, Telescope, and more. -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - Shop - - - - - - - - Sponsor - -
    -
    - -
    - Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }}) -
    -
    -
    -
    - - diff --git a/routes/api.php b/routes/api.php deleted file mode 100644 index eb6fa48..0000000 --- a/routes/api.php +++ /dev/null @@ -1,19 +0,0 @@ -get('/user', function (Request $request) { - return $request->user(); -}); diff --git a/routes/channels.php b/routes/channels.php deleted file mode 100644 index 5d451e1..0000000 --- a/routes/channels.php +++ /dev/null @@ -1,18 +0,0 @@ -id === (int) $id; -}); diff --git a/routes/console.php b/routes/console.php index e05f4c9..b3d9bbc 100644 --- a/routes/console.php +++ b/routes/console.php @@ -1,19 +1 @@ comment(Inspiring::quote()); -})->purpose('Display an inspiring quote'); diff --git a/routes/web-bo.php b/routes/web-bo.php new file mode 100644 index 0000000..3b473b5 --- /dev/null +++ b/routes/web-bo.php @@ -0,0 +1,19 @@ +name('bo.')->group(function () { + Route::namespace('\App\Http\Controllers\Bo')->group(function () { + Auth::routes([ + 'reset' => false, + 'verify' => false, + 'register' => false + ]); + }); + + Route::middleware('auth:backend')->group(function () { + Route::get('/', [HomeController::class, 'dashboard'])->name('dashboard'); + }); +}); diff --git a/routes/web-fo.php b/routes/web-fo.php new file mode 100644 index 0000000..5b5c6bc --- /dev/null +++ b/routes/web-fo.php @@ -0,0 +1,6 @@ +name('home'); diff --git a/routes/web.php b/routes/web.php deleted file mode 100644 index b130397..0000000 --- a/routes/web.php +++ /dev/null @@ -1,18 +0,0 @@ -make(Kernel::class)->bootstrap(); diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php index 4ae02bc..0894c60 100644 --- a/tests/Feature/ExampleTest.php +++ b/tests/Feature/ExampleTest.php @@ -2,7 +2,6 @@ namespace Tests\Feature; -use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class ExampleTest extends TestCase diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..de5a70b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + // alignement avec le support navigateur de Vue + "target": "es5", + // activation de la déduction stricte pour les propriétés de données sur `this` + "strict": true, + // si vous utilisez webpack 2+ ou rollup, permettre le tree shaking : + "module": "es2015", + "moduleResolution": "node" + } +} diff --git a/webpack.mix.js b/webpack.mix.js index 2a22dc1..3d0bca6 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -1,17 +1,67 @@ -const mix = require('laravel-mix'); +const path = require('path') +const mix = require('laravel-mix') -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel applications. By default, we are compiling the CSS - | file for the application as well as bundling up all the JS files. - | - */ +require('laravel-mix-polyfill') +require('laravel-mix-clean') -mix.js('resources/js/app.js', 'public/js') - .postCss('resources/css/app.css', 'public/css', [ - // - ]); +let assetDir = 'assets' +let polyfill = { + enabled: true, + useBuiltIns: "usage", + // legacy targets from gulp file + targets: ['last 3 version', 'safari 5', 'ie 8', 'opera 12.1', 'ios 6', 'android 4'] +} + +mix.webpackConfig({ + resolve: { + alias: { + '@': path.resolve('resources/assets'), + 'vue$': 'vue/dist/vue.runtime.esm-bundler.js', + } + }, + // Pour debug compilation errors + // stats: { + // children: true, + // warningsFilter: [ + // /\-\-underline\-color/, + // ] + // }, +}) + +mix.options({ + fileLoaderDirs: { + fonts: `${assetDir}/fonts`, + images: `${assetDir}/images` + }, + postCss: [ + require('postcss-discard-comments')({ + removeAll: true + }) + ], +}) + +mix.clean({ + cleanOnceBeforeBuildPatterns: [ + 'css/*', + 'js/*', + 'assets/*', + ] +}) + +// * BO +mix.js('resources/js/back.js', 'public/js/back.js') + .sass('resources/scss/back.scss', 'public/css/back.css') + .polyfill(polyfill) + +// * FO +mix.js('resources/js/front.js', 'public/js/front.js') + .sass('resources/scss/front.scss', 'public/css/front.css') + .vue({ version: 3 }) + .polyfill(polyfill) + +// Copy Blade Images Assets +mix.copyDirectory('resources/assets', 'public/assets') + +// fontawesome compile +mix.copy('node_modules/@fortawesome/fontawesome-free/js/all.min.js', 'public/js/fontawesome.min.js') + .copy('node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css', 'public/css/fontawesome.min.css') From 0751114f4aee3e010d10c45f0ce30d1af6124c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Thu, 2 Jun 2022 14:45:23 +0200 Subject: [PATCH 2/6] BO News, Tags, Sliders CKeditor + word counter + Image Input + Taggable VUE3 Better Xss Sanitizer Handle Video Youtube + Image Upload + Inline Image from url Better Image Input component with reset, easizer resize Full Responsive BO --- app/Casts/HtmlColor.php | 56 + app/Casts/NiceDate.php | 47 + app/Enums/PublishedStatus.php | 67 ++ app/Enums/Sliders/SliderPosition.php | 41 + app/Enums/Sliders/SliderType.php | 35 + app/Http/Controllers/Bo/NewsController.php | 152 +++ app/Http/Controllers/Bo/SliderController.php | 187 +++ app/Http/Controllers/Bo/TagController.php | 132 +++ app/Http/Controllers/Controller.php | 146 +-- app/Http/Middleware/XssSanitizer.php | 1 + app/Http/Requests/Bo/ChangeOrderRequest.php | 43 + .../Requests/Bo/News/StoreNewsRequest.php | 80 ++ .../Requests/Bo/News/UpdateNewsRequest.php | 10 + .../Bo/Sliders/StoreSliderRequest.php | 76 ++ .../Bo/Sliders/UpdateSliderRequest.php | 18 + app/Http/Requests/Bo/Tags/StoreTagRequest.php | 56 + .../Requests/Bo/Tags/UpdateTagRequest.php | 7 + app/Lib/ToolboxHelper.php | 206 ++-- app/Models/News.php | 161 +++ app/Models/Slider.php | 108 ++ app/Models/Tag.php | 74 ++ app/Models/User.php | 12 +- app/Providers/RouteServiceProvider.php | 9 + composer.json | 3 + composer.lock | 771 +++++++++++-- config/purifier.php | 6 +- database/factories/NewsFactory.php | 38 + database/factories/SliderFactory.php | 54 + database/factories/TagFactory.php | 28 + ...21_09_16_100041_create_taggables_table.php | 32 + .../2021_09_16_100042_create_tags_table.php | 32 + .../2021_09_16_101055_create_news_table.php | 50 + ...2022_06_02_163424_create_sliders_table.php | 58 + database/seeders/DatabaseSeeder.php | 5 +- database/seeders/NewsSeeder.php | 34 + database/seeders/SliderSeeder.php | 20 + database/seeders/TagSeeder.php | 20 + package-lock.json | 35 + package.json | 2 + resources/assets/fonts/museo/museo300.eot | Bin 0 -> 26602 bytes resources/assets/fonts/museo/museo300.svg | 1006 +++++++++++++++++ resources/assets/fonts/museo/museo300.ttf | Bin 0 -> 56616 bytes resources/assets/fonts/museo/museo300.woff | Bin 0 -> 29656 bytes resources/assets/fonts/museo/museo500.eot | Bin 0 -> 27011 bytes resources/assets/fonts/museo/museo500.svg | 1006 +++++++++++++++++ resources/assets/fonts/museo/museo500.ttf | Bin 0 -> 57104 bytes resources/assets/fonts/museo/museo500.woff | Bin 0 -> 30112 bytes .../museo_sans/museosans-100-webfont.eot | Bin 0 -> 23037 bytes .../museo_sans/museosans-100-webfont.svg | 807 +++++++++++++ .../museo_sans/museosans-100-webfont.ttf | Bin 0 -> 50792 bytes .../museo_sans/museosans-100-webfont.woff | Bin 0 -> 26288 bytes .../museo_sans/museosans-300-webfont.eot | Bin 0 -> 23304 bytes .../museo_sans/museosans-300-webfont.svg | 853 ++++++++++++++ .../museo_sans/museosans-300-webfont.ttf | Bin 0 -> 50600 bytes .../museo_sans/museosans-300-webfont.woff | Bin 0 -> 26616 bytes .../museo_sans/museosans-500-webfont.eot | Bin 0 -> 23374 bytes .../museo_sans/museosans-500-webfont.svg | 833 ++++++++++++++ .../museo_sans/museosans-500-webfont.ttf | Bin 0 -> 50688 bytes .../museo_sans/museosans-500-webfont.woff | Bin 0 -> 26692 bytes .../museo_sans/museosans-700-webfont.eot | Bin 0 -> 23418 bytes .../museo_sans/museosans-700-webfont.svg | 854 ++++++++++++++ .../museo_sans/museosans-700-webfont.ttf | Bin 0 -> 50276 bytes .../museo_sans/museosans-700-webfont.woff | Bin 0 -> 26716 bytes .../museo_sans/museosans-900-webfont.eot | Bin 0 -> 59214 bytes .../museo_sans/museosans-900-webfont.svg | Bin 0 -> 65240 bytes .../museo_sans/museosans-900-webfont.ttf | Bin 0 -> 59036 bytes .../museo_sans/museosans-900-webfont.woff | Bin 0 -> 29268 bytes .../images/news/news_fake_image_300_300.jpg | Bin 0 -> 47827 bytes .../images/sliders/slider_fake_1400_630.jpg | Bin 0 -> 59149 bytes resources/js/back.js | 6 +- resources/js/back/CkUploadAdaptater.js | 56 + resources/js/bootstrap.js | 8 +- resources/js/common.js | 6 +- ...oComponent.vue => CkEditorBoComponent.vue} | 105 +- .../js/components/bo/ImageInputComponent.vue | 337 ++++++ .../bo/TaggableDropdownComponent.vue | 116 ++ .../js/components/bo/WordCounterComponent.vue | 72 ++ .../js/vendor/ckeditor/build/ckeditor.js | 4 +- .../js/vendor/ckeditor/build/ckeditor.js.map | 2 +- .../vendor/ckeditor/build/translations/ar.js | 2 +- .../vendor/ckeditor/build/translations/ast.js | 2 +- .../vendor/ckeditor/build/translations/az.js | 2 +- .../vendor/ckeditor/build/translations/bg.js | 2 +- .../vendor/ckeditor/build/translations/bs.js | 2 +- .../vendor/ckeditor/build/translations/cs.js | 2 +- .../vendor/ckeditor/build/translations/da.js | 2 +- .../ckeditor/build/translations/de-ch.js | 2 +- .../vendor/ckeditor/build/translations/de.js | 2 +- .../vendor/ckeditor/build/translations/el.js | 2 +- .../ckeditor/build/translations/en-au.js | 2 +- .../ckeditor/build/translations/en-gb.js | 2 +- .../vendor/ckeditor/build/translations/en.js | 2 +- .../vendor/ckeditor/build/translations/eo.js | 2 +- .../vendor/ckeditor/build/translations/es.js | 2 +- .../vendor/ckeditor/build/translations/et.js | 2 +- .../vendor/ckeditor/build/translations/eu.js | 2 +- .../vendor/ckeditor/build/translations/fa.js | 2 +- .../vendor/ckeditor/build/translations/fi.js | 2 +- .../vendor/ckeditor/build/translations/gl.js | 2 +- .../vendor/ckeditor/build/translations/he.js | 2 +- .../vendor/ckeditor/build/translations/hi.js | 2 +- .../vendor/ckeditor/build/translations/hr.js | 2 +- .../vendor/ckeditor/build/translations/hu.js | 2 +- .../vendor/ckeditor/build/translations/id.js | 2 +- .../vendor/ckeditor/build/translations/it.js | 2 +- .../vendor/ckeditor/build/translations/ja.js | 2 +- .../vendor/ckeditor/build/translations/jv.js | 2 +- .../vendor/ckeditor/build/translations/km.js | 2 +- .../vendor/ckeditor/build/translations/kn.js | 2 +- .../vendor/ckeditor/build/translations/ko.js | 2 +- .../vendor/ckeditor/build/translations/ku.js | 2 +- .../vendor/ckeditor/build/translations/lt.js | 2 +- .../vendor/ckeditor/build/translations/lv.js | 2 +- .../vendor/ckeditor/build/translations/nb.js | 2 +- .../vendor/ckeditor/build/translations/ne.js | 2 +- .../vendor/ckeditor/build/translations/nl.js | 2 +- .../vendor/ckeditor/build/translations/no.js | 2 +- .../vendor/ckeditor/build/translations/pl.js | 2 +- .../ckeditor/build/translations/pt-br.js | 2 +- .../vendor/ckeditor/build/translations/pt.js | 2 +- .../vendor/ckeditor/build/translations/ro.js | 2 +- .../vendor/ckeditor/build/translations/ru.js | 2 +- .../vendor/ckeditor/build/translations/si.js | 2 +- .../vendor/ckeditor/build/translations/sk.js | 2 +- .../vendor/ckeditor/build/translations/sq.js | 2 +- .../ckeditor/build/translations/sr-latn.js | 2 +- .../vendor/ckeditor/build/translations/sr.js | 2 +- .../vendor/ckeditor/build/translations/sv.js | 2 +- .../vendor/ckeditor/build/translations/th.js | 2 +- .../vendor/ckeditor/build/translations/tk.js | 2 +- .../vendor/ckeditor/build/translations/tr.js | 2 +- .../vendor/ckeditor/build/translations/ug.js | 2 +- .../vendor/ckeditor/build/translations/uk.js | 2 +- .../vendor/ckeditor/build/translations/ur.js | 2 +- .../vendor/ckeditor/build/translations/uz.js | 2 +- .../vendor/ckeditor/build/translations/vi.js | 2 +- .../ckeditor/build/translations/zh-cn.js | 2 +- .../vendor/ckeditor/build/translations/zh.js | 2 +- resources/js/vendor/ckeditor/src/ckeditor.js | 4 +- resources/js/vue.js | 34 +- resources/lang/en/enums.php | 7 + resources/lang/en/models.php | 9 + resources/lang/fr.json | 6 +- resources/lang/fr/enums.php | 7 + resources/lang/fr/models.php | 9 + resources/lang/fr/validation.php | 16 +- resources/scss/_common.scss | 25 + resources/scss/_fonts.scss | 93 ++ resources/scss/_variables.scss | 2 + .../views/back/layouts/nav-menu.blade.php | 24 +- .../back/modules/scriptConstants.blade.php | 1 + .../views/back/modules/searchBar.blade.php | 4 +- .../back/modules/tableColSorter.blade.php | 14 +- resources/views/back/news/create.blade.php | 30 + resources/views/back/news/edit.blade.php | 60 + resources/views/back/news/form.blade.php | 154 +++ resources/views/back/news/index.blade.php | 114 ++ resources/views/back/sliders/create.blade.php | 11 +- resources/views/back/sliders/edit.blade.php | 21 +- resources/views/back/sliders/form.blade.php | 110 +- resources/views/back/sliders/index.blade.php | 74 +- resources/views/back/tags/create.blade.php | 29 + resources/views/back/tags/edit.blade.php | 48 + resources/views/back/tags/form.blade.php | 20 + resources/views/back/tags/index.blade.php | 81 ++ resources/views/layouts/back.blade.php | 6 +- routes/web-bo.php | 15 + 167 files changed, 9596 insertions(+), 533 deletions(-) create mode 100644 app/Casts/HtmlColor.php create mode 100644 app/Casts/NiceDate.php create mode 100644 app/Enums/PublishedStatus.php create mode 100644 app/Enums/Sliders/SliderPosition.php create mode 100644 app/Enums/Sliders/SliderType.php create mode 100644 app/Http/Controllers/Bo/NewsController.php create mode 100644 app/Http/Controllers/Bo/SliderController.php create mode 100644 app/Http/Controllers/Bo/TagController.php create mode 100644 app/Http/Requests/Bo/ChangeOrderRequest.php create mode 100644 app/Http/Requests/Bo/News/StoreNewsRequest.php create mode 100644 app/Http/Requests/Bo/News/UpdateNewsRequest.php create mode 100644 app/Http/Requests/Bo/Sliders/StoreSliderRequest.php create mode 100644 app/Http/Requests/Bo/Sliders/UpdateSliderRequest.php create mode 100644 app/Http/Requests/Bo/Tags/StoreTagRequest.php create mode 100644 app/Http/Requests/Bo/Tags/UpdateTagRequest.php create mode 100644 app/Models/News.php create mode 100644 app/Models/Slider.php create mode 100644 app/Models/Tag.php create mode 100644 database/factories/NewsFactory.php create mode 100644 database/factories/SliderFactory.php create mode 100644 database/factories/TagFactory.php create mode 100644 database/migrations/2021_09_16_100041_create_taggables_table.php create mode 100644 database/migrations/2021_09_16_100042_create_tags_table.php create mode 100644 database/migrations/2021_09_16_101055_create_news_table.php create mode 100644 database/migrations/2022_06_02_163424_create_sliders_table.php create mode 100644 database/seeders/NewsSeeder.php create mode 100644 database/seeders/SliderSeeder.php create mode 100644 database/seeders/TagSeeder.php create mode 100644 resources/assets/fonts/museo/museo300.eot create mode 100644 resources/assets/fonts/museo/museo300.svg create mode 100644 resources/assets/fonts/museo/museo300.ttf create mode 100644 resources/assets/fonts/museo/museo300.woff create mode 100644 resources/assets/fonts/museo/museo500.eot create mode 100644 resources/assets/fonts/museo/museo500.svg create mode 100644 resources/assets/fonts/museo/museo500.ttf create mode 100644 resources/assets/fonts/museo/museo500.woff create mode 100644 resources/assets/fonts/museo_sans/museosans-100-webfont.eot create mode 100644 resources/assets/fonts/museo_sans/museosans-100-webfont.svg create mode 100644 resources/assets/fonts/museo_sans/museosans-100-webfont.ttf create mode 100644 resources/assets/fonts/museo_sans/museosans-100-webfont.woff create mode 100644 resources/assets/fonts/museo_sans/museosans-300-webfont.eot create mode 100644 resources/assets/fonts/museo_sans/museosans-300-webfont.svg create mode 100644 resources/assets/fonts/museo_sans/museosans-300-webfont.ttf create mode 100644 resources/assets/fonts/museo_sans/museosans-300-webfont.woff create mode 100644 resources/assets/fonts/museo_sans/museosans-500-webfont.eot create mode 100644 resources/assets/fonts/museo_sans/museosans-500-webfont.svg create mode 100644 resources/assets/fonts/museo_sans/museosans-500-webfont.ttf create mode 100644 resources/assets/fonts/museo_sans/museosans-500-webfont.woff create mode 100644 resources/assets/fonts/museo_sans/museosans-700-webfont.eot create mode 100644 resources/assets/fonts/museo_sans/museosans-700-webfont.svg create mode 100644 resources/assets/fonts/museo_sans/museosans-700-webfont.ttf create mode 100644 resources/assets/fonts/museo_sans/museosans-700-webfont.woff create mode 100644 resources/assets/fonts/museo_sans/museosans-900-webfont.eot create mode 100644 resources/assets/fonts/museo_sans/museosans-900-webfont.svg create mode 100644 resources/assets/fonts/museo_sans/museosans-900-webfont.ttf create mode 100644 resources/assets/fonts/museo_sans/museosans-900-webfont.woff create mode 100644 resources/assets/images/news/news_fake_image_300_300.jpg create mode 100644 resources/assets/images/sliders/slider_fake_1400_630.jpg create mode 100644 resources/js/back/CkUploadAdaptater.js rename resources/js/components/bo/{ckEditorBoComponent.vue => CkEditorBoComponent.vue} (66%) create mode 100644 resources/js/components/bo/ImageInputComponent.vue create mode 100644 resources/js/components/bo/TaggableDropdownComponent.vue create mode 100644 resources/js/components/bo/WordCounterComponent.vue create mode 100644 resources/lang/en/enums.php create mode 100644 resources/lang/en/models.php create mode 100644 resources/lang/fr/enums.php create mode 100644 resources/lang/fr/models.php create mode 100644 resources/scss/_fonts.scss create mode 100644 resources/views/back/news/create.blade.php create mode 100644 resources/views/back/news/edit.blade.php create mode 100644 resources/views/back/news/form.blade.php create mode 100644 resources/views/back/news/index.blade.php create mode 100644 resources/views/back/tags/create.blade.php create mode 100644 resources/views/back/tags/edit.blade.php create mode 100644 resources/views/back/tags/form.blade.php create mode 100644 resources/views/back/tags/index.blade.php diff --git a/app/Casts/HtmlColor.php b/app/Casts/HtmlColor.php new file mode 100644 index 0000000..6417b5e --- /dev/null +++ b/app/Casts/HtmlColor.php @@ -0,0 +1,56 @@ +zeropad(dechex($value), 6); + } + + /** + * Prepare the given value for storage. + * + * @param Model $model + * @param string $key + * @param mixed $value + * @param array $attributes + * @return integer + */ + public function set($model, $key, $value, $attributes) + { + return \intval(hexdec(ltrim($value, '#'))); + } + + /** + * Pad with zeros a numeric string + * + * @param string $num + * @param integer $lim + * @return string + */ + private function zeropad(string $num, int $lim): string + { + return (strlen($num) >= $lim) ? $num : $this->zeropad("0" . $num, $lim); + } +} diff --git a/app/Casts/NiceDate.php b/app/Casts/NiceDate.php new file mode 100644 index 0000000..775d6a2 --- /dev/null +++ b/app/Casts/NiceDate.php @@ -0,0 +1,47 @@ +isToday() ? + trans('Aujourd\'hui à :time', [ + 'time' => $value->isoFormat('HH:mm') + ]) : $value->isoFormat('YYYY/MM/DD HH:mm'); + } + + /** + * Parse a date string to a date time date. + * + * @param Model $model + * @param string $key + * @param mixed $value + * @param array $attributes + * @return string + * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing + * @phpcs:disable Squiz.Commenting.FunctionComment.ScalarTypeHintMissing + */ + public function set($model, $key, $value, $attributes) + { + return Carbon::parse($value)->isoFormat('YYYY/MM/DD HH:mm'); + } +} diff --git a/app/Enums/PublishedStatus.php b/app/Enums/PublishedStatus.php new file mode 100644 index 0000000..3c60f3d --- /dev/null +++ b/app/Enums/PublishedStatus.php @@ -0,0 +1,67 @@ + 0, + 'published' => 1, + 'archived' => 2 + ]; + } + + /** + * Enum labels + * + * @return array + */ + protected static function labels(): array + { + return [ + 'draft' => trans('enums.draft'), + 'published' => trans('enums.published'), + 'archived' => trans('enums.archived') + ]; + } + + /** + * Enum classes + * + * @return array + */ + protected static function icon(): array + { + return [ + 'draft' => '📝', + 'published' => '🌍', + 'archived' => '🗄️' + ]; + } + + /** + * @param string $attribute + * @return integer|string + */ + public function __get(string $attribute) + { + if ($attribute === 'icon') { + return $this->icon()[$this->getDefinition()] ?? null; + } + return parent::__get($attribute); + } +} diff --git a/app/Enums/Sliders/SliderPosition.php b/app/Enums/Sliders/SliderPosition.php new file mode 100644 index 0000000..d6bede4 --- /dev/null +++ b/app/Enums/Sliders/SliderPosition.php @@ -0,0 +1,41 @@ + 0, + 'center' => 1, + 'right' => 2 + ]; + } + + /** + * Enum labels + * + * @return array + */ + protected static function labels(): array + { + return [ + 'left' => trans('Gauche'), + 'center' => trans('Centré'), + 'right' => trans('Droite') + ]; + } +} diff --git a/app/Enums/Sliders/SliderType.php b/app/Enums/Sliders/SliderType.php new file mode 100644 index 0000000..ce367b2 --- /dev/null +++ b/app/Enums/Sliders/SliderType.php @@ -0,0 +1,35 @@ + 0, + ]; + } + + /** + * Enum labels + * + * @return array + */ + protected static function labels(): array + { + return [ + 'home' => trans('Slider de la page d\'accueil'), + ]; + } +} diff --git a/app/Http/Controllers/Bo/NewsController.php b/app/Http/Controllers/Bo/NewsController.php new file mode 100644 index 0000000..46e7e64 --- /dev/null +++ b/app/Http/Controllers/Bo/NewsController.php @@ -0,0 +1,152 @@ +search) { + $this->searchQuery( + $news, + $request->search, + // * Search in tags + function ($q) use ($request) { + $q->orWhereHas('tags', function ($q) use ($request) { + $q->whereRaw( + 'UPPER(CONCAT(`tags`.`name`)) LIKE UPPER(?)', + ['%' . filter_var($request->search, FILTER_SANITIZE_STRING) . '%'] + ); + }); + }, + 'title', + 'content' + ); + } + + $this->sortQuery($news); + $searchFields = trans('Titre, Contenu, Tags'); + + $news->orderBy('published_at', 'DESC'); + $news = $news->paginate(); + + return view('back.news.index', compact('news', 'searchFields')); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + /** @var \Illuminate\Database\Eloquent\Collection */ + $tags = Tag::query()->select(['id', 'name'])->get(); + return view('back.news.create', compact('tags')); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\Bo\News\StoreNewsRequest $request + * @return \Illuminate\Http\Response + */ + public function store(StoreNewsRequest $request) + { + return DB::transaction(function () use ($request) { + $news = new News(); + $news->fill($request->validated()); + + if ($news->saveOrFail()) { + $news->tags()->sync(collect($request->tags)->pluck('id')); + return redirect() + ->route('back.news.edit', $news) + ->with('success', trans( + ':model a été créé', + ['model' => Str::singular(trans('models.classes.news'))] + )); + } + return back(); + }); + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\Models\News $news + * @return \Illuminate\Http\Response + */ + public function edit(News $news) + { + /** @var \Illuminate\Database\Eloquent\Collection */ + $tags = Tag::whereNotIn('id', $news->tags()->pluck('id')) + ->select(['id', 'name'])->get(); + + return view('back.news.edit', [ + 'newsModel' => $news, + 'tags' => $tags + ]); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\Bo\News\UpdateNewsRequest $request + * @param \App\Models\News $news + * @return \Illuminate\Http\Response + */ + public function update(UpdateNewsRequest $request, News $news) + { + return DB::transaction(function () use ($request, $news) { + $news->fill($request->validated()); + $news->tags()->sync(collect($request->tags)->pluck('id')); + + if ($news->saveOrFail()) { + return redirect() + ->route('bo.news.edit', $news) + ->with('success', trans( + ':model a été mis à jour', + ['model' => Str::singular(trans('models.classes.news'))] + )); + } + return back(); + }); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\Models\News $news + * @return \Illuminate\Http\Response + */ + public function destroy(News $news) + { + if ($news->deleteOrFail()) { + return redirect() + ->route('bo.news.index') + ->with('warning', trans( + ':model a bien été supprimé', + ['model' => Str::singular(trans('models.classes.news'))] + )); + } + return back(); + } +} diff --git a/app/Http/Controllers/Bo/SliderController.php b/app/Http/Controllers/Bo/SliderController.php new file mode 100644 index 0000000..0f410f4 --- /dev/null +++ b/app/Http/Controllers/Bo/SliderController.php @@ -0,0 +1,187 @@ +typefilter)); + } catch (\TypeError | \BadMethodCallException | EnumNotRoutableException $e) { + $currentType = SliderType::home(); + } + + if ($request->search) { + $this->searchQuery( + $sliders, + $request->search, + null, + 'title', + 'link' + ); + } + + $this->sortQuery($sliders); + $searchFields = trans('Titre, Lien'); + + $sliders->orderBy('order', 'DESC'); + $sliders = $sliders->paginate(); + + return view('back.sliders.index', compact('sliders', 'searchFields', 'currentType')); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view('back.sliders.create'); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\Bo\Sliders\StoreSliderRequest $request + * @return \Illuminate\Http\Response + */ + public function store(StoreSliderRequest $request) + { + return DB::transaction(function () use ($request) { + $slider = new Slider(); + $slider->fill($request->validated()); + + if ($slider->saveOrFail()) { + return redirect() + ->route('bo.sliders.edit', $slider) + ->with('success', trans( + ':model a été créé', + ['model' => Str::singular(trans('models.classes.sliders'))] + )); + } + return back(); + }); + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\Models\Slider $slider + * @return \Illuminate\Http\Response + */ + public function edit(Slider $slider) + { + return view('back.sliders.edit', [ + 'slider' => $slider + ]); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\Bo\Sliders\UpdateSliderRequest $request + * @param \App\Models\Slider $slider + * @return \Illuminate\Http\Response + */ + public function update(UpdateSliderRequest $request, Slider $slider) + { + return DB::transaction(function () use ($request, $slider) { + $slider->fill($request->validated()); + + if ($slider->saveOrFail()) { + return redirect() + ->route('bo.sliders.edit', $slider) + ->with('success', trans( + ':model a été mis à jour', + ['model' => Str::singular(trans('models.classes.sliders'))] + )); + } + return back(); + }); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\Models\Slider $slider + * @return \Illuminate\Http\Response + */ + public function destroy(Slider $slider) + { + if ($slider->deleteOrFail()) { + return redirect() + ->route('bo.sliders.index') + ->with('warning', trans( + ':model a bien été supprimé', + ['model' => Str::singular(trans('models.classes.sliders'))] + )); + } + return back(); + } + + /** + * Change Item Order + * + * @param \App\Http\Requests\Bo\ChangeOrderRequest $request + * @param \App\Models\Slider $slider + * @return \Illuminate\Http\RedirectResponse + */ + public function changeOrder(ChangeOrderRequest $request, Slider $slider) + { + try { + DB::transaction(function () use ($request, $slider) { + $tmp = Slider::query(); + if ($request->action === 'up') { + // * Push Item upward + $tmp->where('order', '<', $slider->order) + ->orderBy('order', 'DESC'); + } else { + // * Push Item downward + $tmp->where('order', '>', $slider->order) + ->orderBy('order', 'ASC'); + } + $tmp->whereType('type', $slider->type); + $tmp = $tmp->firstOrFail(); + $newOrder = $tmp->order; + $tmp->order = $slider->order; + $slider->order = $newOrder; + if (!$slider->saveOrFail() or !$tmp->saveOrFail()) { + throw new \ErrorException("Error Processing Request", 1); + } + }); + } catch (\ErrorException | ModelNotFoundException $e) { + Session::flash('error', trans('Erreur lors de la modification de l\'ordre :message', [ + 'message' => $e->getMessage() + ])); + } //end try + + return redirect()->back(); + } +} diff --git a/app/Http/Controllers/Bo/TagController.php b/app/Http/Controllers/Bo/TagController.php new file mode 100644 index 0000000..c93c736 --- /dev/null +++ b/app/Http/Controllers/Bo/TagController.php @@ -0,0 +1,132 @@ +search) { + $this->searchQuery( + $tags, + $request->search, + null, + 'name' + ); + } + + $this->sortQuery($tags); + $searchFields = trans('Nom'); + + $tags = $tags->paginate(); + + return view('back.tags.index', compact('tags', 'searchFields')); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view('back.tags.create'); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\Bo\Tags\StoreTagRequest $request + * @return \Illuminate\Http\Response + */ + public function store(StoreTagRequest $request) + { + return DB::transaction(function () use ($request) { + $tag = new Tag(); + $tag->fill($request->validated()); + + if ($tag->saveOrFail()) { + return redirect() + ->route('bo.tags.edit', $tag) + ->with('success', trans( + ':model a été créé', + ['model' => Str::singular(trans('models.classes.tags'))] + )); + } + return back(); + }); + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\Models\Tag $tag + * @return \Illuminate\Http\Response + */ + public function edit(Tag $tag) + { + return view('back.tags.edit', [ + 'tag' => $tag, + ]); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\Bo\Tags\UpdateTagRequest $request + * @param \App\Models\Tag $tag + * @return \Illuminate\Http\Response + */ + public function update(UpdateTagRequest $request, Tag $tag) + { + return DB::transaction(function () use ($request, $tag) { + $tag->fill($request->validated()); + + if ($tag->saveOrFail()) { + return redirect() + ->route('bo.tags.edit', $tag) + ->with('success', trans( + ':model a été mis à jour', + ['model' => Str::singular(trans('models.classes.tags'))] + )); + } + return back(); + }); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\Models\Tag $tag + * @return \Illuminate\Http\Response + */ + public function destroy(Tag $tag) + { + if ($tag->deleteOrFail()) { + return redirect() + ->route('bo.tags.index') + ->with('warning', trans( + ':model a bien été supprimé', + ['model' => Str::singular(trans('models.classes.tags'))] + )); + } + return back(); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index de6e1d9..95b04e1 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -3,15 +3,12 @@ namespace App\Http\Controllers; use Illuminate\Database\Eloquent\Builder; -use Illuminate\Database\Eloquent\Model; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; -use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Session; -use Illuminate\Support\Str; class Controller extends BaseController { @@ -20,36 +17,68 @@ class Controller extends BaseController use ValidatesRequests; /** - * Search query + * Build Search query on specified fields + * splitting search into words or using whole sentence * - * @param Builder $query The eloquent query builder. - * @param string $search The query string. - * @param string|array ...$field Either a simple array or a string + * @param Builder $query The eloquent query builder. + * @param string $search The query string. + * @param callable $searchQuery The query string. + * @param string ...$fields Either a simple array or a string * in case of a string the two fields would be concatenate to make the search. * @return Builder */ protected function searchQuery( Builder $query, string $search, - ...$field + callable $searchQuery = null, + string ...$fields ): Builder { - if (count($field)) { - $table = $query->getModel()->getTable(); - $query = $query->where(function ($q) use ($field, $search, $table) { - foreach ($field as $f) { - $f = str_replace('?', '\?', $f); - if (is_array($f)) { - $q->orWhereRaw( - sprintf("UPPER(CONCAT(%s)) LIKE UPPER(?)", collect($f)->map(function ($q) use ($table) { - return "`$table`.`$q`"; - })->implode(', \' \', ')), - ["%$search%"] - ); - } else { - $q->orWhereRaw("UPPER(`$table`.`$f`) LIKE UPPER(?)", ["%$search%"]); + if (count($fields)) { + // Search using words. + $words = explode(' ', $search); + $query->where(function ($query) use ($searchQuery, $words, $search, $fields) { + foreach ($words as $word) { + if (!strlen($word)) { + continue; } + $this->searchOnFields($query, $word, $fields); + } //end foreach + // Search whole using whole sentence. + $this->searchOnFields($query, $search, $fields); + if ($searchQuery) { + $searchQuery($query); } }); + } //end if + return $query; + } + + /** + * Build query search on all fields + * + * @param Builder $query + * @param string $search + * @param array $fields + * @return Builder + */ + private function searchOnFields(Builder $query, string $search, array $fields): Builder + { + $table = $query->getModel()->getTable(); + foreach ($fields as $f) { + $f = str_replace('?', '\?', $f); + if (is_array($f)) { + $query->orWhereRaw( + sprintf("UPPER(CONCAT(%s)) LIKE UPPER(?)", collect($f)->map(function ($q) use ($table) { + return "`$table`.`$q`"; + })->implode(', \' \', ')), + ['%' . filter_var($search, FILTER_SANITIZE_STRING) . '%'] + ); + } else { + $query->orWhereRaw( + "UPPER(`$table`.`$f`) LIKE UPPER(?)", + ['%' . filter_var($search, FILTER_SANITIZE_STRING) . '%'] + ); + } } return $query; } @@ -89,77 +118,4 @@ class Controller extends BaseController } return $query; } - - /** - * Store an image of different types - * - * @param string $table - * @param \Illuminate\Http\UploadedFile|\SplFileInfo|string $image - * @return string - * @throws \ErrorException If file copy fails. - */ - public static function storeImage(string $table, $image): string - { - /** @var \Illuminate\Http\UploadedFile $image */ - if (\is_object($image) and get_class($image) === UploadedFile::class) { - $newPath = self::prepareMoveFile($table, $image->getClientOriginalName()); - $newPath = str_replace(storage_path('app'), '', $newPath); - $image->storePubliclyAs( - pathinfo($newPath, \PATHINFO_DIRNAME), - pathinfo($newPath, \PATHINFO_BASENAME) - ); - return 'storage' . str_replace('/public', '', $newPath); - } - /** @var \SplFileInfo $image */ - if (\is_object($image) and get_class($image) === \SplFileInfo::class) { - $newPath = self::prepareMoveFile($table, $image->getBaseName()); - if (!File::copy($image->getRealPath(), $newPath)) { - throw new \ErrorException(sprintf( - 'Failed to copy file %s to %s', - $image->getRealPath(), - $newPath - )); - } - return \ltrim(str_replace(\storage_path('app/public'), '/storage', $newPath), '/'); - } - if (\is_string($image)) { - return $image; - } - } - - /** - * Prepare storage path and return - * the image full path - * - * @param string $table Model table name. - * @param string $filename The basename for the file. - * @return string - */ - private static function prepareMoveFile(string $table, string $filename): string - { - $pathFolder = \storage_path(sprintf('app/public/images/%s', $table)); - if (!File::exists($pathFolder)) { - File::makeDirectory($pathFolder, 0755, true); - } - $filename = sprintf('%s-%s', Str::uuid(), $filename); - $fullPath = sprintf('%s/%s', $pathFolder, $filename); - if (File::exists($fullPath)) { - File::delete($fullPath); - } - return $fullPath; - } - - /** - * Destroy uploaded image - * - * @param Model $model - * @param string $attribute - * @return void - */ - public function removeUploadedImage(Model $model, string $attribute) - { - if (File::exists(ltrim($model->{$attribute}, '/')) and \strpos($model->{$attribute}, '/storage') === 0) { - File::delete(ltrim($model->{$attribute}, '/')); - } - } } diff --git a/app/Http/Middleware/XssSanitizer.php b/app/Http/Middleware/XssSanitizer.php index 955d285..2dce94e 100644 --- a/app/Http/Middleware/XssSanitizer.php +++ b/app/Http/Middleware/XssSanitizer.php @@ -38,6 +38,7 @@ class XssSanitizer } } else { $input = strip_tags($input); + $input = \filter_var($input, FILTER_SANITIZE_STRING); } }); $request->merge($inputs); diff --git a/app/Http/Requests/Bo/ChangeOrderRequest.php b/app/Http/Requests/Bo/ChangeOrderRequest.php new file mode 100644 index 0000000..db70a4c --- /dev/null +++ b/app/Http/Requests/Bo/ChangeOrderRequest.php @@ -0,0 +1,43 @@ +check(); + } + + /** + * Prepare the data for validation. + * + * @return void + */ + protected function prepareForValidation() + { + $this->merge([ + 'direction' => $this->action === 'up' ? true : false + ]); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'action' => 'required|string|in:up,down', + 'direction' => 'required|boolean', + ]; + } +} diff --git a/app/Http/Requests/Bo/News/StoreNewsRequest.php b/app/Http/Requests/Bo/News/StoreNewsRequest.php new file mode 100644 index 0000000..4e8de79 --- /dev/null +++ b/app/Http/Requests/Bo/News/StoreNewsRequest.php @@ -0,0 +1,80 @@ +check(); + } + + /** + * Prepare the data for validation. + * + * @return void + */ + protected function prepareForValidation() + { + $this->merge([ + 'slug' => Str::slug($this->title), + ]); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'title' => 'required|min:6|max:255', + 'slug' => 'required|max:255', + 'seo_title' => 'required|min:53|max:60', + 'seo_description' => 'required|min:50|max:160', + 'content' => 'required|string|min:15', + 'picture' => 'sometimes|image|dimensions:width=300,height=300|mimes:png,jpg,jpeg,gif', + 'picture_alt' => 'required_with:picture|nullable|string|min:6|max:255', + 'picture_title' => 'required_with:picture|nullable|string|min:6|max:255', + 'published' => ['required', new EnumIsValidRule(PublishedStatus::class)], + 'tags' => 'sometimes|array', + 'tags.*' => 'required|array', + 'tags.*.id' => 'required|numeric|exists:tags,id|distinct', + 'tags.*.name' => 'required|string', + ]; + } + + /** + * Get custom attributes for validator errors. + * + * @return array + */ + public function attributes(): array + { + return [ + 'title' => trans('title'), + 'slug' => trans('title'), + 'seo_title' => trans('title') . ' seo', + 'seo_description' => trans('description') . ' seo', + 'content' => trans('content'), + 'picture' => trans('vignette'), + 'picture_alt' => trans('Texte alternatif de la vignette'), + 'picture_title' => trans('Titre de la vignette'), + 'published' => trans('published'), + ]; + } +} diff --git a/app/Http/Requests/Bo/News/UpdateNewsRequest.php b/app/Http/Requests/Bo/News/UpdateNewsRequest.php new file mode 100644 index 0000000..4318127 --- /dev/null +++ b/app/Http/Requests/Bo/News/UpdateNewsRequest.php @@ -0,0 +1,10 @@ +check(); + } + + /** + * Prepare the data for validation. + * + * @return void + */ + protected function prepareForValidation() + { + $this->merge([ + 'link_new_tab' => $this->link_new_tab ? true : false, + 'status' => $this->status ? true : false + ]); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'title' => 'required|min:3|max:255', + 'title_color' => 'required|color_hex', + 'title_color_bg' => 'required|color_hex', + 'position' => ['required', new EnumIsValidRule(SliderPosition::class)], + 'picture' => 'required|image|dimensions:width=1400,height=630|mimes:png,jpg,jpeg,gif', + 'link' => 'required|url', + 'link_title' => 'required|min:3|max:255', + 'link_color' => 'required|color_hex', + 'link_color_bg' => 'required|color_hex', + 'link_new_tab' => 'required|boolean', + 'status' => 'required|boolean' + ]; + } + + /** + * Get custom attributes for validator errors. + * + * @return array + */ + public function attributes(): array + { + return [ + 'title' => trans('title'), + 'title_color' => trans('couleur de titre'), + 'title_color_bg' => trans('couleur de fond du titre'), + 'position' => trans('position de centrage de l\'image'), + 'link' => trans('lien'), + 'link_title' => trans('titre du lien'), + 'link_color' => trans('couleur du lien'), + 'link_color_bg' => trans('couleur de fond du lien'), + 'link_new_tab' => trans('nouvel onglet'), + 'status' => trans('publication'), + ]; + } +} diff --git a/app/Http/Requests/Bo/Sliders/UpdateSliderRequest.php b/app/Http/Requests/Bo/Sliders/UpdateSliderRequest.php new file mode 100644 index 0000000..2dae054 --- /dev/null +++ b/app/Http/Requests/Bo/Sliders/UpdateSliderRequest.php @@ -0,0 +1,18 @@ + 'sometimes|image|dimensions:width=1400,height=630|mimes:png,jpg,jpeg,gif' + ]); + } +} diff --git a/app/Http/Requests/Bo/Tags/StoreTagRequest.php b/app/Http/Requests/Bo/Tags/StoreTagRequest.php new file mode 100644 index 0000000..3186e4c --- /dev/null +++ b/app/Http/Requests/Bo/Tags/StoreTagRequest.php @@ -0,0 +1,56 @@ +check(); + } + + /** + * Prepare the data for validation. + * + * @return void + */ + protected function prepareForValidation() + { + $this->merge([ + 'slug' => Str::slug($this->name), + ]); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'name' => 'required|string|min:2|max:25' + ]; + } + + /** + * Get custom attributes for validator errors. + * + * @return array + */ + public function attributes(): array + { + return [ + 'name' => trans('name'), + 'slug' => trans('name') + ]; + } +} diff --git a/app/Http/Requests/Bo/Tags/UpdateTagRequest.php b/app/Http/Requests/Bo/Tags/UpdateTagRequest.php new file mode 100644 index 0000000..88166e6 --- /dev/null +++ b/app/Http/Requests/Bo/Tags/UpdateTagRequest.php @@ -0,0 +1,7 @@ +\/storage\/images\/crud-policies\/uploads\/\d{4}-\d{2}-\d{2}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}-[-a-zA-Z0-9@%._\+~#=]{2,256}\.(?:' . implode('|', $detectExtensions) . '))"/', + $text, + $out + ); + return collect($out['url'] ?? [])->map(function (string $urlEncodedFilePath) { + return \urldecode($urlEncodedFilePath); + })->all(); + } + /** * Assert That only external url is present on txt * @@ -141,58 +163,48 @@ class ToolboxHelper } /** - * Generate url using laravel route passing our group query if present - * This is used to keep ou group tracking - * Curd-policies is only used for root users as it cannot keep track of our group - * and validate things + * Destroy image * - * @param array|string $name - * @param mixed $parameters - * @param boolean $absolute - * @return string - * @throws \ErrorException If an object given as parameter is not a Model. + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $attribute + * @return void */ - public static function routeWithGroup($name, $parameters = [], bool $absolute = true): string + public static function removeImage(Model $model, string $attribute) { - // * Handle if parameter if is an object. - if (\is_object($parameters)) { - $parents = \class_parents($parameters); - if ($parents === false or !\in_array(Model::class, $parents)) { - throw new \ErrorException(\sprintf( - '%s only support object of type %s', - __FUNCTION__, - Model::class - )); - } - /** @var \Illuminate\Database\Eloquent\Model $model */ - $model = $parameters; - $parameters = [Str::singular($model->getTable()) => $model]; + $path = ltrim($model->{$attribute}, '/'); + if (File::exists($path) and \strpos($path, 'storage') === 0) { + File::delete($path); } - // * Handle if parameter isnt and array like slug or else. - if (!is_array($parameters)) { - // * Best effort, result is not garantee. - $parameters = [$parameters]; + } + + /** + * Destroy image + * + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $attribute + * @return void + */ + public static function removeOldImage(Model $model, string $attribute) + { + $originalPath = ltrim($model->getOriginal($attribute), '/'); + if (File::exists($originalPath) and \strpos($originalPath, 'storage') === 0) { + File::delete($originalPath); } - // * Pass our group. - if ($group = Session::get('activeGroup', request()->group)) { - $parameters = array_merge($parameters, ['group' => $group]); - } - // * Call laravel route helper. - return route($name, $parameters, $absolute); } /** * Store an image of different types * - * @param string $table + * @param \Illuminate\Database\Eloquent\Model $model * @param \Illuminate\Http\UploadedFile|\SplFileInfo|string $image * @return string * @throws \ErrorException If file copy fails. */ - public static function storeImage(string $table, $image): string + public static function storeImage(Model $model, $image): string { - /** @var \Illuminate\Http\UploadedFile $image */ - if (\is_object($image) and get_class($image) === UploadedFile::class) { + $table = $model->getTable(); + if (\is_object($image) and $image instanceof \Illuminate\Http\UploadedFile) { + /** @var \Illuminate\Http\UploadedFile $image */ $newPath = self::prepareMoveFile($table, $image->getClientOriginalName()); $newPath = str_replace(storage_path('app'), '', $newPath); $image->storePubliclyAs( @@ -201,8 +213,8 @@ class ToolboxHelper ); return 'storage' . str_replace('/public', '', $newPath); } - /** @var \SplFileInfo $image */ - if (\is_object($image) and get_class($image) === \SplFileInfo::class) { + if (\is_object($image) and $image instanceof \SplFileInfo) { + /** @var \SplFileInfo $image */ $newPath = self::prepareMoveFile($table, $image->getBaseName()); if (!File::copy($image->getRealPath(), $newPath)) { throw new \ErrorException(sprintf( @@ -213,9 +225,7 @@ class ToolboxHelper } return \ltrim(str_replace(\storage_path('app/public'), '/storage', $newPath), '/'); } - if (\is_string($image)) { - return $image; - } + return strval($image); } /** @@ -240,98 +250,40 @@ class ToolboxHelper return $fullPath; } - /** - * PDF Attributes names - * - * @param Request $request - * @return array - */ - public static function pdfAttributes(Request $request): array - { - $pdfAttributes = ['pdf' => trans('documents PDF')]; - if (\is_array($request->pdfValidate)) { - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed - collect($request->pdfValidate)->map(function ($value, $index) use (&$pdfAttributes) { - $pdfAttributes["pdfValidate.$index"] = sprintf('document PDF n°%d', $index + 1); - }); - } - return $pdfAttributes; - } - - /** - * Pdf rules - * - * @return array - */ - public static function pdfRules(): array - { - return [ - 'pdf' => 'sometimes|array', - 'pdfValidate' => 'required_with:pdf|array', - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed - 'pdfValidate.*' => function ($attribute, $value, $fail) { - if (!File::exists($value)) { - $fail(trans(":attribute n'existe pas dans le système de fichier")); - } - if (File::mimeType($value) !== 'application/pdf') { - $fail(trans(":attribute doit être un document de type 'application/pdf'")); - } - } - ]; - } - - - /** - * Merges post pdf fields with request data - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public static function mergePdf(Request $request): void - { - $pdf = $request->pdf; - if (is_array($pdf)) { - $request->merge(['pdfValidate' => []]); - foreach ($pdf as $key => $pdfPath) { - // ! Empty pdf. - if ($pdfPath === 'false') { - // * Empty pdf and exit - $request->merge(['pdf' => []]); - return; - } - $decodedPath = \urldecode($pdfPath); - $request->merge([ - "pdfValidate" => array_merge( - $request->pdfValidate, - [\public_path(ltrim($decodedPath, '/'))] - ) - ]); - $changedPdf = $request->pdf; - $changedPdf[$key] = $decodedPath; - $request->merge([ - 'pdf' => $changedPdf - ]); - } - } //end if - } - /** * Asserts that the field is unique * - * @param mixed $id - * @param string $field - * @param mixed $value + * @param string $table + * @param string $field + * @param mixed $value + * @param integer|null $id + * @param callable|null $query * @return void * @throws \Illuminate\Validation\ValidationException If the field is not unique. */ - public static function assertFieldIsUnique($id, string $field, $value) - { + public static function assertFieldIsUnique( + string $table, + string $field, + $value, + ?int $id = null, + ?callable $query = null + ) { + if (!$query) { + Validator::make([$field => $value], [ + $field => Rule::unique($table, $field)->ignore($id), + ], [ + $field . '.unique' => trans('La valeur :value pour le champ :attribute est déjà utilisé', [ + 'attribute' => $field, + 'value' => $value + ]) + ])->validate(); + return; + } Validator::make([$field => $value], [ - $field => Rule::unique('users', $field)->ignore($id), + $field => Rule::unique($table)->where($query)->ignore($id), ], [ - $field . '.unique' => trans('La valeur :value pour le champ :attribute est déjà utilisé', [ - 'attribute' => $field, - 'value' => $value + $field . '.unique' => trans('La valeur pour le champ :attribute est déjà utilisé', [ + 'attribute' => $field ]) ])->validate(); } diff --git a/app/Models/News.php b/app/Models/News.php new file mode 100644 index 0000000..19038b8 --- /dev/null +++ b/app/Models/News.php @@ -0,0 +1,161 @@ + PublishedStatus::class + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'published_at' => 'datetime' + ]; + + /** + * Perform any actions required after the model boots. + * + * @return void + */ + protected static function booted() + { + static::creating(function (self $model) { + static::assertTitleIsUnique($model->title); + ToolboxHelper::assertNoInternalBoUrls('content', $model->content); + $model->slug = Str::slug($model->title); + $model->content = clean($model->content); + $model->picture = ToolboxHelper::storeImage($model, $model->picture); + if ($model->published->equals(PublishedStatus::published())) { + $model->published_at = now(); + } + }); + static::updating(function (self $model) { + static::assertTitleIsUnique($model->title, $model->id); + ToolboxHelper::assertNoInternalBoUrls('content', $model->content); + $model->slug = Str::slug($model->title); + $model->content = clean($model->content); + // * Update published_at it publish status changed + if ( + $model->published->value != $model->getOriginal('published') and + $model->published->equals(PublishedStatus::published()) + ) { + $model->published_at = now(); + } + // * Store new picture if changed + if ($model->picture != $model->getOriginal('picture')) { + $model->picture = ToolboxHelper::storeImage($model, $model->picture); + } + }); + static::updated(function (self $model) { + // * Remove unused inline uploaded images + if ($model->content != $model->getOriginal('content')) { + $updatedPicturesPath = collect( + ToolboxHelper::getCkEditorLocalUploadedFiles($model->content) + ); + collect(ToolboxHelper::getCkEditorLocalUploadedFiles($model->getOriginal('content'))) + ->map(function (string $originalPicturePath) use ($updatedPicturesPath) { + // * If a picture is not used anymore + if (!$updatedPicturesPath->contains($originalPicturePath)) { + if (File::exists(\public_path($originalPicturePath))) { + File::delete(\public_path($originalPicturePath)); + } + } + }); + } + if ($model->picture != $model->getOriginal('picture')) { + $model->picture = ToolboxHelper::removeOldImage($model, 'picture'); + } + }); + static::deleting(function (self $model) { + ToolboxHelper::removeImage($model, 'picture'); + }); + } + + /** + * Get the route key for the model. + * + * @return string + */ + public function getRouteKeyName(): string + { + return 'slug'; + } + + // * RELATIONSHIPS + + /** + * MorphToMany tags relation + * + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + */ + public function tags() + { + return $this->morphToMany(Tag::class, 'taggable'); + } + + // * METHODS + + /** + * Asserts using validation that the title is unique + * + * @param mixed $title + * @param integer|null $id + * @return void + * @throws \Illuminate\Validation\ValidationException If an actu title already exists. + */ + private static function assertTitleIsUnique($title, ?int $id = null) + { + $table = (new self())->getTable(); + ToolboxHelper::assertFieldIsUnique($table, 'title', $title, $id); + ToolboxHelper::assertFieldIsUnique($table, 'slug', Str::slug($title), $id); + } + + /** + * updated_at_date getter + * + * @return string + */ + public function getUpdatedAtDateAttribute(): string + { + return (new NiceDate())->get($this, 'published_at', $this->published_at, []); + } +} diff --git a/app/Models/Slider.php b/app/Models/Slider.php new file mode 100644 index 0000000..91b213e --- /dev/null +++ b/app/Models/Slider.php @@ -0,0 +1,108 @@ + SliderPosition::class, + 'type' => SliderType::class + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'title_color' => HtmlColor::class, + 'title_color_bg' => HtmlColor::class, + 'subtitle_color' => HtmlColor::class, + 'subtitle_color_bg' => HtmlColor::class, + 'link_color' => HtmlColor::class, + 'link_color_bg' => HtmlColor::class, + 'link_new_tab' => 'bool', + 'status' => 'bool' + ]; + + /** + * Perform any actions required after the model boots. + * + * @return void + */ + protected static function booted() + { + static::creating(function (self $model) { + ToolboxHelper::assertNoInternalBoUrls('link', $model->link); + $model->picture = ToolboxHelper::storeImage($model, $model->picture); + $model->order = self::whereType($model->type)->max('order') ?? 0; + }); + static::updating(function (self $model) { + ToolboxHelper::assertNoInternalBoUrls('link', $model->link); + if ($model->picture != $model->getOriginal('picture')) { + $model->picture = ToolboxHelper::storeImage($model, $model->picture); + } + }); + static::updated(function (self $model) { + if ($model->picture != $model->getOriginal('picture')) { + $model->picture = ToolboxHelper::removeOldImage($model, 'picture'); + } + }); + static::deleting(function (self $model) { + ToolboxHelper::removeImage($model, 'picture'); + }); + } + + // * METHODS + + /** + * updated_at_date getter + * + * @return string + */ + public function getUpdatedAtDateAttribute(): string + { + return (new NiceDate())->get($this, 'updated_at', $this->updated_at, []); + } +} diff --git a/app/Models/Tag.php b/app/Models/Tag.php new file mode 100644 index 0000000..483e0eb --- /dev/null +++ b/app/Models/Tag.php @@ -0,0 +1,74 @@ +name); + $tag->slug = Str::slug($tag->name); + }); + static::updating(function (Tag $tag) { + static::assertNameIsUnique($tag->name, $tag->id); + $tag->slug = Str::slug($tag->name); + }); + } + + // * RELATIONSHIPS + + /** + * MorphToMany actus relation + * + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + */ + public function actus() + { + return $this->morphedByMany(Actu::class, 'taggable'); + } + // * METHODS + + /** + * Asserts using validation that the name is unique + * + * @param mixed $name + * @param integer|null $id + * @return void + * @throws \Illuminate\Validation\ValidationException If a tag name already exists. + */ + private static function assertNameIsUnique($name, ?int $id = null) + { + $table = (new self())->getTable(); + ToolboxHelper::assertFieldIsUnique($table, 'name', $name, $id); + ToolboxHelper::assertFieldIsUnique($table, 'slug', Str::slug($name), $id); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 257aba7..5c60527 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -56,14 +56,14 @@ class User extends Authenticatable { // * EVENT CLOSURES. static::creating(function (self $user) { - static::assertEmailIsUnique($user->id, $user->email); + static::assertEmailIsUnique($user->email); if (Hash::needsRehash($user->password)) { $user->password = Hash::make($user->password); } $user->remember_token = Str::random(10); }); static::updating(function (self $user) { - static::assertEmailIsUnique($user->id, $user->email); + static::assertEmailIsUnique($user->email, $user->id); if (Hash::needsRehash($user->password)) { $user->password = Hash::make($user->password); } @@ -76,13 +76,13 @@ class User extends Authenticatable /** * Asserts using validation that the email is unique * - * @param mixed $id - * @param mixed $email + * @param mixed $email + * @param integer|null $id * @return void * @throws \Illuminate\Validation\ValidationException If user email as already used. */ - private static function assertEmailIsUnique($id, $email) + private static function assertEmailIsUnique($email, ?int $id = null) { - ToolboxHelper::assertFieldIsUnique($id, 'email', $email); + ToolboxHelper::assertFieldIsUnique((new self())->getTable(), 'email', $email, $id); } } diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 2f8dc4d..297985d 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -3,6 +3,8 @@ namespace App\Providers; use App\Lib\ToolboxHelper; +use App\Models\News; +use App\Models\Slider; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; @@ -40,6 +42,13 @@ class RouteServiceProvider extends ServiceProvider ->namespace($this->namespace) ->group(base_path('routes/web-fo.php')); }); + + Route::model('slider', Slider::class); + Route::model('news', News::class, function ($value) { + return News::where(function ($q) use ($value) { + $q->whereSlug($value)->orWhere('id', $value); + })->firstOrFail(); + }); } /** diff --git a/composer.json b/composer.json index 6e1006d..ecd5236 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,9 @@ "diglactic/laravel-breadcrumbs": "^7.2", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", + "kaishiyoku/laravel-color-validation": "^1.6", + "kwaadpepper/crud-policies": "^0.4.0", + "kwaadpepper/enum": "^2.1", "kwaadpepper/exception-handler": "^0.0.8", "laravel/framework": "^8.75", "laravel/sanctum": "^2.11", diff --git a/composer.lock b/composer.lock index e6f9f3b..be83cea 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d1d7f10ebf8699ef02c0888a44a347da", + "content-hash": "c0fcff9a31d927f0d0d72957d1268124", "packages": [ { "name": "asm89/stack-cors", @@ -268,6 +268,347 @@ }, "time": "2022-05-03T05:40:37+00:00" }, + { + "name": "doctrine/cache", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2022-05-20T20:07:39+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.3.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/9e7f76dd1cde81c62574fdffa5a9c655c847ad21", + "reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1.0", + "php": "^7.3 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2022.1", + "phpstan/phpstan": "1.6.3", + "phpstan/phpstan-strict-rules": "^1.2", + "phpunit/phpunit": "9.5.20", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^5.2|^6.0", + "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0", + "vimeo/psalm": "4.23.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.3.6" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-05-02T17:21:01+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + }, + "time": "2022-05-02T15:47:09+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, { "name": "doctrine/inflector", "version": "2.0.4", @@ -618,6 +959,71 @@ }, "time": "2020-06-29T00:56:53+00:00" }, + { + "name": "facade/flare-client-php", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/facade/flare-client-php.git", + "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed", + "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "~1.0", + "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", + "php": "^7.1|^8.0", + "symfony/http-foundation": "^3.3|^4.1|^5.0", + "symfony/mime": "^3.4|^4.0|^5.1", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpunit/phpunit": "^7.5.16", + "spatie/phpunit-snapshot-assertions": "^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Facade\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/facade/flare-client-php", + "keywords": [ + "exception", + "facade", + "flare", + "reporting" + ], + "support": { + "issues": "https://github.com/facade/flare-client-php/issues", + "source": "https://github.com/facade/flare-client-php/tree/1.9.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2021-09-13T12:16:46+00:00" + }, { "name": "facade/ignition-contracts", "version": "1.0.2", @@ -1135,6 +1541,192 @@ ], "time": "2022-03-20T21:55:58+00:00" }, + { + "name": "kaishiyoku/laravel-color-validation", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/Kaishiyoku/laravel-color-validation.git", + "reference": "10851fdae2237489fecadc7f846908e43814013c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kaishiyoku/laravel-color-validation/zipball/10851fdae2237489fecadc7f846908e43814013c", + "reference": "10851fdae2237489fecadc7f846908e43814013c", + "shasum": "" + }, + "require": { + "illuminate/support": "^6.0|^7.0|^8.0", + "illuminate/validation": "^6.0|^7.0|^8.0", + "php": "^7.2|^8.0", + "spatie/regex": "^1.4" + }, + "require-dev": { + "orchestra/testbench": "^3.7", + "phpunit/phpunit": "^7.5|8.*" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kaishiyoku\\Validation\\Color\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kaishiyoku\\": "src/Kaishiyoku" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kaishiyoku", + "email": "dev@andreas-wiedel.de" + } + ], + "description": "Laravel 5 color validation rules", + "homepage": "https://github.com/Kaishiyoku/laravel-color-validation", + "keywords": [ + "color", + "laravel", + "validator" + ], + "support": { + "issues": "https://github.com/Kaishiyoku/laravel-color-validation/issues", + "source": "https://github.com/Kaishiyoku/laravel-color-validation/tree/1.6.1" + }, + "time": "2022-01-10T08:24:23+00:00" + }, + { + "name": "kwaadpepper/crud-policies", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/Kwaadpepper/crud-policies.git", + "reference": "91616b1788fb581a15473f435fad2c0dbdd07f4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kwaadpepper/crud-policies/zipball/91616b1788fb581a15473f435fad2c0dbdd07f4c", + "reference": "91616b1788fb581a15473f435fad2c0dbdd07f4c", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^3.1", + "facade/flare-client-php": "^1.8", + "illuminate/support": "~8", + "kwaadpepper/enum": "^2.0", + "laravel/framework": "~8", + "mews/purifier": "^3.3" + }, + "require-dev": { + "orchestra/testbench": "^6.13", + "phpunit/phpunit": "~9.0", + "slevomat/coding-standard": "^7.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kwaadpepper\\CrudPolicies\\Providers\\CrudPoliciesServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kwaadpepper\\CrudPolicies\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Munsch", + "email": "github@jeremydev.ovh", + "homepage": "https://jeremydev.ovh" + } + ], + "description": "Makes CRUD easy, make policies easy and everyone happy", + "homepage": "https://github.com/kwaadpepper/crud-policies", + "keywords": [ + "Scafolding", + "crud", + "laravel", + "policies" + ], + "support": { + "issues": "https://github.com/Kwaadpepper/crud-policies/issues", + "source": "https://github.com/Kwaadpepper/crud-policies/tree/0.4.0" + }, + "time": "2022-05-31T15:35:05+00:00" + }, + { + "name": "kwaadpepper/enum", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/Kwaadpepper/enum.git", + "reference": "bbd08723895cad5a41bc0d57e565fe64fa13ca41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kwaadpepper/enum/zipball/bbd08723895cad5a41bc0d57e565fe64fa13ca41", + "reference": "bbd08723895cad5a41bc0d57e565fe64fa13ca41", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "orchestra/testbench": "^5", + "phpunit/php-code-coverage": "^9.2", + "phpunit/phpunit": "~9.0", + "slevomat/coding-standard": "^7.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kwaadpepper\\Enum\\EnumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kwaadpepper\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Munsch", + "email": "github@jeremydev.ovh", + "homepage": "https://jeremydev.ovh" + } + ], + "description": "Enums to use for any project", + "homepage": "https://github.com/kwaadpepper/enum", + "keywords": [ + "enum", + "laravel" + ], + "support": { + "issues": "https://github.com/Kwaadpepper/enum/issues", + "source": "https://github.com/Kwaadpepper/enum/tree/2.1.2" + }, + "time": "2021-11-18T16:52:08+00:00" + }, { "name": "kwaadpepper/exception-handler", "version": "0.0.8", @@ -2383,6 +2975,55 @@ }, "time": "2022-05-05T11:32:40+00:00" }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, { "name": "psr/container", "version": "1.1.1", @@ -3168,6 +3809,69 @@ ], "time": "2022-02-01T14:36:12+00:00" }, + { + "name": "spatie/regex", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/regex.git", + "reference": "1500ed75af430df3a32047494c43d79d45cf152b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/regex/zipball/1500ed75af430df3a32047494c43d79d45cf152b", + "reference": "1500ed75af430df3a32047494c43d79d45cf152b", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Regex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A sane interface for php's built in preg_* functions", + "homepage": "https://github.com/spatie/regex", + "keywords": [ + "expression", + "expressions", + "regex", + "regular", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/regex/issues", + "source": "https://github.com/spatie/regex/tree/1.4.2" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2020-11-03T23:05:25+00:00" + }, { "name": "squizlabs/php_codesniffer", "version": "3.6.2", @@ -5837,71 +6541,6 @@ ], "time": "2022-03-03T08:28:38+00:00" }, - { - "name": "facade/flare-client-php", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed", - "shasum": "" - }, - "require": { - "facade/ignition-contracts": "~1.0", - "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", - "php": "^7.1|^8.0", - "symfony/http-foundation": "^3.3|^4.1|^5.0", - "symfony/mime": "^3.4|^4.0|^5.1", - "symfony/var-dumper": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.5.16", - "spatie/phpunit-snapshot-assertions": "^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Facade\\FlareClient\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Send PHP errors to Flare", - "homepage": "https://github.com/facade/flare-client-php", - "keywords": [ - "exception", - "facade", - "flare", - "reporting" - ], - "support": { - "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.9.1" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2021-09-13T12:16:46+00:00" - }, { "name": "facade/ignition", "version": "2.17.5", diff --git a/config/purifier.php b/config/purifier.php index 29fd2ba..384793e 100644 --- a/config/purifier.php +++ b/config/purifier.php @@ -27,7 +27,7 @@ return [ 'default' => [ 'HTML.SafeIframe' => true, // * For iframes - 'URI.SafeIframeRegexp' => "%^(http://|https://|//)(vimeo.com)%", + 'URI.SafeIframeRegexp' => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/)%", 'HTML.Doctype' => 'HTML 4.01 Transitional', 'HTML.Allowed' => 'h1[style],h2[style],h3[style],h4[style],h5[style],h6[style],figure[class|style],oembed[url],div[style],b,strong,i,em,u,a[href|title|target|rel],ul[style],ol[style],dl[style],li,p[style],br,span[style|class],img[width|height|alt|src|style|class|title],iframe[src|width|height|class|frameborder|style],table[style|align|border|cellspacing|cellpadding|width],thead,tbody,th[colspan|align|valign|style],tr[align|valign|style],td[style|colspan|rowspan|scope|align|valign],hr,dl,dt', 'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align,list-style-type,float,width,height,vertical-align,border-color', @@ -35,10 +35,6 @@ return [ 'AutoFormat.RemoveEmpty' => false, 'AutoFormat.RemoveEmpty.RemoveNbsp' => false, ], - "youtube" => [ - "HTML.SafeIframe" => 'true', - "URI.SafeIframeRegexp" => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/)%", - ], 'custom_definition' => [ 'id' => 'html5-definitions', 'rev' => 1, diff --git a/database/factories/NewsFactory.php b/database/factories/NewsFactory.php new file mode 100644 index 0000000..67e8948 --- /dev/null +++ b/database/factories/NewsFactory.php @@ -0,0 +1,38 @@ +faker->unique()->words(rand(6, 12), true); + return [ + 'title' => $title, + 'slug' => \Illuminate\Support\Str::slug($title), + 'seo_title' => $this->faker->words(8, true), + 'seo_description' => $this->faker->words(25, true), + 'content' => $this->faker->text(1500), + 'picture' => '/assets/images/actus/actu_fake_image_300_300.jpg', + 'picture_title' => 'Image de champs', + 'picture_alt' => 'Image de champs', + 'published' => collect(PublishedStatus::toArray())->random() + ]; + } +} diff --git a/database/factories/SliderFactory.php b/database/factories/SliderFactory.php new file mode 100644 index 0000000..07320d9 --- /dev/null +++ b/database/factories/SliderFactory.php @@ -0,0 +1,54 @@ +faker->unique()->words(rand(2, 4), true); + $subtitle = $this->faker->unique()->words(rand(8, 10), true); + return [ + 'type' => Collect(SliderType::toArray())->random(), + 'position' => Collect(SliderPosition::toArray())->random(), + 'title' => $title, + 'title_color' => $this->faker->hexColor(), + 'title_color_bg' => $this->faker->hexColor(), + 'subtitle' => $subtitle, + 'subtitle_color' => $this->faker->hexColor(), + 'subtitle_color_bg' => $this->faker->hexColor(), + 'picture' => '/assets/images/sliders/slider_fake_1400_630.jpg', + 'link' => $this->faker->url, + 'link_title' => $this->faker->unique()->words(rand(2, 4), true), + 'link_color' => $this->faker->hexColor(), + 'link_color_bg' => $this->faker->hexColor(), + 'link_new_tab' => $this->faker->boolean, + 'status' => $this->faker->boolean(75), + 'order' => static::$i++ + ]; + } +} diff --git a/database/factories/TagFactory.php b/database/factories/TagFactory.php new file mode 100644 index 0000000..cb69c46 --- /dev/null +++ b/database/factories/TagFactory.php @@ -0,0 +1,28 @@ + $this->faker->unique()->words(rand(1, 2), true) + ]; + } +} diff --git a/database/migrations/2021_09_16_100041_create_taggables_table.php b/database/migrations/2021_09_16_100041_create_taggables_table.php new file mode 100644 index 0000000..77c5508 --- /dev/null +++ b/database/migrations/2021_09_16_100041_create_taggables_table.php @@ -0,0 +1,32 @@ +bigInteger('tag_id'); + $table->bigInteger('taggable_id'); + $table->string('taggable_type', 60); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('taggables'); + } +} diff --git a/database/migrations/2021_09_16_100042_create_tags_table.php b/database/migrations/2021_09_16_100042_create_tags_table.php new file mode 100644 index 0000000..79f97dd --- /dev/null +++ b/database/migrations/2021_09_16_100042_create_tags_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('slug')->unique(); + $table->string('name')->comment('Nom du tag qui sera unique.'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tags'); + } +} diff --git a/database/migrations/2021_09_16_101055_create_news_table.php b/database/migrations/2021_09_16_101055_create_news_table.php new file mode 100644 index 0000000..77c30ee --- /dev/null +++ b/database/migrations/2021_09_16_101055_create_news_table.php @@ -0,0 +1,50 @@ +id(); + + $table->string('title')->comment('Titre actualité'); + $table->string('slug')->unique(); + $table->string('seo_title') + ->comment('Utilisé pour la balise title de la page. De 53 à 60 chars recommandés.'); + $table->string('seo_description') + ->comment('Utilisé pour la balise méta description de la page. De 50 à 160 chars recommandés.'); + + $table->string('picture')->nullable()->comment('La vignette de l\'article 300x300 px.'); + $table->string('picture_title')->nullable()->comment('Attribut title de l\'image.'); + $table->string('picture_alt')->nullable()->comment('Attribut alt de l\'image.'); + + $table->mediumText('content')->comment('Contenu du WYSIWYG'); + + $table->unsignedTinyInteger('published')->comment('PublishedStatus enum'); + + $table->timestamp('published_at')->nullable() + ->comment('La date à laquelle l\'élément à été publié.'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('news'); + } +} diff --git a/database/migrations/2022_06_02_163424_create_sliders_table.php b/database/migrations/2022_06_02_163424_create_sliders_table.php new file mode 100644 index 0000000..1b2037e --- /dev/null +++ b/database/migrations/2022_06_02_163424_create_sliders_table.php @@ -0,0 +1,58 @@ +id(); + + $table->unsignedTinyInteger('type')->default(SliderType::home()) + ->comment('Enums\\SliderType type de slider'); + $table->unsignedTinyInteger('position')->default(SliderPosition::center()) + ->comment('Enums\\SliderPosition slider centrage du slider en responsive'); + + $table->string('title')->comment('Titre du slider'); + $table->unsignedInteger('title_color')->comment('Couleur du titre'); + $table->unsignedInteger('title_color_bg')->comment('Couleur de fond du titre'); + + $table->string('subtitle')->comment('Soustitre du slider'); + $table->unsignedInteger('subtitle_color')->comment('Couleur du soustitre'); + $table->unsignedInteger('subtitle_color_bg')->comment('Couleur de fond du soustitre'); + + $table->string('picture')->comment('Image du slider 1400px par 630px'); + + $table->string('link')->comment('Url du lien'); + $table->string('link_title')->comment('Titre du lien'); + $table->string('link_color')->comment('Couleur du lien'); + $table->string('link_color_bg')->comment('Couleur de fond du lien'); + $table->string('link_new_tab')->comment('Ouvrir le lien dans un nouvel onglet ?'); + + $table->boolean('status')->comment('Le slider est-il visible ?'); + $table->unsignedSmallInteger('order')->comment('Ordre de visibilité du slider'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('sliders'); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 57b73b5..0d7afa5 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -13,6 +13,9 @@ class DatabaseSeeder extends Seeder */ public function run() { - // \App\Models\User::factory(10)->create(); + $this->call([ + NewsSeeder::class, + SliderSeeder::class + ]); } } diff --git a/database/seeders/NewsSeeder.php b/database/seeders/NewsSeeder.php new file mode 100644 index 0000000..88f70b5 --- /dev/null +++ b/database/seeders/NewsSeeder.php @@ -0,0 +1,34 @@ +truncate(); + $this->call([ + TagSeeder::class + ]); + News::truncate(); + $tags = Tag::query()->get(); + News::factory(119)->create() + ->each(function ($model) use ($tags) { + $offset = rand(0, 5); + $length = rand(1, 4); + $model->tags() + ->saveMany($tags->slice($offset, $length)); + $model->save(); + }); + } +} diff --git a/database/seeders/SliderSeeder.php b/database/seeders/SliderSeeder.php new file mode 100644 index 0000000..113a07b --- /dev/null +++ b/database/seeders/SliderSeeder.php @@ -0,0 +1,20 @@ +create(); + } +} diff --git a/database/seeders/TagSeeder.php b/database/seeders/TagSeeder.php new file mode 100644 index 0000000..b3806ed --- /dev/null +++ b/database/seeders/TagSeeder.php @@ -0,0 +1,20 @@ +create(); + } +} diff --git a/package-lock.json b/package-lock.json index 9a073ee..281186e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,11 @@ "devDependencies": { "@fortawesome/fontawesome-free": "^6.1.1", "@popperjs/core": "^2.11.5", + "@sipec/vue3-tags-input": "^3.0.4", "axios": "^0.21", "bootstrap": "^5.1.3", "clean-webpack-plugin": "^4.0.0", + "cropperjs": "^1.5.12", "laravel-mix": "^6.0.6", "laravel-mix-clean": "^0.1.0", "laravel-mix-polyfill": "^3.0.1", @@ -1888,6 +1890,18 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@sipec/vue3-tags-input": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@sipec/vue3-tags-input/-/vue3-tags-input-3.0.4.tgz", + "integrity": "sha512-zE4OiFkWvlvvGT3FZQ9hRrvJW935VPW0fe4K03SxM5Q/UQZMqph763UHXTuyK1orWNQMTbDx9tKPLIMZTiDXLA==", + "dev": true, + "dependencies": { + "vue": "^3.0.0-beta.1" + }, + "peerDependencies": { + "vue": "3.x" + } + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -3691,6 +3705,12 @@ "sha.js": "^2.4.8" } }, + "node_modules/cropperjs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz", + "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==", + "dev": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10789,6 +10809,15 @@ "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", "dev": true }, + "@sipec/vue3-tags-input": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@sipec/vue3-tags-input/-/vue3-tags-input-3.0.4.tgz", + "integrity": "sha512-zE4OiFkWvlvvGT3FZQ9hRrvJW935VPW0fe4K03SxM5Q/UQZMqph763UHXTuyK1orWNQMTbDx9tKPLIMZTiDXLA==", + "dev": true, + "requires": { + "vue": "^3.0.0-beta.1" + } + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -12314,6 +12343,12 @@ "sha.js": "^2.4.8" } }, + "cropperjs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz", + "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==", + "dev": true + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", diff --git a/package.json b/package.json index 7f48ff4..0f155cc 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,11 @@ "devDependencies": { "@fortawesome/fontawesome-free": "^6.1.1", "@popperjs/core": "^2.11.5", + "@sipec/vue3-tags-input": "^3.0.4", "axios": "^0.21", "bootstrap": "^5.1.3", "clean-webpack-plugin": "^4.0.0", + "cropperjs": "^1.5.12", "laravel-mix": "^6.0.6", "laravel-mix-clean": "^0.1.0", "laravel-mix-polyfill": "^3.0.1", diff --git a/resources/assets/fonts/museo/museo300.eot b/resources/assets/fonts/museo/museo300.eot new file mode 100644 index 0000000000000000000000000000000000000000..c3ca57b80ffc08314b1b7eed7f6a9720026a4329 GIT binary patch literal 26602 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo/museo300.ttf b/resources/assets/fonts/museo/museo300.ttf new file mode 100644 index 0000000000000000000000000000000000000000..80ba4a75a4c2f33fb563db4856a3d27e1e32efef GIT binary patch literal 56616 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 b*ysHpFyhn@p`H%9Ohwd}!Gx-RjIsX*gU824 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo/museo300.woff b/resources/assets/fonts/museo/museo300.woff new file mode 100644 index 0000000000000000000000000000000000000000..3eab071af110829c8869a0fe4e4ff4dc6a13111c GIT binary patch literal 29656 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo/museo500.eot b/resources/assets/fonts/museo/museo500.eot new file mode 100644 index 0000000000000000000000000000000000000000..0e8ba5705d7953251043ae5bc64986d97ef1b736 GIT binary patch literal 27011 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo/museo500.ttf b/resources/assets/fonts/museo/museo500.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d965e00b7b0e760c70c3f9bf94f50c32a68a44ab GIT binary patch literal 57104 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo/museo500.woff b/resources/assets/fonts/museo/museo500.woff new file mode 100644 index 0000000000000000000000000000000000000000..430b94583ca29bde30e823c39e8ec5b8ba533d0f GIT binary patch literal 30112 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo_sans/museosans-100-webfont.ttf b/resources/assets/fonts/museo_sans/museosans-100-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff7b42740624a9183fa3d9d6f51d3ad49c5c7d67 GIT binary patch literal 50792 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

    o@gMCSKz>@wahr`36BxQXyXL|> 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-300-webfont.svg b/resources/assets/fonts/museo_sans/museosans-300-webfont.svg new file mode 100644 index 0000000..767cc0e --- /dev/null +++ b/resources/assets/fonts/museo_sans/museosans-300-webfont.svg @@ -0,0 +1,853 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo_sans/museosans-300-webfont.ttf b/resources/assets/fonts/museo_sans/museosans-300-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fdbb3aaf93d20a418d01307e9bb6ce1576e3c711 GIT binary patch literal 50600 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-300-webfont.woff b/resources/assets/fonts/museo_sans/museosans-300-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..73b3e17e021e0afdf7c6f730307dcc1ac184495c GIT binary patch literal 26616 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 Qyh&TL0003}GQXAp0Ph;uegFUf literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-500-webfont.eot b/resources/assets/fonts/museo_sans/museosans-500-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..cc1b54856f81a041f744c2a62d544fcf153dfcbb GIT binary patch literal 23374 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo_sans/museosans-500-webfont.ttf b/resources/assets/fonts/museo_sans/museosans-500-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..87406c208f3b9c4c2dd542166ecdf2ff23dc93b2 GIT binary patch literal 50688 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 z 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-700-webfont.svg b/resources/assets/fonts/museo_sans/museosans-700-webfont.svg new file mode 100644 index 0000000..7eec89f --- /dev/null +++ b/resources/assets/fonts/museo_sans/museosans-700-webfont.svg @@ -0,0 +1,854 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/fonts/museo_sans/museosans-700-webfont.ttf b/resources/assets/fonts/museo_sans/museosans-700-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fc4602670eb0f40c092e6d40a66fcae66e85ddeb GIT binary patch literal 50276 zcmc${349dg{Xag>% z7AdvVQmd5CY*wVy15c#r*IFx7ts`CvaDRRlr$?br#y(3VMeUnU6NJMjFB*$Zbb{_XC&9>VpX@Xp!U zE0=p+uUYRGguG92zk1%{YZgw327f9D{xm@l=Uy{&*~UEM7Wyv3L5&PC+EdY*L=MRq87>NzY6XulTCkubAnX=O&|_!k=Yps63n3lHjLzdi zR_6(!Z|7;DwsX5M8RzuGXL#a8JnIu)Y4g@9$zz_UnFFs zS2<|6FG^}LClk>7shw|QOqm!Z&FC{iHhx!jMDSaSc4WNQj2cc0lYzBA7t(q8DU|O( z8_x*iQ8p3qs0U;$fKUoXmW`3-prt&)!Qs(>nkS&u8G;XQOu-vAywQXnJ_E?^La%qD z#3(eNhRL06c#fd#N2x{l1$rtA+fn)q+S!F#cMAgq1A1S8Hm$;XwDF8kh0+?7)^v^+ z`gNW`&kqQ7fLi~~&3L<}b2Um%pyUgbyv$1$q2xW3e1?)I(T)WpOF>WaaLh*yWf(&Z zTB=1q>(DzIUw>f``dGxrL2XSzTYw`*R)^aAcRr6Xl%b@i^Pbq9Gq`gWcTS?set=;e zYVMEk%FbnYwx)9$-hLgW9|OWCapxXk0G>CZ2ggwp#?<))?tF|pr*LOi*I3%{&X*|N z2N>3L?m;b7ZyO+xf~WKGbWP_Dy!koadKsm9$rhB*c&V;K{LKgX)i3ZiJ@WNK^V;%t2?mz^(np6EOc=>A`QJQ(4B?E`$n2e>PA-ru>o^Jr%jegC}kqyM)C0D(5t*w%Rx zfA;{Ng-*^la6HhtuQP)0NzCJS_y9Zcq5gF~i2fcyU8m66d*7j|i@bu>By{fT+|hZa z^8QBHB9D`95gvclZ#ju^uk?5U%LZ093vc-e7H^X3X3LwRgVG@6Eq> z%jb86o{fJ{8$r3NM!@4Uf)9PLqGO-$2np)%8Q>YPr1z)uZ4M=1OLxn?pXhl7-Xp~O z)Lq_l6u5ta?tljJ-_AvV6Xx|lS)pIollWYHH%zAfT>JwX@&#W%r?G-KzF+*g?$X{P z?k?|rhA|(Dt@o4Q09_xHU)owU5-icT&-7ZlD!>USA0XWM6uz;#V$iXm_Rld#iM^m0 z)ZgWEy}5HMR#gP}a2zs{(D@jsK9@N=32Rq(euO!j)3dEhJ?Fi>$a>=CM4!IYapT+T z>j__A&&PQ8;_IS|4s{;+_F7R3))C~B3qQW|i{cRPY&!qWw_Rht(5v{Yod5LKm7o7y z?`wT-F>9ca@jKl$aViR`iJ89$AK`QgIMNfQ@j5Q`$mw#|41E1tkd*{ba{b8)NFt{o zClIHDrUW?v+6K7Ddj5M4Bqag7>Osu!EuB+3mvt`a+==IkI%joGhlJ+G8y?8CQ>e9W zn$wL3RNni8@xR}--Z;n5pGJ8X)Z%Z%?hw?D$I5Diri;Nyhcje8d^+F7+Bu669_#!# zPD?>S--a~V>qFRx*&^;n5U^gX*HqT2Kq91iKk8KQdmJnM1bEUHd~F|vbkM~SdeV(sVq7pOkmdlKI`eTegtQzR$!d=}5pTztUS=`l!Z1F+((UAWdn^Z~O3 z3Z}~zIBth5(1zYW5AOXkpmIp?12S77dE^3yF1-DG?-ukc9gk3#jv+lB>0D2+hZfUg zrN?ihCl@>)zlUQH$CVxh|J_r}cMmRoVcp-@w+kN^fZy9NN=ShE2iWr^td2+5|91bsZpBhd#IL(s{5tr5+r0G}!?#>e8=z4%Z?xh#HbQ^@Km7cc z<}2RAviOO9gpLU_8=dnrz3{*HYeT(V`2F9gwu?r`q|5(Coq8STQ^M|=iT-`pS%~RJ zL^m%PPf82!2f45J=R&N4j`$rve13aT_TDtC zXJ7u4CN88$@p?hIz5q`3YV+bXbGybtNCS8SRux;k2L80?;_m?0VjMnxpD1PgJbom6 zNBJ?((DUpMu%7n%T&k>2FF|%7+XKliWPddnCl^zv&Te)IWR z9;BCi{1x!kS;)&srYVLEtq-hrrLmGrJ)B4B@fz9s;(uoJ-yHj+{?i}iNc2AbC*aHz z`^)53yd3xt;(tP{|Gj%dy^sIFrP6h?56097t;KjvSNX+GB+NnuZiHgL7kh?u0zc-> z0Dp(8>j63|=2v8g%;+lbed2}vRR5IVz+kaA<4b?~QR3(11)*#DS^+Cqb}`pBz{t*D z&WqKNg<}EwQUETh&m-Lkz>1%ZvOc(z4VWci{2oBp0X%W?H{0lxURqUnwdgq*^0%>gnqb_tlt9- zIiEfd)TmbaB|6~+p7zB%4X}ZagUx$}Fke_K+$h{8+$G${X%NGekw5=r?D$6P_+jjL zN{u5&&Wjx%iyeQXA4O~II6ijV7CS1uXH0wx$8vnhJD3Pe%|I{zj9C~C`}}A8 zI0`TladjNOqwpldJqf?5_}cLG^8PZsOP)w4aE$zj@iQHER$LP!yD$?m69F<(??G4QGHH$LC}P8y)6*Iy1w zRsF4Rb-$SbY7%d&5;)NRlHTopKMONNx$!x|ZK$u)G>l7ls@k5}(Q1J+sde^gI* zU0&cz@BTD#zs@&7p5DILm+&bKUn}mP|Ng~rji_}T!>B$HR93>;Sqe`W!<)ek}Y%hzgx-0=rRsL;Qm` z(d+VNcyqjY-a>ECTj#ynyUUmNsc=q)m!3Y!c>4*w^HX6D8y|Z|@Y=j--mKU=wO#Kp z^6Yp13)Y}lV3XP3`BLY?&fy*H9Vb40?bDY&eg4y5eY*G4XFvVt!o({k zUD+~u%G7CBO}~1^Okv#}ciwg1!;e4l!yo;4$CEps`svS}-u2AScPkOK_1Wkz_wM_Z zuz1egYd&1D{f29gEuSx}e^gi^fb{dvf}4b&Ja_Bt>*?aUn?IVh=JtnP+W*`4j{N?2 z@9z;_d|CMP<4=zNNmzOK17YpP+cs^u`<{C@Kk%S%|M#~(CcN_MBD}PUR};g7;~4Bg z;T`alkA)M$N#RQ&!ek~3r%-;9nVF3_gtvwFS%&bs&}e`Zp$Mgl;2f!p8rPzXSUFh{ z{DaaIW1wZgWL|d5Wbf}3<}6PuQ&_3@L&Xv(Q^eAd<6AECPxh55Qt7p6UZr7Ni%)5o zT&BpS^s3MAySe4#%(o|J;<=WN%)d|0^!pS;pham~Iho&>JQ?*FN|UEeDN~H4Y96}_ zt$Xj9HZ4;TP>rcn&F4i8T}26{4!gHDSf-duy|+*!uc3agA{7kxdlk8Ggd&V<*)(_4 zOfQ}E%k=psXKvzG<6D#lJc;p9vr5BUy1+YD-qL`>X+B@3_wXiw z0WS?l->!)D4gJGoDW!hz;aKB-Z_CIDnLdS0ZrOwZ4fk*Idp8Z=x^xi)t69?uW0?0RvZ;1$AVd(535$0t$DBjsh`rItu zQ`G1#RZt4J;D;*#;MAZ9DIjul#9GG?^*k1#3^+kN%|pWW9edbND^m^R;V#o1>X<+rf}MBu%^j(`?Yy|qF_h6Jn{ zlG-A;6<|t2P>~L+qP?xPza(1&iV#*!wl;-@R5J?*s$j4?6tT8%h0`bbrK+&|AhWvu zWNA0-K6hH1_9aE(ER(av)rNz-{(6C8V*-jCj$(Bs$^pd?ipVJ84GD*%l3j42RI;fu z3q(!)inoLo>|y@5Z2yLr_G$$tKd%~)0X={~iIl1|sP*h+UhU7r2XwS-~TLNymJZYJ@#S~y##^GqX zUC2Vm(ru~<9ZS%!5^QQJuH5>S+omSr%EGTy9}6he8T$rFr`{Iafy8}-Z2tm33nVHT zwpKC2DK<)?~K@kJo!`2H3CXU^#%?>1^D2ERM_3zi<%POvrmSnl&|t2U3m z&uho_X=~XU`l1~3#)N5|6>^2~7Q_Z^6C!n(HKhjlmDm=kGbILE8|rG!frtkasAPoI zB6FKkWQ(S8ykSa1P;nhr`#9Q^J~p)$z{WK8)3GN#r1Z0?i7cR2I@;91IQDS?Or$h;aoDxtt8T@erAu+=ch4y!HcxA|?>=C3SC#mtUQsl(G8C#AKIz7$ zAN(=v<>!t5KE>ALBL;hEUgoS(MT0}ZzSYC8{NC^%{Wa}{7tG~VA<||I!kEqzM%i!x zGGQ__F+Vh_9YO>SyFkQ8OS#C>7D=KtAmK+%wX{V`GksEWKrO|oJ%OLvEp1FG4=PxI zRvm;^o9YBEgVoV;G}zQMT;=Om`8Kr#S2_Gj4FbGQDBq8t9a!kVtqF|RS# z8*gZzzZRCKeR1x|tHv%JH*V=zapJ3+H@)`Srp>P&7()ePj`c4*e^;!4(~N1ICkz3=tq-D*wh9p#9|CGQ=$@6}cQUlI5C16w1yoc>-BJeOVsHWi%u&EV5$DEK_ zkldztLy>|C!sUWIb3m;DumXUGBGsxDX?91e)lpmyL=)6-IY&M*htbZ2Z^vwyzMY>uilz`^If-ZUkH$4y@Hmr8cxegbV?p0<4ln`_UPn0M#WVFID}5O zm%XM_Y^q~@=Kyh{;Ux49r@)jX4oZW)O||Gx+niz1Zgctz#r3B?I&tEo<+q71vR|;Z z+V`~aS|9Do7uj2SUy3>hu+u&35f7`Tu6jHUyG;r^>@Lw%gj!DBw)|DLo4t$g9oic0 z@_%cUFQP9s;{DPs;2UH&;|qi-jv!$^r+^+QEY)}nZjY(RZz`&(s%bjo{M>nFgm!k< zukMlW`PI{M$;We;MLRX;qapIIH~sOCcfAGfNn@M?xpJ5MppXQOo3BMhfUp!+nW2q1 z9uo*7m}CauvjmmI!-^P+nsqKBha%=gx@|Ur_$8X@G*JNVBqpp8&4<1}!H!4?B1K2$(Yq>>+UQF!s{+=&Z##j5Pl)r`k>h9>bBmviXiS3L zGlHH3R3<}`h@HgRSEb}O{?$7`!pVA)wzYQN_nOY9rCh@q)G-?P!F#Mq_BN6U7?ux2 z5$ZYd*8YF{dss+9VbBI3c+uf$fUH4^bQFf@kw^nlRRhzXx|{A-eN z%vaPYQCQJ=LVgf5zzO^O2q6NO7f2*%fRSiGdJ+bm5meY=)rF<*vZ)@lpX6*)Gja5Q zrL-DTYzDr3(^GN95|ad6^{sH&21=nE$!3-E%0;KmYqxn<_(reX^OrrV#`t_=R^epj z=)a55NyRIf{Neufqerjb|Do3Y(aRe~kKXVyy9zfD5RWbbrY+FJP5?)(uoXn0v;|ZX z$dCjqLMNG$5>yfn6F4JM0^y2e0NNx-bedoU+St%nDFH-<)e=%Ojyyo38ox1xwXlUJ zSbh6ltX`Du!R7KeHvL@H@#9j_Y=3YO+J>?v*8n~x(7bdCSs=AVG6*_Ja$BptI3odF z=tFB*ae&~t+LQvDnt&#=U2TzU-l6P5^df+w0s-XTUJS;YU~e@fW#njp2~&c3BN3;C|t}kvHCd|BWMWy}Iw@`m)5N z*QKOB6%($yeb}4K-n{JYyO)n(;#2MYlh-cz@I?04);6Vvs93U(xE0E?oeI0*F$P346q_LkPTv0M!ydWhUG{YiRcG%6g6)!x*CTstX}$% za@U-CmY80dYz<7(#z;45+eY8LWN6cEudTdt$HIxurwD5txtz5fLMa3Q1-Wd`yOXo6x2h z!N*dAiutf&38@L-RKO^x`Z2VLnEBkn4h>AlkQ2-_cMckI5~h)4DbcRjiIZ0`P$ais zS1~H92Qk0V#A?N5toDT$w03O~yWb#525*t3uvI&xhufe0NZZI(eZ*ezj!I1(Q=

    -e9WFQZE!jlN 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-700-webfont.woff b/resources/assets/fonts/museo_sans/museosans-700-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e312af729e90d983f61cc1fd7a5a98f8cbfe3b18 GIT binary patch literal 26716 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 LUN~{_Yo7oA8H%@h literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-900-webfont.svg b/resources/assets/fonts/museo_sans/museosans-900-webfont.svg new file mode 100644 index 0000000000000000000000000000000000000000..94152a40f08fa81f177bf86fe026720b94934a16 GIT binary patch literal 65240 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 z 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 wP`DB>Dk@c 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-900-webfont.woff b/resources/assets/fonts/museo_sans/museosans-900-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..894ee6bba3086786f1f1f3b57d97be693f3d70ed GIT binary patch literal 29268 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
    in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of
    .\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\n\t/*\n\t * Make sure the selected inline image always stays on top of its siblings.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t */\n\t& .image.ck-widget_selected {\n\t\tz-index: 1;\n\t}\n\n\t& .image-inline.ck-widget_selected {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the native browser selection style is not displayed.\n\t\t * Inline image widgets have their own styles for the selected state and\n\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t */\n\t\t& ::selection {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},1043:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAKA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `
    ` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\n\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\n\tFortunately, since we control the width, there is no risk that the image will look bad.\n\t*/\n\tdisplay: block;\n\tbox-sizing: border-box;\n\n\t& img {\n\t\t/* For resized images it is the `
    ` element that determines the image width. */\n\t\twidth: 100%;\n\t}\n\n\t& > figcaption {\n\t\t/* The `
    ` element uses `display:block`, so `
    ` also has to. */\n\t\tdisplay: block;\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/* The resized inline image nested in the table should respect its parent size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline.image_resized img {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-right: var(--ck-spacing-standard);\n}\n\n[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\n\twidth: 4em;\n}\n'],sourceRoot:""}]);const a=s},4622:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9899:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFA0BD,CAtBC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},9825:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},5870:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBACD,CAID,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},6831:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},399:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/link.css"],names:[],mappings:"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Class added to span element surrounding currently selected link. */\n.ck .ck-link_selected {\n\tbackground: var(--ck-color-link-selected-background);\n\n\t/* Give linked inline images some outline to let the user know they are also part of the link. */\n\t& span.image-inline {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\n\t}\n}\n\n/*\n * Classes used by the "fake visual selection" displayed in the content when an input\n * in the link UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-link-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-link-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n'],sourceRoot:""}]);const a=s},9465:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css"],names:[],mappings:"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCKA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDvDD,oCC2DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CAGD,gJAME,aAEF,CD1ED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-link-actions__preview {\n\t\tdisplay: inline-block;\n\n\t\t& .ck-button__label {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-link-actions__preview {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\t& .ck-button.ck-link-actions__preview {\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\t& .ck-button__label {\n\t\t\tpadding: 0 var(--ck-spacing-medium);\n\t\t\tcolor: var(--ck-color-link-default);\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n\n\t\t\t/* Match the box model of the link editor form\'s input so the balloon\n\t\t\tdoes not change width when moving between actions and the form. */\n\t\t\tmax-width: var(--ck-input-width);\n\t\t\tmin-width: 3em;\n\t\t\ttext-align: center;\n\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t&,\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t& .ck-button__label {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-button:not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-button:not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\t& .ck-button.ck-link-actions__preview {\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\n\n\t\t\t& .ck-button__label {\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},4827:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical .ck-button{border:0;border-radius:0;border-top:1px solid var(--ck-color-base-border);margin:0;padding:var(--ck-spacing-standard);width:50%}[dir=ltr] .ck.ck-link-form_layout-vertical .ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{border:0;padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css"],names:[],mappings:"AAOA,iBACC,YAiBD,CAfC,2BACC,YACD,CCNA,oCDCD,iBAQE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CCfD,CDuBD,iCACC,aAYD,CALE,wHAEC,mCACD,CE/BF,iCAEC,+BAAgC,CADhC,SA+CD,CA5CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,QAAS,CADT,eAAgB,CAEhB,gDAAiD,CAHjD,QAAS,CADT,kCAAmC,CAKnC,SAaD,CAnBA,4GAaE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,yDAWD,CATC,wEACC,QAAS,CACT,SAAU,CACV,UAKD,CAHC,8EACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-form {\n\tdisplay: flex;\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tdisplay: block;\n\n\t/*\n\t * Whether the form is in the responsive mode or not, if there are decorator buttons\n\t * keep the top margin of action buttons medium.\n\t */\n\t& .ck-button {\n\t\t&.ck-button-save,\n\t\t&.ck-button-cancel {\n\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tpadding: 0;\n\tmin-width: var(--ck-input-width);\n\n\t& .ck-labeled-field-view {\n\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\n\n\t\t& .ck-input-text {\n\t\t\tmin-width: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t& .ck-button {\n\t\tpadding: var(--ck-spacing-standard);\n\t\tmargin: 0;\n\t\tborder-radius: 0;\n\t\tborder: 0;\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\twidth: 50%;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: 0;\n\n\t\t\t&:last-of-type {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\n\t& .ck.ck-list {\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\n\t\t& .ck-button.ck-switchbutton {\n\t\t\tborder: 0;\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},3858:(t,e,n)=>{n.d(e,{Z:()=>h});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r),a=n(1667),l=n.n(a),c=new URL(n(8491),n.b),d=s()(i()),u=l()(c);d.push([t.id,".ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{display:block;position:absolute}:root{--ck-link-image-indicator-icon-size:20;--ck-link-image-indicator-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{background-color:rgba(0,0,0,.4);background-image:url("+u+');background-position:50%;background-repeat:no-repeat;background-size:14px;border-radius:100%;content:"";height:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size));overflow:hidden;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);width:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size))}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkimage.css"],names:[],mappings:"AASE,+FACC,aAAc,CACd,iBACD,CCPF,MAEC,sCAAuC,CACvC,oEACD,CAME,+FAUC,+BAAqC,CACrC,wDAA+3B,CAG/3B,uBAA2B,CAD3B,2BAA4B,CAD5B,oBAAqB,CAGrB,kBAAmB,CAdnB,UAAW,CAsBX,oGAAuG,CAFvG,eAAgB,CAbhB,sCAAwC,CADxC,oCAAsC,CAetC,mGAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Match the icon size with the upload indicator brought by the image upload feature. */\n\t--ck-link-image-indicator-icon-size: 20;\n\t--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tcontent: "";\n\n\t\t\t/*\n\t\t\t * Smaller images should have the icon closer to the border.\n\t\t\t * Match the icon position with the upload indicator brought by the image upload feature.\n\t\t\t */\n\t\t\ttop: min(var(--ck-spacing-medium), 6%);\n\t\t\tright: min(var(--ck-spacing-medium), 6%);\n\n\t\t\tbackground-color: hsla(0, 0%, 0%, .4);\n\t\t\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+");\n\t\t\tbackground-size: 14px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tborder-radius: 100%;\n\n\t\t\t/*\n\t\t\t* Use CSS math to simulate container queries.\n\t\t\t* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t\t\t*/\n\t\t\toverflow: hidden;\n\t\t\twidth: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t\theight: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const h=d},3195:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:0 var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/collapsible.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/collapsible.css"],names:[],mappings:"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAFhB,eAAiB,CACjB,wDAAyD,CAFzD,UAmBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,yDACD,CAGC,mEACC,wBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-collapsible.ck-collapsible_collapsed {\n\t& > .ck-collapsible__children {\n\t\tdisplay: none;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-collapsible {\n\t& > .ck.ck-button {\n\t\twidth: 100%;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\n\t\tborder-radius: 0;\n\n\t\t&:focus {\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t&:active, &:not(:focus), &:hover:not(:focus) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t& > .ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\twidth: var(--ck-collapsible-arrow-size);\n\t\t}\n\t}\n\n\t& > .ck-collapsible__children {\n\t\tpadding: 0 var(--ck-spacing-large) var(--ck-spacing-large);\n\t}\n\n\t&.ck-collapsible_collapsed {\n\t\t& > .ck.ck-button .ck-icon {\n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7133:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css"],names:[],mappings:"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-properties {\n\t/* When there are no list styles and there is no collapsible. */\n\t&.ck-list-properties_without-styles {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * {\n\t\t\tmin-width: 14em;\n\n\t\t\t& + * {\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * When the numbered list property fields (start at, reversed) should be displayed,\n\t * more horizontal space is needed. Reconfigure the style grid to create that space.\n\t */\n\t&.ck-list-properties_with-numbered-properties {\n\t\t& > .ck-list-styles-list {\n\t\t\tgrid-template-columns: repeat( 4, auto );\n\t\t}\n\n\t\t/* When list styles are rendered and property fields are in a collapsible. */\n\t\t& > .ck-collapsible {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t& > .ck-collapsible__children {\n\t\t\t\t& > * {\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\t& + * {\n\t\t\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-numbered-list-properties__start-index .ck-input {\n\t\tmin-width: auto;\n\t\twidth: 100%;\n\t}\n\n\t& .ck.ck-numbered-list-properties__reversed-order {\n\t\tbackground: transparent;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\n\n\t\t&:active, &:hover {\n\t\t\tbox-shadow: none;\n\t\t\tborder-color: transparent;\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4553:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css"],names:[],mappings:"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-styles-list {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-list-style-button-size: 44px;\n}\n\n.ck.ck-list-styles-list {\n\tgrid-template-columns: repeat( 3, auto );\n\trow-gap: var(--ck-spacing-medium);\n\tcolumn-gap: var(--ck-spacing-medium);\n\tpadding: var(--ck-spacing-large);\n\n\t& .ck-button {\n\t\t/* Make the button look like a thumbnail (the icon "takes it all"). */\n\t\twidth: var(--ck-list-style-button-size);\n\t\theight: var(--ck-list-style-button-size);\n\t\tpadding: 0;\n\n\t\t/*\n\t\t * Buttons are aligned by the grid so disable default button margins to not collide with the\n\t\t * gaps in the grid.\n\t\t */\n\t\tmargin: 0;\n\n\t\t/*\n\t\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\n\t\t * from the button dimensions and, as a result, decrease the size of the icon\n\t\t * (which becomes blurry as it scales down).\n\t\t */\n\t\tbox-sizing: content-box;\n\n\t\t& .ck-icon {\n\t\t\twidth: var(--ck-list-style-button-size);\n\t\t\theight: var(--ck-list-style-button-size);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5777:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .media{clear:both;display:block;margin:.9em 0;min-width:15em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css"],names:[],mappings:"AAKA,mBAGC,UAAW,CASX,aAAc,CAJd,aAAe,CAQf,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .media {\n\t/* Don\'t allow floated content overlap the media.\n\thttps://github.com/ckeditor/ckeditor5-media-embed/issues/53 */\n\tclear: both;\n\n\t/* Make sure there is some space between the content and the media. */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em 0;\n\n\t/* Make sure media is not overriden with Bootstrap default `flex` value.\n\tSee: https://github.com/ckeditor/ckeditor5/issues/1373. */\n\tdisplay: block;\n\n\t/* Give the media some minimal width in the content to prevent them\n\tfrom being "squashed" in tight spaces, e.g. in table cells (#44) */\n\tmin-width: 15em;\n}\n'],sourceRoot:""}]);const a=s},952:(t,e,n)=>{n.d(e,{Z:()=>b});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r),a=n(1667),l=n.n(a),c=new URL(n(4493),n.b),d=new URL(n(2739),n.b),u=new URL(n(6631),n.b),h=new URL(n(7511),n.b),m=s()(i()),g=l()(c),p=l()(d),f=l()(u),k=l()(h);m.push([t.id,'.ck-media__wrapper .ck-media__placeholder{align-items:center;display:flex;flex-direction:column}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:block}@media (hover:none){.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:none}}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip{opacity:1;visibility:visible}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{display:block;overflow:hidden}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{background:var(--ck-color-base-foreground);padding:calc(var(--ck-spacing-standard)*3)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{background-position:50%;background-size:cover;height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);min-width:var(--ck-media-embed-placeholder-icon-size)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{height:100%;width:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);font-style:italic;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-height:380px;max-width:300px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url('+g+')}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+p+')}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+f+')}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url('+k+')}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-media-embed/mediaembedediting.css"],names:[],mappings:"AAQC,0CAGC,kBAAmB,CAFnB,YAAa,CACb,qBAoBD,CCpBA,kFACC,aAqBD,CAHC,oBAnBD,kFAoBE,YAEF,CADC,CDlBA,sEAIC,cAAe,CAEf,iBAUD,CCoBD,wFAEC,SAAU,CADV,kBAED,CD3BE,wGAEC,aAAc,CADd,eAED,CAWD,6kBACC,YACD,CAYF,2LACC,mBACD,CElDA,MACC,0CAA2C,CAE3C,mDAA4D,CAC5D,2EACD,CAEA,mBACC,aA+FD,CA7FC,0CAEC,0CAA2C,CAD3C,0CA6BD,CA1BC,uEAIC,uBAA2B,CAC3B,qBAAsB,CAHtB,kDAAmD,CACnD,qCAAsC,CAFtC,qDAUD,CAJC,gFAEC,WAAY,CADZ,UAED,CAGD,4EACC,sDAAuD,CAGvD,iBAAkB,CADlB,iBAAkB,CAElB,sBAAuB,CAHvB,kBAUD,CALC,kFACC,4DAA6D,CAC7D,cAAe,CACf,yBACD,CAIF,wDAEC,gBAAiB,CADjB,eAED,CAEA,4UAIC,wDACD,CAEA,2EACC,kBAaD,CAXC,wGACC,wDACD,CAEA,6GACC,UAKD,CAHC,mHACC,UACD,CAIF,4EACC,2DAcD,CAZC,yGACC,wDACD,CAGA,8GACC,aAKD,CAHC,oHACC,UACD,CAIF,6EAEC,iDAaD,CAXC,0GACC,wDACD,CAEA,+GACC,aAKD,CAHC,qHACC,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css";\n\n.ck-media__wrapper {\n\t& .ck-media__placeholder {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\n\t\t& .ck-media__placeholder__url {\n\t\t\t@mixin ck-tooltip_enabled;\n\n\t\t\t/* Otherwise the URL will overflow when the content is very narrow. */\n\t\t\tmax-width: 100%;\n\n\t\t\tposition: relative;\n\n\t\t\t&:hover {\n\t\t\t\t@mixin ck-tooltip_visible;\n\t\t\t}\n\n\t\t\t& .ck-media__placeholder__url__text {\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"],\n\t&[data-oembed-url*="google.com/maps"],\n\t&[data-oembed-url*="goo.gl/maps"],\n\t&[data-oembed-url*="maps.google.com"],\n\t&[data-oembed-url*="maps.app.goo.gl"],\n\t&[data-oembed-url*="facebook.com"],\n\t&[data-oembed-url*="instagram.com"] {\n\t\t& .ck-media__placeholder__icon * {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/* Disable all mouse interaction as long as the editor is not read–only.\n https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */\n.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {\n\tpointer-events: none;\n}\n\n/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).\n https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */\n.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {\n\tpointer-events: none;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-media-embed-placeholder-icon-size: 3em;\n\n\t--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);\n\t--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);\n}\n\n.ck-media__wrapper {\n\tmargin: 0 auto;\n\n\t& .ck-media__placeholder {\n\t\tpadding: calc( 3 * var(--ck-spacing-standard) );\n\t\tbackground: var(--ck-color-base-foreground);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tmin-width: var(--ck-media-embed-placeholder-icon-size);\n\t\t\theight: var(--ck-media-embed-placeholder-icon-size);\n\t\t\tmargin-bottom: var(--ck-spacing-large);\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: cover;\n\n\t\t\t& .ck-icon {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text);\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: center;\n\t\t\tfont-style: italic;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text-hover);\n\t\t\t\tcursor: pointer;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="open.spotify.com"] {\n\t\tmax-width: 300px;\n\t\tmax-height: 380px;\n\t}\n\n\t&[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {\n\t\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);\n\t}\n\n\t&[data-oembed-url*="facebook.com"] .ck-media__placeholder {\n\t\tbackground: hsl(220, 46%, 48%);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(220, 100%, 90%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="instagram.com"] .ck-media__placeholder {\n\t\tbackground: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);\n\t\t}\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(302, 100%, 94%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {\n\t\t/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */\n\t\tbackground: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(201, 100%, 86%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const b=m},3525:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-media-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,kBAEC,sBAAuB,CADvB,YAAa,CAEb,kBAAmB,CACnB,gBAqBD,CAnBC,yCACC,oBACD,CAEA,4BACC,YACD,CCbA,oCDCD,kBAeE,cAUF,CARE,yCACC,eACD,CAEA,6BACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-media-form {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},671:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-source-editing-area{overflow:hidden;position:relative}.ck-source-editing-area textarea,.ck-source-editing-area:after{border:1px solid transparent;font-family:monospace;font-size:var(--ck-font-size-normal);line-height:var(--ck-line-height-base);margin:0;padding:var(--ck-spacing-large);white-space:pre-wrap}.ck-source-editing-area:after{content:attr(data-value) " ";display:block;visibility:hidden}.ck-source-editing-area textarea{border-color:var(--ck-color-base-border);border-radius:0;box-sizing:border-box;height:100%;outline:none;overflow:hidden;position:absolute;resize:none;width:100%}.ck-rounded-corners .ck-source-editing-area textarea,.ck-source-editing-area textarea.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck-source-editing-area textarea:not([readonly]):focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-source-editing/theme/sourceediting.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,wBAEC,eAAgB,CADhB,iBAED,CAEA,+DAIC,4BAA6B,CAG7B,qBAAsB,CADtB,oCAAqC,CADrC,sCAAuC,CAFvC,QAAS,CADT,+BAAgC,CAMhC,oBACD,CAEA,8BACC,4BAA6B,CAE7B,aAAc,CADd,iBAED,CAEA,iCASC,wCAAyC,CC7BzC,eAAgB,CD2BhB,qBAAsB,CAJtB,WAAY,CAEZ,YAAa,CACb,eAAgB,CALhB,iBAAkB,CAGlB,WAAY,CAFZ,UAkBD,CApBA,yGChBE,qCAAsC,CD4BtC,wBAAyB,CACzB,yBAOF,CAJC,uDEpCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFwCA",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css";\n\n.ck-source-editing-area {\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.ck-source-editing-area::after,\n.ck-source-editing-area textarea {\n\tpadding: var(--ck-spacing-large);\n\tmargin: 0;\n\tborder: 1px solid transparent;\n\tline-height: var(--ck-line-height-base);\n\tfont-size: var(--ck-font-size-normal);\n\tfont-family: monospace;\n\twhite-space: pre-wrap;\n}\n\n.ck-source-editing-area::after {\n\tcontent: attr(data-value) " ";\n\tvisibility: hidden;\n\tdisplay: block;\n}\n\n.ck-source-editing-area textarea {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tresize: none;\n\toutline: none;\n\toverflow: hidden;\n\tbox-sizing: border-box;\n\n\tborder-color: var(--ck-color-base-border);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not([readonly]):focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},4082:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom:1px solid var(--ck-color-input-border);border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAQF,CAVA,+CAQE,2BAA4B,CAD5B,wBAGF,CAGC,wEACC,SAoCD,CArCA,kFAME,2BAA4B,CAF5B,mBAAoB,CACpB,wBAgCF,CArCA,kFAYE,4BAA6B,CAF7B,oBAAqB,CACrB,yBA0BF,CAtBC,oFACC,oDACD,CAEA,4GC9BF,eD+CE,CAjBA,+PC1BD,qCD2CC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAEC,oDAAqD,CAGrD,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CAFxE,UAuBD,CAxBA,8DASE,yBAeF,CAxBA,8DAaE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-input-color {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\n\t& > input.ck.ck-input-text {\n\t\tmin-width: auto;\n\t\tflex-grow: 1;\n\t}\n\n\t& > div.ck.ck-dropdown {\n\t\tmin-width: auto;\n\n\t\t/* This dropdown has no arrow but a color preview instead. */\n\t\t& > .ck-input-color__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__button {\n\t\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\n\t\tdisplay: flex;\n\n\t\t& .ck.ck-input-color__button__preview {\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_rounded.css";\n\n.ck.ck-input-color {\n\t& > .ck.ck-input-text {\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t& > .ck.ck-dropdown {\n\t\t& > .ck.ck-button.ck-input-color__button {\n\t\t\tpadding: 0;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tborder-left-width: 0;\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\t&.ck-disabled {\n\t\t\t\tbackground: var(--ck-color-input-disabled-background);\n\t\t\t}\n\n\t\t\t& > .ck.ck-input-color__button__preview {\n\t\t\t\t@mixin ck-rounded-corners;\n\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tborder: 1px solid var(--ck-color-input-border);\n\n\t\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\t\ttop: -30%;\n\t\t\t\t\tleft: 50%;\n\t\t\t\t\theight: 150%;\n\t\t\t\t\twidth: 8%;\n\t\t\t\t\tbackground: hsl(0, 100%, 50%);\n\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\ttransform: rotate(45deg);\n\t\t\t\t\ttransform-origin: 50%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__remove-color {\n\t\twidth: 100%;\n\t\tborder-bottom: 1px solid var(--ck-color-input-border);\n\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\n\t\tborder-bottom-left-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t}\n\n\t\t& .ck.ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4880:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/form.css"],names:[],mappings:"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form {\n\tpadding: 0 0 var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t& .ck.ck-input-text {\n\t\tmin-width: 100%;\n\t\twidth: 0;\n\t}\n\n\t& .ck.ck-dropdown {\n\t\tmin-width: 100%;\n\n\t\t& .ck-dropdown__button {\n\t\t\t&:not(:focus) {\n\t\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck-button__label {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9865:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css"],names:[],mappings:"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-form__row {\n\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\t& + * {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-label {\n\t\twidth: 100%;\n\t\tmin-width: 100%;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8085:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);width:var(--ck-insert-table-dropdown-box-width)}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,qCACC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAHlB,iDAAkD,CAClD,iDAAkD,CAFlD,+CAUD,CAJC,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\twidth: var(--ck-insert-table-dropdown-box-width);\n\theight: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},4104:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent
    . Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s},9888:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-table-caption-background:#f7f7f7;--ck-color-table-caption-text:#333;--ck-color-table-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-table-caption-background);caption-side:top;color:var(--ck-color-table-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-table-caption-highlighted-background)}to{background-color:var(--ck-color-table-caption-background)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css"],names:[],mappings:"AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAMC,yDAA0D,CAJ1D,gBAAiB,CAGjB,wCAAyC,CAJzC,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAOD,CAIC,qEACC,iDACD,CAEA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-table-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-table-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .table > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: top;\n\tword-break: break-word;\n\ttext-align: center;\n\tcolor: var(--ck-color-table-caption-text);\n\tbackground-color: var(--ck-color-table-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .table > figcaption {\n\t&.table__caption_highlighted {\n\t\tanimation: ck-table-caption-highlight .6s ease-out;\n\t}\n\n\t&.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n@keyframes ck-table-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-table-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-table-caption-background);\n\t}\n}\n"],sourceRoot:""}]);const a=s},5737:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css"],names:[],mappings:"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\t&:first-of-type {\n\t\t\t\t\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\n\t\t\t\t\tflex-grow: 0.57;\n\t\t\t\t}\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\n\t\t\t\t\tflex-grow: 0.43;\n\t\t\t\t}\n\n\t\t\t\t& .ck-button {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__padding-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\t\t\twidth: 25%;\n\t\t}\n\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4777:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-table-focused-cell-background:rgba(158,207,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,6DACD,CAKE,8QAGC,wDAAyD,CAKzD,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-focused-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-table-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},198:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:"";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCAyBD,CAvBC,8ECxCD,eDyDC,CAjBA,mMCpCA,qCDqDA,CAjBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAUD,CAPC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEACD,CAGA,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__background-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\talign-items: center;\n\n\t\t\t\t& .ck.ck-dropdown {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\tflex-grow: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\t/* Allow absolute positioning of the status (error) balloons. */\n\t\tposition: relative;\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\ttransform: translate(-50%,100%);\n\n\t\t\t/* Make sure the balloon status stays on top of other form elements. */\n\t\t\tz-index: 1;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX( -50% );\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-table-properties-error-arrow-size: 6px;\n\t--ck-table-properties-min-error-width: 150px;\n}\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\t& > .ck-label {\n\t\t\t\t\tfont-size: var(--ck-font-size-tiny);\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__border-style,\n\t\t\t& .ck-table-form__border-width {\n\t\t\t\twidth: 80px;\n\t\t\t\tmin-width: 80px;\n\t\t\t\tmax-width: 80px;\n\t\t\t}\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tpadding: 0;\n\n\t\t\t& .ck-table-form__dimensions-row__width,\n\t\t\t& .ck-table-form__dimensions-row__height {\n\t\t\t\tmargin: 0\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\talign-self: flex-end;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: var(--ck-ui-component-min-height);\n\t\t\t\tline-height: var(--ck-ui-component-min-height);\n\t\t\t\tmargin: 0 var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: var(--ck-spacing-standard);\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\t@mixin ck-rounded-corners;\n\n\t\t\tbackground: var(--ck-color-base-error);\n\t\t\tcolor: var(--ck-color-base-background);\n\t\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\t\tmin-width: var(--ck-table-properties-min-error-width);\n\t\t\ttext-align: center;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\n\t\t\t\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\n\t\t}\n\n\t\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\n\t\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n@keyframes ck-table-form-labeled-view-status-appear {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9221:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css"],names:[],mappings:"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\t\t\tflex-basis: 0;\n\t\t\talign-content: baseline;\n\n\t\t\t& .ck.ck-toolbar .ck-toolbar__items {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t\t\t& .ck-toolbar__items > * {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},5593:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4499:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-button,a.ck.ck-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:block}@media (hover:none){.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:none}}.ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;justify-content:left;position:relative}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button:hover .ck-tooltip,a.ck.ck-button:hover .ck-tooltip{opacity:1;visibility:visible}.ck.ck-button:focus:not(:hover) .ck-tooltip,a.ck.ck-button:focus:not(:hover) .ck-tooltip{display:none}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-default-active-shadow)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-on-active-shadow)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-action-active-shadow)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAQA,6BCCC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6BD,CE/BC,qDACC,aAqBD,CAHC,oBAnBD,qDAoBE,YAEF,CADC,CFvBF,6BAOC,kBAAmB,CADnB,mBAAoB,CAEpB,oBAAqB,CAHrB,iBA4BD,CAvBC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEkBA,iEAEC,SAAU,CADV,kBAED,CAbA,yFACC,YACD,CC7BD,6BCAC,oDD0ID,CCvIE,6EACC,0DACD,CAEA,+EACC,2DAA4C,CAC5C,uEACD,CAID,qDACC,6DACD,CDhBD,6BEDC,eF2ID,CA1IA,wIEGE,qCFuIF,CA1IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAqID,CA3GC,oFGhCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHqCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAYD,CAbA,6FAIE,mCASF,CAbA,6FAQE,oCAKF,CAbA,yEAWC,eAAiB,CACjB,UACD,CAIC,oIIrFD,oDJyFC,CAOA,gLKhGD,kCLkGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCC/HA,+CDiIA,CC9HC,yFACC,qDACD,CAEA,2FACC,sDAA4C,CAC5C,kEACD,CAID,iEACC,wDACD,CDmHA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CC7IC,mDDkJD,CC/IE,2FACC,yDACD,CAEA,6FACC,0DAA4C,CAC5C,sEACD,CAID,mEACC,4DACD,CD6HD,2CAIC,wCACD,CAEA,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n@import "../tooltip/mixins/_tooltip.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\t@mixin ck-tooltip_enabled;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: left;\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n\n\t&:hover {\n\t\t@mixin ck-tooltip_visible;\n\t}\n\n\t/* Get rid of the native focus outline around the tooltip when focused (but not :hover). */\n\t&:focus:not(:hover) {\n\t\t@mixin ck-tooltip_disabled;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\tfont-weight: bold;\n\t\topacity: .7;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t\tbox-shadow: inset 0 2px 2px var($(prefix)-active-shadow);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9681:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:1.0769230769em;--ck-switch-button-toggle-spacing:1px;--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - var(--ck-switch-button-toggle-spacing)*2)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);transition:background .4s ease;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);margin:var(--ck-switch-button-toggle-spacing);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,mDAAoD,CACpD,qCAAsC,CACtC,gKAKD,CAGC,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDC3BA,eDoEA,CAzCA,yICvBC,qCDgED,CAzCA,2DAKE,gBAoCF,CAzCA,2DAUE,iBA+BF,CAzCA,iDAiBC,uDAAwD,CAHxD,8BAAiC,CAEjC,0CAyBD,CAtBC,2EC9CD,eD2DC,CAbA,6LC1CA,qCAAsC,CD4CpC,8CAWF,CAbA,2EASC,yDAA0D,CAD1D,gDAAiD,CAFjD,6CAA8C,CAM9C,uBAA0B,CAL1B,+CAMD,CAEA,uDACC,6DAKD,CAHC,iFACC,+DACD,CAIF,6DExEA,kCF0EA,CAEA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: 1.0769230769em;\n\t--ck-switch-button-toggle-spacing: 1px;\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2 * var(--ck-switch-button-toggle-spacing)\n\t);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease;\n\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\t/* Leave some tiny bit of space around the inner part of the switch */\n\t\t\tmargin: var(--ck-switch-button-toggle-spacing);\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t&.ck-on .ck-button__toggle {\n\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t}\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t/*\n\t\t\t * Move the toggle switch to the right. It will be animated.\n\t\t\t */\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},4923:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#000}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css"],names:[],mappings:"AAKA,kBACC,YACD,CCAA,MACC,8BAA+B,CAK/B,qCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBAOC,QAAS,CALT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CACV,8BAA+B,CAL/B,oCAyCD,CAjCC,oCACC,YAAa,CACb,gBACD,CAEA,4DACC,gDACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAEA,8BACC,8FAKD,CAHC,0CACC,aACD,CAGD,8HAIC,QACD,CAEA,gGAEC,iGACD,CAGD,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(0, 0%, 0%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\twidth: var(--ck-color-grid-tile-size);\n\theight: var(--ck-color-grid-tile-size);\n\tmin-width: var(--ck-color-grid-tile-size);\n\tmin-height: var(--ck-color-grid-tile-size);\n\tpadding: 0;\n\ttransition: .2s ease box-shadow;\n\tborder: 0;\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t&.ck-color-table__color-tile_bordered {\n\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&.ck-on,\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\t/* Disable the default .ck-button\'s border ring. */\n\t\tborder: 0;\n\t}\n\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n'],sourceRoot:""}]);const a=s},3488:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip{display:none}.ck.ck-dropdown .ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-modal)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBAqFD,CAnFC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UAOD,CCUA,iEACC,YACD,CDVA,oCAGC,kCAAmC,CAEnC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CEhGA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eH8GD,CA5BA,qFG9EE,qCH0GF,CA5BA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAmBD,CAfC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"../tooltip/mixins/_tooltip.css\";\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\n\t\t/* Disable main button's tooltip when the dropdown is open. Otherwise the panel may\n\t\tpartially cover the tooltip */\n\t\t&.ck-on {\n\t\t\t@mixin ck-tooltip_disabled;\n\t\t}\n\t}\n\n\t& .ck-dropdown__panel {\n\t\t/* This is to get rid of flickering when the tooltip is shown under the panel,\n\t\twhich looks like the panel moves vertically a pixel down and up. */\n\t\t-webkit-backface-visibility: hidden;\n\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-modal);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-modal) + 1 );\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\t\t\t\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6875:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown .ck-dropdown__panel .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},66:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button .ck-tooltip{display:none}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/mixins/_tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,mBAEC,iBAUD,CARC,iDACC,qCACD,CC0BA,8DACC,YACD,CClCD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CASA,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCC7EA,eDuFA,CAVA,qHCzEC,qCDmFD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../tooltip/mixins/_tooltip.css";\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n\n\t/* Disable tooltips for the buttons when the button is "open" */\n\t&.ck-splitbutton_open > .ck-button {\n\t\t@mixin ck-tooltip_disabled;\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Enables the tooltip, which is the tooltip is in DOM but\n * not yet displayed.\n */\n@define-mixin ck-tooltip_enabled {\n\t& .ck-tooltip {\n\t\tdisplay: block;\n\n\t\t/*\n\t\t * Don't display tooltips in devices which don't support :hover.\n\t\t * In fact, it's all about iOS, which forces user to click UI elements twice to execute\n\t\t * the primary action, when tooltips are enabled.\n\t\t *\n\t\t * Q: OK, but why not the following query?\n\t\t *\n\t\t * @media (hover) {\n\t\t * display: block;\n\t\t * }\n\t\t *\n\t\t * A: Because FF does not support it and it would completely disable tooltips\n\t\t * in that browser.\n\t\t *\n\t\t * More in https://github.com/ckeditor/ckeditor5/issues/920.\n\t\t */\n\t\t@media (hover:none) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Disables the tooltip making it disappear from DOM.\n */\n@define-mixin ck-tooltip_disabled {\n\t& .ck-tooltip {\n\t\tdisplay: none;\n\t}\n}\n\n/**\n * Shows the tooltip, which is already in DOM.\n * Requires `ck-tooltip_enabled` first.\n */\n@define-mixin ck-tooltip_visible {\n\t& .ck-tooltip {\n\t\tvisibility: visible;\n\t\topacity: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5075:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},4547:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,mDACD,CAIA,gEACC,gDACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-base-foreground);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-base-foreground);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},5523:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-form__header .ck-form__header__label{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BACD,CCNA,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAQD,CAHC,4CACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-form-header-height: 38px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& .ck-form__header__label {\n\t\tfont-weight: bold;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1174:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{color:inherit;cursor:inherit}.ck.ck-icon :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAY1B,qBAcD,CAZC,0BARA,aAAc,CAGd,cAgBA,CAJC,yBAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\tcolor: inherit;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\n\t\t/* Allows dynamic coloring of the icons. */\n\t\tcolor: inherit;\n\n\t\t&:not([fill]) {\n\t\t\t/* Needed by FF. */\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},6985:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eD2CD,CAtCA,iECDE,qCDuCF,CAtCA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DA0BD,CAxBC,mBEnBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YFuBA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BG/BD,oDHkCC,CAGD,sBAEC,sCAAuC,CADvC,+CAMD,CAHC,4BGzCD,iDH2CC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2751:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},8111:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,yEACD,CAEA,0BCHC,eD4GD,CAzGA,2FCCE,qCDwGF,CAtGC,mEACC,UAmCD,CAjCC,gFACC,KA+BD,CAhCA,0FAIE,MA4BF,CAhCA,0FAQE,OAwBF,CAhCA,gFAiBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAP9C,mBAAoB,CAYpB,sBAAuB,CARvB,6DAA+D,CAH/D,oBAAqB,CAgBrB,+JAID,CAQA,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,oUAGE,wFAYF,CAfA,oUAOE,iGAQF,CAfA,gTAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\t\t\ttransform-origin: 0 0;\n\n\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-spacing-medium), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1162:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{border-radius:0;min-height:unset;padding:calc(var(--ck-line-height-base)*.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*.4*var(--ck-font-size-base));text-align:left;width:100%}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEfD,YCEC,eDGD,CALA,+DCME,qCDDF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAIC,eAAgB,CAHhB,gBAAiB,CAQjB,iIAEiE,CARjE,eAAgB,CADhB,UAwCD,CA7BC,+CAEC,yEACD,CAEA,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,2DACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tborder-radius: 0;\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t because e.g. different heading styles may have different height\n\t\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding:\n\t\t\tcalc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\n\t\t& .ck-button__label {\n\t\t\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\t\tline-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8245:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow))}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCJC,eD4ID,CAxIA,iFCAE,qCDwIF,CAxIA,qBAMC,2CAA4C,CAC5C,6CAA8C,CEb9C,oCAA8B,CFU9B,eAoID,CA9HE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EACD,CAEA,2CACC,iFAAkF,CAClF,yCACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDACD,CAEA,2CACC,iFAAkF,CAClF,4CACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-modal);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: var(--ck-balloon-arrow-offset);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: var(--ck-balloon-arrow-offset);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1757:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3553:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-modal) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3609:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-modal)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-modal); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1590:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck-vertical-form .ck-button:after{bottom:var(--ck-spacing-small);content:"";position:absolute;right:-1px;top:var(--ck-spacing-small);width:0;z-index:1}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:var(--ck-spacing-small);content:"";position:absolute;right:-1px;top:var(--ck-spacing-small);width:0;z-index:1}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border:0;border-radius:0;border-top:1px solid var(--ck-color-base-border);margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after,[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css"],names:[],mappings:"AAOA,mCAMC,8BAA+B,CAL/B,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,2BAA4B,CAH5B,OAAQ,CAKR,SACD,CCTC,oCDaC,wCAMC,8BAA+B,CAL/B,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,2BAA4B,CAH5B,OAAQ,CAKR,SACD,CCnBD,CCAD,qDACC,kDACD,CAEA,uBACC,+BAkED,CAhEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA6CF,CA3CE,8CACC,wDAWD,CATC,6DACC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAID,iGAMC,QAAS,CADT,eAAgB,CAEhB,gDAAiD,CAJjD,kCAAmC,CADnC,kCAkBD,CApBA,0OAcE,aAMF,CAGC,yMACC,kDACD,CDpEF",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button::after {\n\tcontent: "";\n\twidth: 0;\n\tposition: absolute;\n\tright: -1px;\n\ttop: var(--ck-spacing-small);\n\tbottom: var(--ck-spacing-small);\n\tz-index: 1;\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button::after {\n\t\t\tcontent: "";\n\t\t\twidth: 0;\n\t\t\tposition: absolute;\n\t\t\tright: -1px;\n\t\t\ttop: var(--ck-spacing-small);\n\t\t\tbottom: var(--ck-spacing-small);\n\t\t\tz-index: 1;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t\tborder-radius: 0;\n\t\t\tborder: 0;\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},6706:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},5571:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border:0;border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eD0FD,CA7FA,qECOE,qCDsFF,CA7FA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAyFD,CAtFC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAgBD,CAbC,0DAWC,QAAS,CAHT,eAAgB,CAHhB,QAAS,CAHT,UAUD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAvFF,qCA2FE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so any border is pointless. */\n\t\t\tborder: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9948:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-tooltip,.ck.ck-tooltip .ck-tooltip__text:after{-webkit-backface-visibility:hidden;pointer-events:none;position:absolute}.ck.ck-tooltip{display:none;opacity:0;visibility:hidden;z-index:var(--ck-z-modal)}.ck.ck-tooltip .ck-tooltip__text{display:inline-block}.ck.ck-tooltip .ck-tooltip__text:after{content:"";height:0;width:0}:root{--ck-tooltip-arrow-size:5px}.ck.ck-tooltip{left:50%;top:0;transition:opacity .2s ease-in-out .2s}.ck.ck-tooltip .ck-tooltip__text{border-radius:0}.ck-rounded-corners .ck.ck-tooltip .ck-tooltip__text,.ck.ck-tooltip .ck-tooltip__text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-tooltip .ck-tooltip__text{background:var(--ck-color-tooltip-background);color:var(--ck-color-tooltip-text);font-size:.9em;left:-50%;line-height:1.5;padding:var(--ck-spacing-small) var(--ck-spacing-medium);position:relative}.ck.ck-tooltip .ck-tooltip__text:after{border-style:solid;left:50%;transition:opacity .2s ease-in-out .2s}.ck.ck-tooltip.ck-tooltip_s,.ck.ck-tooltip.ck-tooltip_se,.ck.ck-tooltip.ck-tooltip_sw{bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(100%)}.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{border-color:transparent transparent var(--ck-color-tooltip-background) transparent;border-width:0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);top:calc(var(--ck-tooltip-arrow-size)*-1 + 1px);transform:translateX(-50%)}.ck.ck-tooltip.ck-tooltip_sw{left:auto;right:50%}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text{left:auto;right:calc(var(--ck-tooltip-arrow-size)*-2)}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{left:auto;right:0}.ck.ck-tooltip.ck-tooltip_se{left:50%;right:auto}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text{left:calc(var(--ck-tooltip-arrow-size)*-2);right:auto}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after{left:0;right:auto;transform:translateX(50%)}.ck.ck-tooltip.ck-tooltip_n{top:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(-100%)}.ck.ck-tooltip.ck-tooltip_n .ck-tooltip__text:after{border-color:var(--ck-color-tooltip-background) transparent transparent transparent;border-width:var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateX(-50%)}.ck.ck-tooltip.ck-tooltip_e{left:calc(100% + var(--ck-tooltip-arrow-size));top:50%}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text:after{border-color:transparent var(--ck-color-tooltip-background) transparent transparent;border-width:var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0;left:calc(var(--ck-tooltip-arrow-size)*-1);top:calc(50% - var(--ck-tooltip-arrow-size)*1)}.ck.ck-tooltip.ck-tooltip_w{left:auto;right:calc(100% + var(--ck-tooltip-arrow-size));top:50%}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text:after{border-color:transparent transparent transparent var(--ck-color-tooltip-background);border-width:var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);left:100%;top:calc(50% - var(--ck-tooltip-arrow-size)*1)}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,sDASC,kCAAmC,CAJnC,mBAAoB,CAHpB,iBAQD,CAEA,eAIC,YAAa,CADb,SAAU,CADV,iBAAkB,CAGlB,yBAWD,CATC,iCACC,oBAOD,CALC,uCACC,UAAW,CAEX,QAAS,CADT,OAED,CCxBF,MACC,2BACD,CAEA,eACC,QAAS,CAMT,KAAM,CAON,sCAwKD,CAtKC,iCChBA,eDqCA,CArBA,yGCZC,qCDiCD,CArBA,iCAOC,6CAA8C,CAF9C,kCAAmC,CAFnC,cAAe,CAMf,SAAU,CALV,eAAgB,CAEhB,wDAAyD,CAEzD,iBAaD,CAVC,uCAOC,kBAAmB,CACnB,QAAS,CAFT,sCAGD,CAYD,sFAGC,4CAA+C,CAC/C,0BASD,CAPC,8JAIC,mFAAoF,CACpF,qGAAsG,CAHtG,+CAAkD,CAClD,0BAGD,CAaD,6BAEC,SAAU,CADV,SAYD,CATC,+CACC,SAAU,CACV,2CACD,CAEA,qDACC,SAAU,CACV,OACD,CAYD,6BACC,QAAS,CACT,UAYD,CAVC,+CAEC,0CAA8C,CAD9C,UAED,CAEA,qDAEC,MAAO,CADP,UAAW,CAEX,yBACD,CAYD,4BACC,yCAA4C,CAC5C,2BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,4CAA+C,CAC/C,0BAGD,CAUD,4BACC,8CAA+C,CAC/C,OAaD,CAXC,8CACC,MAAO,CACP,0BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,0CAA6C,CAC7C,8CAGD,CAWF,4BAEC,SAAU,CADV,+CAAgD,CAEhD,OAaD,CAXC,8CACC,MAAO,CACP,0BAQD,CANC,oDAGC,mFAAoF,CACpF,qGAAsG,CAHtG,SAAU,CACV,8CAGD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-tooltip,\n.ck.ck-tooltip .ck-tooltip__text::after {\n\tposition: absolute;\n\n\t/* Without this, hovering the tooltip could keep it visible. */\n\tpointer-events: none;\n\n\t/* This is to get rid of flickering when transitioning opacity in Chrome.\n\tIt\'s weird but it works. */\n\t-webkit-backface-visibility: hidden;\n}\n\n.ck.ck-tooltip {\n\t/* Tooltip is hidden by default. */\n\tvisibility: hidden;\n\topacity: 0;\n\tdisplay: none;\n\tz-index: var(--ck-z-modal);\n\n\t& .ck-tooltip__text {\n\t\tdisplay: inline-block;\n\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-tooltip-arrow-size: 5px;\n}\n\n.ck.ck-tooltip {\n\tleft: 50%;\n\n\t/*\n\t * Prevent blurry tooltips in LoDPI environments.\n\t * See https://github.com/ckeditor/ckeditor5/issues/1802.\n\t */\n\ttop: 0;\n\n\t/*\n\t * For the transition to work, the tooltip must be controlled\n\t * using visibility+opacity. A delay prevents a "tooltip avalanche"\n\t * i.e. when scanning the toolbar with mouse cursor.\n\t */\n\ttransition: opacity .2s ease-in-out .2s;\n\n\t& .ck-tooltip__text {\n\t\t@mixin ck-rounded-corners;\n\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\tbackground: var(--ck-color-tooltip-background);\n\t\tposition: relative;\n\t\tleft: -50%;\n\n\t\t&::after {\n\t\t\t/*\n\t\t\t * For the transition to work, the tooltip must be controlled\n\t\t\t * using visibility+opacity. A delay prevents a "tooltip avalanche"\n\t\t\t * i.e. when scanning the toolbar with mouse cursor.\n\t\t\t */\n\t\t\ttransition: opacity .2s ease-in-out .2s;\n\t\t\tborder-style: solid;\n\t\t\tleft: 50%;\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\t&.ck-tooltip_s,\n\t&.ck-tooltip_sw,\n\t&.ck-tooltip_se {\n\t\tbottom: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\ttransform: translateY( 100% );\n\n\t\t& .ck-tooltip__text::after {\n\t\t\t/* 1px addresses gliches in rendering causing gap between the triangle and the text */\n\t\t\ttop: calc(-1 * var(--ck-tooltip-arrow-size) + 1px);\n\t\t\ttransform: translateX( -50% );\n\t\t\tborder-color: transparent transparent var(--ck-color-tooltip-background) transparent;\n\t\t\tborder-width: 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south-west of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\n\t&.ck-tooltip_sw {\n\t\tright: 50%;\n\t\tleft: auto;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: auto;\n\t\t\tright: calc( -2 * var(--ck-tooltip-arrow-size));\n\t\t}\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip south-east of the element.\n\t *\n\t * [element]\n\t * ^\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t */\n\t&.ck-tooltip_se {\n\t\tleft: 50%;\n\t\tright: auto;\n\n\t\t& .ck-tooltip__text {\n\t\t\tright: auto;\n\t\t\tleft: calc( -2 * var(--ck-tooltip-arrow-size));\n\t\t}\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tright: auto;\n\t\t\tleft: 0;\n\t\t\ttransform: translateX( 50% );\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip north of the element.\n\t *\n\t * +-----------+\n\t * | Tooltip |\n\t * +-----------+\n\t * V\n\t * [element]\n\t */\n\t&.ck-tooltip_n {\n\t\ttop: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\ttransform: translateY( -100% );\n\n\t\t& .ck-tooltip__text::after {\n\t\t\tbottom: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\t\ttransform: translateX( -50% );\n\t\t\tborder-color: var(--ck-color-tooltip-background) transparent transparent transparent;\n\t\t\tborder-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip east of the element.\n\t *\n\t * +----------+\n\t * [element] < | east |\n\t * +----------+\n\t */\n\t&.ck-tooltip_e {\n\t\tleft: calc(100% + var(--ck-tooltip-arrow-size));\n\t\ttop: 50%;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: 0;\n\t\t\ttransform: translateY( -50% );\n\n\t\t\t&::after {\n\t\t\t\tleft: calc(-1 * var(--ck-tooltip-arrow-size));\n\t\t\t\ttop: calc(50% - 1 * var(--ck-tooltip-arrow-size));\n\t\t\t\tborder-color: transparent var(--ck-color-tooltip-background) transparent transparent;\n\t\t\t\tborder-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A class that displays the tooltip west of the element.\n\t *\n\t * +----------+\n\t * | west | > [element]\n\t * +----------+\n\t */\n\t&.ck-tooltip_w {\n\t\tright: calc(100% + var(--ck-tooltip-arrow-size));\n\t\tleft: auto;\n\t\ttop: 50%;\n\n\t\t& .ck-tooltip__text {\n\t\t\tleft: 0;\n\t\t\ttransform: translateY( -50% );\n\n\t\t\t&::after {\n\t\t\t\tleft: 100%;\n\t\t\t\ttop: calc(50% - 1 * var(--ck-tooltip-arrow-size));\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-color-tooltip-background);\n\t\t\t\tborder-width: var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6150:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-hidden{display:none!important}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{box-sizing:border-box;height:auto;position:static;width:auto}:root{--ck-z-default:1;--ck-z-modal:calc(var(--ck-z-default) + 999)}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#c4c4c4;--ck-color-base-action:#61b045;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#198cf0;--ck-color-base-active-focus:#0e7fe1;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:208,79%,51%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#bcdefb;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#e6e6e6;--ck-color-button-default-active-background:#d9d9d9;--ck-color-button-default-active-shadow:#bfbfbf;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#dedede;--ck-color-button-on-hover-background:#c4c4c4;--ck-color-button-on-active-background:#bababa;--ck-color-button-on-active-shadow:#a1a1a1;--ck-color-button-on-disabled-background:#dedede;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#579e3d;--ck-color-button-action-active-background:#53973b;--ck-color-button-action-active-shadow:#498433;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#b0b0b0;--ck-color-switch-button-off-hover-background:#a3a3a3;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#579e3d;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:#c7c7c7;--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:#c7c7c7;--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-base-active);--ck-color-list-button-on-background-focus:var(--ck-color-base-active-focus);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-foreground);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{word-wrap:break-word;background:transparent;border:0;margin:0;padding:0;text-decoration:none;transition:none;vertical-align:middle}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_hidden.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_reset.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_zindex.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_transition.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"AAQA,WAGC,sBACD,CCPA,2EAGC,qBAAsB,CAEtB,WAAY,CACZ,eAAgB,CAFhB,UAGD,CCPA,MACC,gBAAiB,CACjB,4CACD,CCAA,oDAEC,yBACD,CCNA,MACC,kCAAmD,CACnD,+BAAoD,CACpD,8BAAgD,CAChD,8BAAmD,CACnD,6BAAmD,CACnD,yBAA+C,CAC/C,8BAAmD,CACnD,oCAAuD,CACvD,6BAAkD,CAIlD,+CAAwD,CACxD,qEAA+E,CAC/E,qCAAwD,CACxD,qDAA8D,CAC9D,gDAAyD,CACzD,yCAAqD,CACrD,sCAAsD,CACtD,4CAA0D,CAC1D,sCAAsD,CAItD,gDAAuD,CACvD,kDAA+D,CAC/D,mDAAgE,CAChE,+CAA6D,CAC7D,yDAA8D,CAE9D,uCAAuD,CACvD,6CAA4D,CAC5D,8CAA4D,CAC5D,0CAAyD,CACzD,gDAA8D,CAE9D,+DAAsE,CACtE,iDAAkE,CAClE,kDAAkE,CAClE,8CAA+D,CAC/D,oDAAoE,CACpE,6DAAsE,CAEtE,8BAAoD,CACpD,gCAAqD,CAErD,+CAA4D,CAC5D,qDAAiE,CACjE,+EAAqF,CACrF,oDAAmE,CACnE,yEAA8E,CAC9E,oDAAgE,CAIhE,oEAA2E,CAC3E,4DAAoE,CAIpE,2DAAoE,CACpE,+BAAiD,CACjD,wDAAgE,CAChE,+CAA0D,CAC1D,4CAA2D,CAC3D,wCAAwD,CACxD,sCAAsD,CAItD,0DAAmE,CACnE,uFAA6F,CAC7F,gEAAuE,CACvE,4EAAiF,CACjF,8DAAsE,CAItE,2DAAoE,CACpE,mDAA6D,CAI7D,6DAAsE,CACtE,qDAA+D,CAI/D,uDAAgE,CAChE,uDAAiE,CAIjE,0CAAyD,CAIzD,wCAA2D,CAI3D,+BAAoD,CACpD,uDAAmE,CACnE,kDAAgE,CCpGhE,wBAAyB,CCAzB,0CAA2C,CAK3C,gGAAiG,CAKjG,4GAA6G,CAK7G,sGAAuG,CAKvG,sDAAuD,CCvBvD,wBAAyB,CACzB,6BAA8B,CAC9B,wDAA6D,CAE7D,yBAA0B,CAC1B,2BAA4B,CAC5B,yBAA0B,CAC1B,wBAAyB,CACzB,0BAA2B,CCJ3B,kCJoGD,CI9FA,2EAaC,oBAAqB,CANrB,sBAAuB,CADvB,QAAS,CAFT,QAAS,CACT,SAAU,CAGV,oBAAqB,CAErB,eAAgB,CADhB,qBAKD,CAKA,8DAGC,wBAAyB,CAEzB,0BAA2B,CAG3B,WAAY,CACZ,UAAW,CALX,iGAAkG,CAElG,eAAgB,CAChB,kBAGD,CAGC,qDACC,gBACD,CAEA,mDAEC,sBACD,CAEA,qDACC,oBACD,CAEA,mLAGC,WACD,CAEA,iNAGC,cACD,CAEA,qDAEC,yBAAoC,CADpC,YAED,CAEA,qEAGC,QAAQ,CADR,SAED,CAMD,8BAEC,gBACD,CCnFA,MACC,sBAAuB,CCAvB,gEAAiE,CAKjE,0DAA2D,CAK3D,wEAAyE,CCbzE,uBAA8B,CAC9B,mDAA2D,CAC3D,4CAAkD,CAClD,oDAA4D,CAC5D,mDAA2D,CAC3D,kDAA2D,CAC3D,yDFFD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-modal: calc( var(--ck-z-default) + 999 );\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(0, 0%, 77%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 44%, 48%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(208, 88%, 52%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(208, 88%, 47%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t208, 79%, 51%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(207, 89%, 86%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 90%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 85%);\n\t--ck-color-button-default-active-shadow: \t\t\t\t\thsl(0, 0%, 75%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(0, 0%, 87%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(0, 0%, 77%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(0, 0%, 73%);\n\t--ck-color-button-on-active-shadow: \t\t\t\t\t\thsl(0, 0%, 63%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(0, 0%, 87%);\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 44%, 43%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 44%, 41%);\n\t--ck-color-button-action-active-shadow: \t\t\t\t\thsl(104, 44%, 36%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 69%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 64%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 44%, 43%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\thsl(0, 0%, 78%);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\thsl(0, 0%, 78%);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-base-active);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-base-active-focus);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-foreground);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},6507:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background);border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CCjFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAUD,CARC,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAWD,CAPC,yGAKC,iEAAkE,CCnCnE,2BAA2B,CCF3B,qCAA8B,CDC9B,YDqCA,CAIA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAgCD,CAnBC,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAWD,CANC,kHACC,SAAU,CAGV,+DACD,CAID,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\n\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2263:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},5137:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAkDD,CA1CC,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAoBD,CAdC,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DAcD,CARE,kEACC,oDACD,CAEA,8DACC,wDACD,CAUF,uKAvED,SAAU,CACV,mBAwEC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAlJD,SAAU,CACV,mBAmJC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAlMF,SAAU,CACV,mBAmME,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3645:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",o=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),o&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),o&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,o,i,r){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(o)for(var a=0;a0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),e.push(d))}},e}},1667:t=>{t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]|(%20)/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t):t}},7537:t=>{t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),r="/*# ".concat(i," */"),s=n.sources.map((function(t){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(t," */")}));return[e].concat(s).concat([r]).join("\n")}return[e].join("\n")}},3379:t=>{var e=[];function n(t){for(var n=-1,o=0;o{var e={};t.exports=function(t,n){var o=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},9216:t=>{t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},8575:t=>{t.exports=function(t,e){Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])}))}},9037:t=>{var e,n=(e=[],function(t,n){return e[t]=n,e.filter(Boolean).join("\n")});function o(t,e,o,i){var r;if(o)r="";else{r="",i.supports&&(r+="@supports (".concat(i.supports,") {")),i.media&&(r+="@media ".concat(i.media," {"));var s=void 0!==i.layer;s&&(r+="@layer".concat(i.layer.length>0?" ".concat(i.layer):""," {")),r+=i.css,s&&(r+="}"),i.media&&(r+="}"),i.supports&&(r+="}")}if(t.styleSheet)t.styleSheet.cssText=n(e,r);else{var a=document.createTextNode(r),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(a,l[e]):t.appendChild(a)}}var i={singleton:null,singletonCounter:0};t.exports=function(t){var e=i.singletonCounter++,n=i.singleton||(i.singleton=t.insertStyleElement(t));return{update:function(t){o(n,e,!1,t)},remove:function(t){o(n,e,!0,t)}}}},8491:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+"},2739:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4="},6631:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OVptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OVoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzNabTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1Wk00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg=="},7511:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},4493:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Im0yMDYuNDc3IDI2MC45LTI4Ljk4NyAyOC45ODdhNS4yMTggNS4yMTggMCAwIDAgMy43OCAxLjYxaDQ5LjYyMWMxLjY5NCAwIDMuMTktLjc5OCA0LjE0Ni0yLjAzN3oiIGZpbGw9IiM1Yzg4YzUiLz48cGF0aCBkPSJNMjI2Ljc0MiAyMjIuOTg4Yy05LjI2NiAwLTE2Ljc3NyA3LjE3LTE2Ljc3NyAxNi4wMTQuMDA3IDIuNzYyLjY2MyA1LjQ3NCAyLjA5MyA3Ljg3NS40My43MDMuODMgMS40MDggMS4xOSAyLjEwNy4zMzMuNTAyLjY1IDEuMDA1Ljk1IDEuNTA4LjM0My40NzcuNjczLjk1Ny45ODggMS40NCAxLjMxIDEuNzY5IDIuNSAzLjUwMiAzLjYzNyA1LjE2OC43OTMgMS4yNzUgMS42ODMgMi42NCAyLjQ2NiAzLjk5IDIuMzYzIDQuMDk0IDQuMDA3IDguMDkyIDQuNiAxMy45MTR2LjAxMmMuMTgyLjQxMi41MTYuNjY2Ljg3OS42NjcuNDAzLS4wMDEuNzY4LS4zMTQuOTMtLjc5OS42MDMtNS43NTYgMi4yMzgtOS43MjkgNC41ODUtMTMuNzk0Ljc4Mi0xLjM1IDEuNjczLTIuNzE1IDIuNDY1LTMuOTkgMS4xMzctMS42NjYgMi4zMjgtMy40IDMuNjM4LTUuMTY5LjMxNS0uNDgyLjY0NS0uOTYyLjk4OC0xLjQzOS4zLS41MDMuNjE3LTEuMDA2Ljk1LTEuNTA4LjM1OS0uNy43Ni0xLjQwNCAxLjE5LTIuMTA3IDEuNDI2LTIuNDAyIDItNS4xMTQgMi4wMDQtNy44NzUgMC04Ljg0NC03LjUxMS0xNi4wMTQtMTYuNzc2LTE2LjAxNHoiIGZpbGw9IiNkZDRiM2UiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PGVsbGlwc2Ugcnk9IjUuNTY0IiByeD0iNS44MjgiIGN5PSIyMzkuMDAyIiBjeD0iMjI2Ljc0MiIgZmlsbD0iIzgwMmQyNyIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMTkwLjMwMSAyMzcuMjgzYy00LjY3IDAtOC40NTcgMy44NTMtOC40NTcgOC42MDZzMy43ODYgOC42MDcgOC40NTcgOC42MDdjMy4wNDMgMCA0LjgwNi0uOTU4IDYuMzM3LTIuNTE2IDEuNTMtMS41NTcgMi4wODctMy45MTMgMi4wODctNi4yOSAwLS4zNjItLjAyMy0uNzIyLS4wNjQtMS4wNzloLTguMjU3djMuMDQzaDQuODVjLS4xOTcuNzU5LS41MzEgMS40NS0xLjA1OCAxLjk4Ni0uOTQyLjk1OC0yLjAyOCAxLjU0OC0zLjkwMSAxLjU0OC0yLjg3NiAwLTUuMjA4LTIuMzcyLTUuMjA4LTUuMjk5IDAtMi45MjYgMi4zMzItNS4yOTkgNS4yMDgtNS4yOTkgMS4zOTkgMCAyLjYxOC40MDcgMy41ODQgMS4yOTNsMi4zODEtMi4zOGMwLS4wMDItLjAwMy0uMDA0LS4wMDQtLjAwNS0xLjU4OC0xLjUyNC0zLjYyLTIuMjE1LTUuOTU1LTIuMjE1em00LjQzIDUuNjYuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0ibTIxNS4xODQgMjUxLjkyOS03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVhNS4yMzMgNS4yMzMgMCAwIDAgLjQ0OS0yLjEyM3YtMzEuMTY1Yy0uNDY5LjY3NS0uOTM0IDEuMzQ5LTEuMzgyIDIuMDA1LS43OTIgMS4yNzUtMS42ODIgMi42NC0yLjQ2NSAzLjk5LTIuMzQ3IDQuMDY1LTMuOTgyIDguMDM4LTQuNTg1IDEzLjc5NC0uMTYyLjQ4NS0uNTI3Ljc5OC0uOTMuNzk5LS4zNjMtLjAwMS0uNjk3LS4yNTUtLjg3OS0uNjY3di0uMDEyYy0uNTkzLTUuODIyLTIuMjM3LTkuODItNC42LTEzLjkxNC0uNzgzLTEuMzUtMS42NzMtMi43MTUtMi40NjYtMy45OS0xLjEzNy0xLjY2Ni0yLjMyNy0zLjQtMy42MzctNS4xNjlsLS4wMDItLjAwM3oiIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJtMjEyLjk4MyAyNDguNDk1LTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOCA1LjIzOGgxLjAxNWwzNS42NjYtMzUuNjY2YTEzNi4yNzUgMTM2LjI3NSAwIDAgMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAgMC0uOTg5LTEuNDQgMzUuMTI3IDM1LjEyNyAwIDAgMC0uOTUtMS41MDhjLS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJtMjExLjk5OCAyNjEuMDgzLTYuMTUyIDYuMTUxIDI0LjI2NCAyNC4yNjRoLjc4MWE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4="}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={id:o,exports:{}};return t[o](r,r.exports,n),r.exports}n.m=t,n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.b=document.baseURI||self.location.href;var o={};return(()=>{n.d(o,{default:()=>Rx});const t=function(){return function t(){t.called=!0}};class e{constructor(e,n){this.source=e,this.name=n,this.path=[],this.stop=t(),this.off=t()}}const i=new Array(256).fill().map(((t,e)=>("0"+e.toString(16)).slice(-2)));function r(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0;return"e"+i[t>>0&255]+i[t>>8&255]+i[t>>16&255]+i[t>>24&255]+i[e>>0&255]+i[e>>8&255]+i[e>>16&255]+i[e>>24&255]+i[n>>0&255]+i[n>>8&255]+i[n>>16&255]+i[n>>24&255]+i[o>>0&255]+i[o>>8&255]+i[o>>16&255]+i[o>>24&255]}const s={get(t){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function a(t,e){const n=s.get(e.priority);for(let o=0;o{if("object"==typeof e&&null!==e){if(n.has(e))return`[object ${e.constructor.name}]`;n.add(e)}return e},i=e?` ${JSON.stringify(e,o)}`:"",r=d(t);return t+i+r}(t,n)),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new l(t.message,e);throw n.stack=t.stack,n}}function c(t,e){console.warn(...u(t,e))}function d(t){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${t}`}function u(t,e){const n=d(t);return e?[t,e,n]:[t,n]}const h="34.1.0",m="object"==typeof window?window:n.g;if(m.CKEDITOR_VERSION)throw new l("ckeditor-duplicated-modules",null);m.CKEDITOR_VERSION=h;const g=Symbol("listeningTo"),p=Symbol("emitterId"),f={on(t,e,n={}){this.listenTo(this,t,e,n)},once(t,e,n){let o=!1;this.listenTo(this,t,(function(t,...n){o||(o=!0,t.off(),e.call(this,t,...n))}),n)},off(t,e){this.stopListening(this,t,e)},listenTo(t,e,n,o={}){let i,r;this[g]||(this[g]={});const s=this[g];w(t)||b(t);const a=w(t);(i=s[a])||(i=s[a]={emitter:t,callbacks:{}}),(r=i.callbacks[e])||(r=i.callbacks[e]=[]),r.push(n),function(t,e,n,o,i){e._addEventListener?e._addEventListener(n,o,i):t._addEventListener.call(e,n,o,i)}(this,t,e,n,o)},stopListening(t,e,n){const o=this[g];let i=t&&w(t);const r=o&&i&&o[i],s=r&&e&&r.callbacks[e];if(!(!o||t&&!r||e&&!s))if(n){y(this,t,e,n);-1!==s.indexOf(n)&&(1===s.length?delete r.callbacks[e]:y(this,t,e,n))}else if(s){for(;n=s.pop();)y(this,t,e,n);delete r.callbacks[e]}else if(r){for(e in r.callbacks)this.stopListening(t,e);delete o[i]}else{for(i in o)this.stopListening(o[i].emitter);delete this[g]}},fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=o.name;let r=C(this,i);if(o.path.push(this),r){const t=[o,...n];r=Array.from(r);for(let e=0;e{this._delegations||(this._delegations=new Map),t.forEach((t=>{const o=this._delegations.get(t);o?o.set(e,n):this._delegations.set(t,new Map([[e,n]]))}))}}},stopDelegating(t,e){if(this._delegations)if(t)if(e){const n=this._delegations.get(t);n&&n.delete(e)}else this._delegations.delete(t);else this._delegations.clear()},_addEventListener(t,e,n){!function(t,e){const n=A(t);if(n[e])return;let o=e,i=null;const r=[];for(;""!==o&&!n[o];)n[o]={callbacks:[],childEvents:[]},r.push(n[o]),i&&n[o].childEvents.push(i),i=o,o=o.substr(0,o.lastIndexOf(":"));if(""!==o){for(const t of r)t.callbacks=n[o].callbacks.slice();n[o].childEvents.push(i)}}(this,t);const o=_(this,t),i={callback:e,priority:s.get(n.priority)};for(const t of o)a(t,i)},_removeEventListener(t,e){const n=_(this,t);for(const t of n)for(let n=0;n-1?C(t,e.substr(0,e.lastIndexOf(":"))):null}function v(t,n,o){for(let[i,r]of t){r?"function"==typeof r&&(r=r(n.name)):r=n.name;const t=new e(n.source,r);t.path=[...n.path],i.fire(t,...o)}}function y(t,e,n,o){e._removeEventListener?e._removeEventListener(n,o):t._removeEventListener.call(e,n,o)}const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const E="object"==typeof global&&global&&global.Object===Object&&global;var D="object"==typeof self&&self&&self.Object===Object&&self;const S=E||D||Function("return this")();const I=S.Symbol;var M=Object.prototype,T=M.hasOwnProperty,B=M.toString,N=I?I.toStringTag:void 0;const z=function(t){var e=T.call(t,N),n=t[N];try{t[N]=void 0;var o=!0}catch(t){}var i=B.call(t);return o&&(e?t[N]=n:delete t[N]),i};var P=Object.prototype.toString;const L=function(t){return P.call(t)};var O=I?I.toStringTag:void 0;const R=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":O&&O in Object(t)?z(t):L(t)};const j=function(t){if(!x(t))return!1;var e=R(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e};const V=S["__core-js_shared__"];var F=function(){var t=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();const H=function(t){return!!F&&F in t};var U=Function.prototype.toString;const W=function(t){if(null!=t){try{return U.call(t)}catch(t){}try{return t+""}catch(t){}}return""};var G=/^\[object .+?Constructor\]$/,q=Function.prototype,Z=Object.prototype,Y=q.toString,K=Z.hasOwnProperty,$=RegExp("^"+Y.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const Q=function(t){return!(!x(t)||H(t))&&(j(t)?$:G).test(W(t))};const J=function(t,e){return null==t?void 0:t[e]};const X=function(t,e){var n=J(t,e);return Q(n)?n:void 0};const tt=function(){try{var t=X(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();const et=function(t,e,n){"__proto__"==e&&tt?tt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n};const nt=function(t,e){return t===e||t!=t&&e!=e};var ot=Object.prototype.hasOwnProperty;const it=function(t,e,n){var o=t[e];ot.call(t,e)&&nt(o,n)&&(void 0!==n||e in t)||et(t,e,n)};const rt=function(t,e,n,o){var i=!n;n||(n={});for(var r=-1,s=e.length;++r0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const gt=mt(ut);const pt=function(t,e){return gt(ct(t,e,st),t+"")};const ft=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991};const kt=function(t){return null!=t&&ft(t.length)&&!j(t)};var bt=/^(?:0|[1-9]\d*)$/;const wt=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&bt.test(t))&&t>-1&&t%1==0&&t1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(i--,r):void 0,s&&At(n[0],n[1],s)&&(r=i<3?void 0:r,i=1),e=Object(e);++o{this.set(e,t[e])}),this);se(this);const n=this[Xt];if(t in this&&!n.has(t))throw new l("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const o=n.get(t);let i=this.fire("set:"+t,t,e,o);void 0===i&&(i=e),o===i&&n.has(t)||(n.set(t,i),this.fire("change:"+t,t,i,o))}}),this[t]=e},bind(...t){if(!t.length||!ce(t))throw new l("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new l("observable-bind-duplicate-properties",this);se(this);const e=this[ee];t.forEach((t=>{if(e.has(t))throw new l("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const o={property:t,to:[]};e.set(t,o),n.set(t,o)})),{to:ae,toMany:le,_observable:this,_bindProperties:t,_to:[],_bindings:n}},unbind(...t){if(!this[Xt])return;const e=this[ee],n=this[te];if(t.length){if(!ce(t))throw new l("observable-unbind-wrong-properties",this);t.forEach((t=>{const o=e.get(t);if(!o)return;let i,r,s,a;o.to.forEach((t=>{i=t[0],r=t[1],s=n.get(i),a=s[r],a.delete(o),a.size||delete s[r],Object.keys(s).length||(n.delete(i),this.stopListening(i,"change"))})),e.delete(t)}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()},decorate(t){const e=this[t];if(!e)throw new l("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][oe]=e,this[ne]||(this[ne]=[]),this[ne].push(t)}};Jt(ie,k),ie.stopListening=function(t,e,n){if(!t&&this[ne]){for(const t of this[ne])this[t]=this[t][oe];delete this[ne]}k.stopListening.call(this,t,e,n)};const re=ie;function se(t){t[Xt]||(Object.defineProperty(t,Xt,{value:new Map}),Object.defineProperty(t,te,{value:new Map}),Object.defineProperty(t,ee,{value:new Map}))}function ae(...t){const e=function(...t){if(!t.length)throw new l("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new l("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),o=n.length;if(!e.callback&&e.to.length>1)throw new l("observable-bind-to-no-callback",this);if(o>1&&e.callback)throw new l("observable-bind-to-extra-callback",this);var i;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==o)throw new l("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),i=this._observable,this._to.forEach((t=>{const e=i[te];let n;e.get(t.observable)||i.listenTo(t.observable,"change",((o,r)=>{n=e.get(t.observable)[r],n&&n.forEach((t=>{de(i,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,o)=>{t._to.forEach((i=>{e=i.properties[n.callback?0:t._bindProperties.indexOf(o)],n.to.push([i.observable,e]),function(t,e,n,o){const i=t[te],r=i.get(n),s=r||{};s[o]||(s[o]=new Set);s[o].add(e),r||i.set(n,s)}(t._observable,n,i.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{de(this._observable,t)}))}function le(t,e,n){if(this._bindings.size>1)throw new l("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function ce(t){return t.every((t=>"string"==typeof t))}function de(t,e){const n=t[ee].get(e);let o;n.callback?o=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(o=n.to[0],o=o[0][o[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=o:t.set(e,o)}function ue(t,...e){e.forEach((e=>{Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)).forEach((n=>{if(n in t.prototype)return;const o=Object.getOwnPropertyDescriptor(e,n);o.enumerable=!1,Object.defineProperty(t.prototype,n,o)}))}))}class he{constructor(t){this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",me,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",me),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function me(t){t.return=!1,t.stop()}ue(he,re);class ge{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this.affectsData=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"}),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n&&this.affectsData?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}))}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",pe,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",pe),this.refresh())}execute(){}destroy(){this.stopListening()}}function pe(t){t.return=!1,t.stop()}ue(ge,re);class fe extends ge{constructor(t){super(t),this._childCommandsDefinitions=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return!!e&&e.execute(t)}registerChildCommand(t,e={priority:"normal"}){a(this._childCommandsDefinitions,{command:t,priority:e.priority}),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){const t=this._childCommandsDefinitions.find((({command:t})=>t.isEnabled));return t&&t.command}}const ke=function(t,e){return function(n){return t(e(n))}};const be=ke(Object.getPrototypeOf,Object);var we=Function.prototype,Ae=Object.prototype,_e=we.toString,Ce=Ae.hasOwnProperty,ve=_e.call(Object);const ye=function(t){if(!vt(t)||"[object Object]"!=R(t))return!1;var e=be(t);if(null===e)return!0;var n=Ce.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&_e.call(n)==ve};const xe=function(){this.__data__=[],this.size=0};const Ee=function(t,e){for(var n=t.length;n--;)if(nt(t[n][0],e))return n;return-1};var De=Array.prototype.splice;const Se=function(t){var e=this.__data__,n=Ee(e,t);return!(n<0)&&(n==e.length-1?e.pop():De.call(e,n,1),--this.size,!0)};const Ie=function(t){var e=this.__data__,n=Ee(e,t);return n<0?void 0:e[n][1]};const Me=function(t){return Ee(this.__data__,t)>-1};const Te=function(t,e){var n=this.__data__,o=Ee(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this};function Be(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e{this._setToTarget(t,o,e[o],n)}))}}function xo(t){return Co(t,Eo)}function Eo(t){return vo(t)?t:void 0}function Do(t){return!(!t||!t[Symbol.iterator])}class So{constructor(t={},e={}){const n=Do(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new l("collection-add-item-invalid-index",this);for(let n=0;n{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding((e=>t(e))):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,o,i)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(o);if(r&&s)this._bindToExternalToInternalMap.set(o,s),this._bindToInternalToExternalMap.set(s,o);else{const n=t(o);if(!n)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const t of this._skippedIndexesFromExternal)i>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(o,n),this._bindToInternalToExternalMap.set(n,o),this.add(n,r);for(let t=0;t{const o=this._bindToExternalToInternalMap.get(e);o&&this.remove(o),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new l("collection-add-invalid-id",this);if(this.get(n))throw new l("collection-add-item-already-exists",this)}else t[e]=n=r();return n}_remove(t){let e,n,o,i=!1;const r=this._idProperty;if("string"==typeof t?(n=t,o=this._itemMap.get(n),i=!o,o&&(e=this._items.indexOf(o))):"number"==typeof t?(e=t,o=this._items[e],i=!o,o&&(n=o[r])):(o=t,n=o[r],e=this._items.indexOf(o),i=-1==e||!this._itemMap.get(n)),i)throw new l("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(o);return this._bindToInternalToExternalMap.delete(o),this._bindToExternalToInternalMap.delete(s),this.fire("remove",o,e),[o,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}ue(So,k);class Io{constructor(t,e=[],n=[]){this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new l("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const o=this,i=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!o._availablePlugins.has(e.pluginName)&&o._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const r=[...function t(e,n=new Set){return e.map((t=>a(t)?t:o._availablePlugins.get(t))).reduce(((e,o)=>n.has(o)?e:(n.add(o),o.requires&&(h(o.requires,o),t(o.requires,n).forEach((t=>e.add(t)))),e.add(o))),new Set)}(t.filter((t=>!d(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new l("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new l("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new l("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const i=o._availablePlugins.get(e);if(!i)throw new l("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const r=t.indexOf(i);if(-1===r){if(o._contextPlugins.has(i))return;throw new l("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(i.requires&&i.requires.length)throw new l("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(r,1,n),o._availablePlugins.set(e,n)}}(r,n);const s=function(t){return t.map((t=>{const e=o._contextPlugins.get(t)||new t(i);return o._add(t,e),e}))}(r);return m(s,"init").then((()=>m(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&t.isContextPlugin}function d(t,e){return e.some((e=>e===t||(u(t)===e||u(e)===t)))}function u(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:o._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(a(t))return;if(e)throw new l("plugincollection-soft-required",i,{missingPlugin:t,requiredBy:u(e)});throw new l("plugincollection-plugin-not-found",i,{plugin:t})}(t,n),function(t,e){if(!c(e))return;if(c(t))return;throw new l("plugincollection-context-required",i,{plugin:u(t),requiredBy:u(e)})}(t,n),function(t,n){if(!n)return;if(!d(t,e))return;throw new l("plugincollection-required",i,{plugin:u(t),requiredBy:u(n)})}(t,n)}))}function m(t,e){return t.reduce(((t,n)=>n[e]?o._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new l("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function Mo(t){return Array.isArray(t)?t:[t]}function To(t,e,n=1){if("number"!=typeof n)throw new l("translation-service-quantity-not-a-number",null,{quantity:n});const o=Object.keys(window.CKEDITOR_TRANSLATIONS).length;1===o&&(t=Object.keys(window.CKEDITOR_TRANSLATIONS)[0]);const i=e.id||e.string;if(0===o||!function(t,e){return!!window.CKEDITOR_TRANSLATIONS[t]&&!!window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,i))return 1!==n?e.plural:e.string;const r=window.CKEDITOR_TRANSLATIONS[t].dictionary,s=window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1);if("string"==typeof r[i])return r[i];const a=Number(s(n));return r[i][a]}ue(Io,k),window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={});const Bo=["ar","ara","fa","per","fas","he","heb","ku","kur","ug","uig"];function No(t){return Bo.includes(t)?"rtl":"ltr"}class zo{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=No(this.uiLanguage),this.contentLanguageDirection=No(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=Mo(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nt.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new l("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class Lo{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}function Oo(t,e){const n=Math.min(t.length,e.length);for(let o=0;ot.data.length)throw new l("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new l("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function Ho(t){return Do(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}class Uo{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=Wo(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const o=Wo(n,t);o&&e.push({element:n,pattern:t,match:o})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function Wo(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return!!e.match(t);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());ye(t)?(void 0!==t.style&&c("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&c("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class"));return Go(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)?null:!(e.classes&&(n.classes=function(t,e){return Go(t,e.getClassNames())}(e.classes,t),!n.classes))&&(!(e.styles&&(n.styles=function(t,e){return Go(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles))&&n)}function Go(t,e,n){const o=function(t){if(Array.isArray(t))return t.map((t=>ye(t)?(void 0!==t.key&&void 0!==t.value||c("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0]));if(ye(t))return Object.entries(t);return[[t,!0]]}(t),i=Array.from(e),r=[];return o.forEach((([t,e])=>{i.forEach((o=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&e.match(t)})(t,o)&&function(t,e,n){if(!0===t)return!0;const o=n(e);return t===o||t instanceof RegExp&&!!String(o).match(t)}(e,o,n)&&r.push(o)}))})),!o.length||r.lengthi?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(i);++oe===t));return Array.isArray(e)}set(t,e){if(x(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Si(t);gi(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!x(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){if(this.isEmpty)return[];if(t)return this._styleProcessor.getStyleNames(this._styles);return this._getStylesEntries().map((([t])=>t))}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),o=pi(this._styles,n);if(!o)return;!Array.from(Object.keys(o)).length&&this.remove(n)}}class Di{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(x(e))Ii(n,Si(t),e);else if(this._normalizers.has(t)){const o=this._normalizers.get(t),{path:i,value:r}=o(e);Ii(n,i,r)}else Ii(n,t,e)}getNormalized(t,e){if(!t)return vi({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return pi(e,n);const o=n(t,e);if(o)return o}return pi(e,Si(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n.values())}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Si(t){return t.replace("-",".")}function Ii(t,e,n){let o=n;x(n)&&(o=vi({},pi(t,e),n)),xi(t,e,o)}class Mi extends jo{constructor(t,e,n,o){if(super(t),this.name=e,this._attrs=function(t){t=Ho(t);for(const[e,n]of t)null===n?t.delete(e):"string"!=typeof n&&t.set(e,String(n));return t}(n),this._children=[],o&&this._insertChild(0,o),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Ti(this._classes,t),this._attrs.delete("class")}this._styles=new Ei(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map,this._unsafeAttributesToRender=[]}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}is(t,e=null){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof Mi))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t=!1){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new Uo(...t);let n=this.parent;for(;n;){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":` ${n}`)}shouldRenderUnsafeAttribute(t){return this._unsafeAttributesToRender.includes(t)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new Vo(t,e)];Do(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Vo(t,e):e instanceof Fo?new Vo(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of Mo(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of Mo(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of Mo(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Ti(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}class Bi extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ni}is(t,e=null){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}}function Ni(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}class zi extends Bi{constructor(t,e,n,o){super(t,e,n,o),this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}is(t,e=null){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}destroy(){this.stopListening()}}ue(zi,re);const Pi=Symbol("rootName");class Li extends zi{constructor(t,e){super(t,e),this.rootName="main"}is(t,e=null){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}get rootName(){return this.getCustomProperty(Pi)}set rootName(t){this._setCustomProperty(Pi,t)}set _name(t){this.name=t}}class Oi{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new l("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=Ri._createAt(t.startPosition):this.position=Ri._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,o;do{o=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0};let o;if(n instanceof Vo){if(t.isAtEnd)return this.position=Ri._createAfter(n),this._next();o=n.data[t.offset]}else o=n.getChild(t.offset);if(o instanceof Mi)return this.shallow?t.offset++:t=new Ri(o,0),this.position=t,this._formatReturnValue("elementStart",o,e,t,1);if(o instanceof Vo){if(this.singleCharacters)return t=new Ri(o,0),this.position=t,this._next();{let n,i=o.data.length;return o==this._boundaryEndParent?(i=this.boundaries.end.offset,n=new Fo(o,0,i),t=Ri._createAfter(n)):(n=new Fo(o,0,o.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{o=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const i=new Fo(n,t.offset,o);return t.offset+=o,this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ri._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0};let o;if(n instanceof Vo){if(t.isAtStart)return this.position=Ri._createBefore(n),this._previous();o=n.data[t.offset-1]}else o=n.getChild(t.offset-1);if(o instanceof Mi)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",o,e,t,1)):(t=new Ri(o,o.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",o,e,t));if(o instanceof Vo){if(this.singleCharacters)return t=new Ri(o,o.data.length),this.position=t,this._previous();{let n,i=o.data.length;if(o==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new Fo(o,e,o.data.length-e),i=n.data.length,t=Ri._createBefore(n)}else n=new Fo(o,0,o.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;o=t.offset-e}t.offset-=o;const i=new Fo(n,t.offset,o);return this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ri._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,o,i){return e instanceof Fo&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Ri._createAfter(e.textNode):(o=Ri._createAfter(e.textNode),this.position=o)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Ri._createBefore(e.textNode):(o=Ri._createBefore(e.textNode),this.position=o))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}}class Ri{constructor(t,e){this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof zi);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Ri._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Oi(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let o=0;for(;e[o]==n[o]&&e[o];)o++;return 0===o?null:e[o-1]}is(t){return"position"===t||"view:position"===t}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const o=Oo(e,n);switch(o){case"prefix":return"before";case"extension":return"after";default:return e[o]0?new this(n,o):new this(o,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Ri._createBefore(t),e)}}function Vi(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function Fi(t){let e=0;for(const n of t)e++;return e}class Hi{constructor(t=null,e,n){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",this.setTo(t,e,n)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=Fi(this.getRanges());if(e!=Fi(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let o of t.getRanges())if(o=o.getTrimmed(),e.start.isEqual(o.start)&&e.end.isEqual(o.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(t,e,n){if(null===t)this._setRanges([]),this._setFakeOptions(e);else if(t instanceof Hi||t instanceof Ui)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof ji)this._setRanges([t],e&&e.backward),this._setFakeOptions(e);else if(t instanceof Ri)this._setRanges([new ji(t)]),this._setFakeOptions(e);else if(t instanceof jo){const o=!!n&&!!n.backward;let i;if(void 0===e)throw new l("view-selection-setto-required-second-parameter",this);i="in"==e?ji._createIn(t):"on"==e?ji._createOn(t):new ji(Ri._createAt(t,e)),this._setRanges([i],o),this._setFakeOptions(n)}else{if(!Do(t))throw new l("view-selection-setto-not-selectable",this);this._setRanges(t,e&&e.backward),this._setFakeOptions(e)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new l("view-selection-setfocus-no-ranges",this);const n=Ri._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.pop(),"before"==n.compareWith(o)?this._addRange(new ji(n,o),!0):this._addRange(new ji(o,n)),this.fire("change")}is(t){return"selection"===t||"view:selection"===t}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof ji))throw new l("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new l("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new ji(t.start,t.end))}}ue(Hi,k);class Ui{constructor(t=null,e,n){this._selection=new Hi,this._selection.delegate("change").to(this),this._selection.setTo(t,e,n)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}is(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setFocus(t,e){this._selection.setFocus(t,e)}}ue(Ui,k);class Wi extends e{constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Gi=Symbol("bubbling contexts"),qi={fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=Qi(this);if(!i.size)return;if(Yi(o,"capturing",this),Ki(i,"$capture",o,...n))return o.return;const r=o.startRange||this.selection.getFirstRange(),s=r?r.getContainedElement():null,a=!!s&&Boolean($i(i,s));let l=s||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,o=e.getPath(),i=n.getPath();return o.length>i.length?e:n}(r);if(Yi(o,"atTarget",l),!a){if(Ki(i,"$text",o,...n))return o.return;Yi(o,"bubbling",l)}for(;l;){if(l.is("rootElement")){if(Ki(i,"$root",o,...n))return o.return}else if(l.is("element")&&Ki(i,l.name,o,...n))return o.return;if(Ki(i,l,o,...n))return o.return;l=l.parent,Yi(o,"bubbling",l)}return Yi(o,"bubbling",this),Ki(i,"$document",o,...n),o.return}catch(t){l.rethrowUnexpectedError(t,this)}},_addEventListener(t,e,n){const o=Mo(n.context||"$document"),i=Qi(this);for(const r of o){let o=i.get(r);o||(o=Object.create(k),i.set(r,o)),this.listenTo(o,t,e,n)}},_removeEventListener(t,e){const n=Qi(this);for(const o of n.values())this.stopListening(o,t,e)}},Zi=qi;function Yi(t,e,n){t instanceof Wi&&(t._eventPhase=e,t._currentTarget=n)}function Ki(t,e,n,...o){const i="string"==typeof e?t.get(e):$i(t,e);return!!i&&(i.fire(n,...o),n.stop.called)}function $i(t,e){for(const[n,o]of t)if("function"==typeof n&&n(e))return o;return null}function Qi(t){return t[Gi]||(t[Gi]=new Map),t[Gi]}class Ji{constructor(t){this.selection=new Ui,this.roots=new So({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}ue(Ji,Zi),ue(Ji,re);class Xi extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=tr,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new l("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}is(t,e=null){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function tr(){if(er(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(er(t)>1)return null;t=t.parent}return!t||er(t)>1?null:this.childCount}function er(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}Xi.DEFAULT_PRIORITY=10;class nr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=or}is(t,e=null){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-emptyelement-cannot-add",[this,e])}}function or(){return null}const ir=navigator.userAgent.toLowerCase(),rr={isMac:ar(ir),isWindows:function(t){return t.indexOf("windows")>-1}(ir),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(ir),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(ir),isiOS:function(t){return!!t.match(/iphone|ipad/i)||ar(t)&&navigator.maxTouchPoints>0}(ir),isAndroid:function(t){return t.indexOf("android")>-1}(ir),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(ir),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}},sr=rr;function ar(t){return t.indexOf("macintosh")>-1}const lr={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},cr={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},dr=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){const n=String.fromCharCode(e);t[n.toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;for(const e of"`-=[];',./\\")t[e]=e.charCodeAt(0);return t}(),ur=Object.fromEntries(Object.entries(dr).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)])));function hr(t){let e;if("string"==typeof t){if(e=dr[t.toLowerCase()],!e)throw new l("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?dr.alt:0)+(t.ctrlKey?dr.ctrl:0)+(t.shiftKey?dr.shift:0)+(t.metaKey?dr.cmd:0);return e}function mr(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return hr(t.slice(0,-1));const e=hr(t);return sr.isMac&&e==dr.ctrl?dr.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function gr(t){let e=mr(t);return Object.entries(sr.isMac?lr:cr).reduce(((t,[n,o])=>(0!=(e&dr[n])&&(e&=~dr[n],t+=o),t)),"")+(e?ur[e]:"")}function pr(t,e){const n="ltr"===e;switch(t){case dr.arrowleft:return n?"left":"right";case dr.arrowright:return n?"right":"left";case dr.arrowup:return"up";case dr.arrowdown:return"down"}}class fr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=br}is(t,e=null){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-uielement-cannot-add",this)}render(t){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function kr(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==dr.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),o=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(o||e.shiftKey){const e=t.focusNode,i=t.focusOffset,r=n.domPositionToView(e,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);o?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function br(){return null}class wr extends Mi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ar}is(t,e=null){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof jo||Array.from(e).length>0))throw new l("view-rawelement-cannot-add",[this,e])}}function Ar(){return null}class _r{constructor(t,e){this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"view:documentFragment"===t}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new Vo(t,e)];Do(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Vo(t,e):e instanceof Fo?new Vo(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{}),o.renderUnsafeAttributes&&i._unsafeAttributesToRender.push(...o.renderUnsafeAttributes),i}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){ye(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}breakAttributes(t){return t instanceof Ri?this._breakAttributes(t):this._breakAttributesRange(t)}breakContainer(t){const e=t.parent;if(!e.is("containerElement"))throw new l("view-writer-break-non-container-element",this.document);if(!e.parent)throw new l("view-writer-break-root",this.document);if(t.isAtStart)return Ri._createBefore(e);if(!t.isAtEnd){const n=e._clone(!1);this.insert(Ri._createAfter(e),n);const o=new ji(t,Ri._createAt(e,"end")),i=new Ri(n,0);this.move(o,i)}return Ri._createAfter(e)}mergeAttributes(t){const e=t.offset,n=t.parent;if(n.is("$text"))return t;if(n.is("attributeElement")&&0===n.childCount){const t=n.parent,e=n.index;return n._remove(),this._removeFromClonedElementsGroup(n),this.mergeAttributes(new Ri(t,e))}const o=n.getChild(e-1),i=n.getChild(e);if(!o||!i)return t;if(o.is("$text")&&i.is("$text"))return Dr(o,i);if(o.is("attributeElement")&&i.is("attributeElement")&&o.isSimilar(i)){const t=o.childCount;return o._appendChild(i.getChildren()),i._remove(),this._removeFromClonedElementsGroup(i),this.mergeAttributes(new Ri(o,t))}return t}mergeContainers(t){const e=t.nodeBefore,n=t.nodeAfter;if(!(e&&n&&e.is("containerElement")&&n.is("containerElement")))throw new l("view-writer-merge-containers-invalid-position",this.document);const o=e.getChild(e.childCount-1),i=o instanceof Vo?Ri._createAt(o,"end"):Ri._createAt(e,"end");return this.move(ji._createIn(n),Ri._createAt(e,"end")),this.remove(ji._createOn(n)),i}insert(t,e){Sr(e=Do(e)?[...e]:[e],this.document);const n=e.reduce(((t,e)=>{const n=t[t.length-1],o=!e.is("uiElement");return n&&n.breakAttributes==o?n.nodes.push(e):t.push({breakAttributes:o,nodes:[e]}),t}),[]);let o=null,i=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(i,t,e);o||(o=n.start),i=n.end}return o?new ji(o,i):new ji(t)}remove(t){const e=t instanceof ji?t:ji._createOn(t);if(Tr(e,this.document),e.isCollapsed)return new _r(this.document);const{start:n,end:o}=this._breakAttributesRange(e,!0),i=n.parent,r=o.offset-n.offset,s=i._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new _r(this.document,s)}clear(t,e){Tr(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const o of n){const n=o.item;let i;if(n.is("element")&&e.isSimilar(n))i=ji._createOn(n);else if(!o.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(i=ji._createIn(t))}i&&(i.end.isAfter(t.end)&&(i.end=t.end),i.start.isBefore(t.start)&&(i.start=t.start),this.remove(i))}}move(t,e){let n;if(e.isAfter(t.end)){const o=(e=this._breakAttributes(e,!0)).parent,i=o.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=o.childCount-i}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof Xi))throw new l("view-writer-wrap-invalid-attribute",this.document);if(Tr(t,this.document),t.isCollapsed){let o=t.start;o.parent.is("element")&&(n=o.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(o=o.getLastMatchingPosition((t=>t.item.is("uiElement")))),o=this._wrapPosition(o,e);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(t.start)&&this.setSelection(o),new ji(o)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof Xi))throw new l("view-writer-unwrap-invalid-attribute",this.document);if(Tr(t,this.document),t.isCollapsed)return t;const{start:n,end:o}=this._breakAttributesRange(t,!0),i=n.parent,r=this._unwrapChildren(i,n.offset,o.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new ji(s,a)}rename(t,e){const n=new Bi(this.document,t,e.getAttributes());return this.insert(Ri._createAfter(e),n),this.move(ji._createIn(e),Ri._createAt(n,0)),this.remove(ji._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Ri._createAt(t,e)}createPositionAfter(t){return Ri._createAfter(t)}createPositionBefore(t){return Ri._createBefore(t)}createRange(t,e){return new ji(t,e)}createRangeOn(t){return ji._createOn(t)}createRangeIn(t){return ji._createIn(t)}createSelection(t,e,n){return new Hi(t,e,n)}createSlot(t){if(!this._slotFactory)throw new l("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,t)}_registerSlotFactory(t){this._slotFactory=t}_clearSlotFactory(){this._slotFactory=null}_insertNodes(t,e,n){let o,i;if(o=n?vr(t):t.parent.is("$text")?t.parent.parent:t.parent,!o)throw new l("view-writer-invalid-position-container",this.document);i=n?this._breakAttributes(t,!0):t.parent.is("$text")?Er(t):t;const r=o._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const c=this.mergeAttributes(s);return new ji(a,c)}_wrapChildren(t,e,n,o){let i=e;const r=[];for(;i!1,t.parent._insertChild(t.offset,n);const o=new ji(t,t.getShiftedBy(1));this.wrap(o,e);const i=new Ri(n.parent,n.index);n._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof Vo&&s instanceof Vo?Dr(r,s):xr(i)}_wrapAttributeElement(t,e){if(!Br(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Br(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,o=t.end;if(Tr(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new ji(n,n)}const i=this._breakAttributes(o,e),r=i.parent.childCount,s=this._breakAttributes(n,e);return i.offset+=i.parent.childCount-r,new ji(s,i)}_breakAttributes(t,e=!1){const n=t.offset,o=t.parent;if(t.parent.is("emptyElement"))throw new l("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new l("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new l("view-writer-cannot-break-raw-element",this.document);if(!e&&o.is("$text")&&Mr(o.parent))return t.clone();if(Mr(o))return t.clone();if(o.is("$text"))return this._breakAttributes(Er(t),e);if(n==o.childCount){const t=new Ri(o.parent,o.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Ri(o.parent,o.index);return this._breakAttributes(t,e)}{const t=o.index+1,i=o._clone();o.parent._insertChild(t,i),this._addToClonedElementsGroup(i);const r=o.childCount-n,s=o._removeChildren(n,r);i._appendChild(s);const a=new Ri(o.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function vr(t){let e=t.parent;for(;!Mr(e);){if(!e)return;e=e.parent}return e}function yr(t,e){return t.prioritye.priority)&&t.getIdentity()n instanceof t)))throw new l("view-writer-insert-invalid-node-type",e);n.is("$text")||Sr(n.getChildren(),e)}}const Ir=[Vo,Xi,Bi,nr,wr,fr];function Mr(t){return t&&(t.is("containerElement")||t.is("documentFragment"))}function Tr(t,e){const n=vr(t.start),o=vr(t.end);if(!n||!o||n!==o)throw new l("view-writer-invalid-range-container",e)}function Br(t,e){return null===t.id&&null===e.id}function Nr(t){return"[object Text]"==Object.prototype.toString.call(t)}const zr=t=>t.createTextNode(" "),Pr=t=>{const e=t.createElement("span");return e.dataset.ckeFiller=!0,e.innerHTML=" ",e},Lr=t=>{const e=t.createElement("br");return e.dataset.ckeFiller=!0,e},Or="⁠".repeat(7);function Rr(t){return Nr(t)&&t.data.substr(0,7)===Or}function jr(t){return 7==t.data.length&&Rr(t)}function Vr(t){return Rr(t)?t.data.slice(7):t.data}function Fr(t,e){if(e.keyCode==dr.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Rr(e)&&n<=7&&t.collapse(e,0)}}}function Hr(t,e,n,o=!1){n=n||function(t,e){return t===e},Array.isArray(t)||(t=Array.prototype.slice.call(t)),Array.isArray(e)||(e=Array.prototype.slice.call(e));const i=function(t,e,n){const o=Ur(t,e,n);if(-1===o)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=Wr(t,o),r=Wr(e,o),s=Ur(i,r,n),a=t.length-s,l=e.length-s;return{firstIndex:o,lastIndexOld:a,lastIndexNew:l}}(t,e,n);return o?function(t,e){const{firstIndex:n,lastIndexOld:o,lastIndexNew:i}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));i-n>0&&(r=r.concat(Array(i-n).fill("insert")));o-n>0&&(r=r.concat(Array(o-n).fill("delete")));i0&&n.push({index:o,type:"insert",values:t.slice(o,r)});i-o>0&&n.push({index:o+(r-o),type:"delete",howMany:i-o});return n}(e,i)}function Ur(t,e,n){for(let o=0;o200||i>200||o+i>300)return Gr.fastDiff(t,e,n,!0);let r,s;if(ic?-1:1;d[o+h]&&(d[o]=d[o+h].slice(0)),d[o]||(d[o]=[]),d[o].push(i>c?r:s);let m=Math.max(i,c),g=m-o;for(;gc;m--)u[m]=h(m);u[c]=h(c),g++}while(u[c]!==l);return d[c].slice(1)}function qr(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function Zr(t){const e=t.parentNode;e&&e.removeChild(t)}function Yr(t){return t&&t.nodeType===Node.COMMENT_NODE}function Kr(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}Gr.fastDiff=Hr;var $r=n(3379),Qr=n.n($r),Jr=n(9037),Xr=n.n(Jr),ts=n(569),es=n.n(ts),ns=n(8575),os=n.n(ns),is=n(9216),rs=n.n(is),ss=n(4401),as={attributes:{"data-cke":!0}};as.setAttributes=os(),as.insert=es().bind(null,"head"),as.domAPI=Xr(),as.insertStyleElement=rs();Qr()(ss.Z,as);ss.Z&&ss.Z.locals&&ss.Z.locals;class ls{constructor(t,e){this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.set("isFocused",!1),this.set("isSelecting",!1),sr.isBlink&&!sr.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()})),this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new l("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){let t;const e=!(sr.isBlink&&!sr.isAndroid)||!this.isSelecting;for(const t of this.markedChildren)this._updateChildrenMappings(t);e?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(t=this.domConverter.domPositionToView(this._inlineFiller));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(e)if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Rr(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=cs(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(this.domConverter.mapViewToDom(t).childNodes),o=Array.from(this.domConverter.viewChildrenToDom(t,e.ownerDocument,{withChildren:!1})),i=this._diffNodeLists(n,o),r=this._findReplaceActions(i,n,o);if(-1!==r.indexOf("replace")){const e={equal:0,insert:0,delete:0};for(const i of r)if("replace"===i){const i=e.equal+e.insert,r=e.equal+e.delete,s=t.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[r]),Zr(o[i]),e.equal++}else e[i]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Ri._createBefore(this.selection.getFirstPosition().parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&Nr(e.parent)&&Rr(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Rr(t))throw new l("view-renderer-filler-was-lost",this);jr(t)?t.remove():t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const o=t.nodeBefore,i=t.nodeAfter;return!(o instanceof Vo||i instanceof Vo)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t),o=this.domConverter.viewToDom(t,n.ownerDocument),i=n.data;let r=o.data;const s=e.inlineFillerPosition;if(s&&s.parent==t.parent&&s.offset==t.index&&(r=Or+r),i!=r){const t=Hr(i,r);for(const e of t)"insert"===e.type?n.insertData(e.index,e.values.join("")):n.deleteData(e.index,e.howMany)}}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),o=t.getAttributeKeys();for(const n of o)this.domConverter.setDomElementAttribute(e,n,t.getAttribute(n),t);for(const o of n)t.hasAttribute(o)||this.domConverter.removeDomElementAttribute(e,o)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;const o=e.inlineFillerPosition,i=this.domConverter.mapViewToDom(t).childNodes,r=Array.from(this.domConverter.viewChildrenToDom(t,n.ownerDocument,{bind:!0}));o&&o.parent===t&&cs(n.ownerDocument,r,o.offset);const s=this._diffNodeLists(i,r);let a=0;const l=new Set;for(const t of s)"delete"===t?(l.add(i[a]),Zr(i[a])):"equal"===t&&a++;a=0;for(const t of s)"insert"===t?(qr(n,a,r[a]),a++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(r[a])),a++);for(const t of l)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return Gr(t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;n[n.length-1]==e&&n.pop();return n}(t,this._fakeSelectionContainer),e,us.bind(null,this.domConverter))}_findReplaceActions(t,e,n){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let o=[],i=[],r=[];const s={equal:0,insert:0,delete:0};for(const a of t)"insert"===a?r.push(n[s.equal+s.insert]):"delete"===a?i.push(e[s.equal+s.delete]):(o=o.concat(Gr(i,r,ds).map((t=>"equal"===t?"replace":t))),o.push("equal"),i=[],r=[]),s[a]++;return o.concat(Gr(i,r,ds).map((t=>"equal"===t?"replace":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(sr.isBlink&&!sr.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):(this._removeFakeSelection(),this._updateDomSelection(t)))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const o=e.getSelection(),i=e.createRange();o.removeAllRanges(),i.selectNodeContents(n),o.addRange(i)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);e.collapse(n.parent,n.offset),e.extend(o.parent,o.offset),sr.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const o=n.childNodes[t.offset];o&&"BR"==o.tagName&&e.addRange(e.getRangeAt(0))}(o,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){if(t.getSelection().rangeCount){const e=t.activeElement,n=this.domConverter.mapDomToView(e);e&&n&&t.getSelection().removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function cs(t,e,n){const o=e instanceof Array?e:e.childNodes,i=o[n];if(Nr(i))return i.data=Or+i.data,i;{const i=t.createTextNode(Or);return Array.isArray(e)?o.splice(n,0,i):qr(e,n,i),i}}function ds(t,e){return Kr(t)&&Kr(e)&&!Nr(t)&&!Nr(e)&&!Yr(t)&&!Yr(e)&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function us(t,e,n){return e===n||(Nr(e)&&Nr(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}ue(ls,re);const hs={window,document};function ms(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function gs(t){const e=[];for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}const ps=Lr(document),fs=zr(document),ks=Pr(document),bs="data-ck-unsafe-attribute-",ws="data-ck-unsafe-element",As=["script","style"];class _s{constructor(t,e={}){this.document=t,this.renderingMode=e.renderingMode||"editing",this.blockFillerMode=e.blockFillerMode||("editing"===this.renderingMode?"br":"nbsp"),this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new Uo,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new Hi(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of t.childNodes)this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}shouldRenderAttribute(t,e,n){return"data"===this.renderingMode||!(t=t.toLowerCase()).startsWith("on")&&(("srcdoc"!==t||!e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===n&&("src"===t||"srcset"===t)||("source"===n&&"srcset"===t||!e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(t,e){if("data"===this.renderingMode)return void(t.innerHTML=e);const n=(new DOMParser).parseFromString(e,"text/html"),o=n.createDocumentFragment(),i=n.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);const r=n.createTreeWalker(o,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const t of s){for(const e of t.getAttributeNames())this.setDomElementAttribute(t,e,t.getAttribute(e));const e=t.tagName.toLowerCase();this._shouldRenameElement(e)&&(ys(e),t.replaceWith(this._createReplacementDomElement(e,t)))}for(;t.firstChild;)t.firstChild.remove();t.append(o)}viewToDom(t,e,n={}){if(t.is("$text")){const n=this._processDataFromViewText(t);return e.createTextNode(n)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let o;if(t.is("documentFragment"))o=e.createDocumentFragment(),n.bind&&this.bindDocumentFragments(o,t);else{if(t.is("uiElement"))return o="$comment"===t.name?e.createComment(t.getCustomProperty("$rawContent")):t.render(e,this),n.bind&&this.bindElements(o,t),o;this._shouldRenameElement(t.name)?(ys(t.name),o=this._createReplacementDomElement(t.name)):o=t.hasAttribute("xmlns")?e.createElementNS(t.getAttribute("xmlns"),t.name):e.createElement(t.name),t.is("rawElement")&&t.render(o,this),n.bind&&this.bindElements(o,t);for(const e of t.getAttributeKeys())this.setDomElementAttribute(o,e,t.getAttribute(e),t)}if(!1!==n.withChildren)for(const i of this.viewChildrenToDom(t,e,n))o.appendChild(i);return o}}setDomElementAttribute(t,e,n,o=null){const i=this.shouldRenderAttribute(e,n,t.tagName.toLowerCase())||o&&o.shouldRenderUnsafeAttribute(e);i||c("domconverter-unsafe-attribute-detected",{domElement:t,key:e,value:n}),t.hasAttribute(e)&&!i?t.removeAttribute(e):t.hasAttribute(bs+e)&&i&&t.removeAttribute(bs+e),t.setAttribute(i?e:bs+e,n)}removeDomElementAttribute(t,e){e!=ws&&(t.removeAttribute(e),t.removeAttribute(bs+e))}*viewChildrenToDom(t,e,n={}){const o=t.getFillerOffset&&t.getFillerOffset();let i=0;for(const r of t.getChildren()){o===i&&(yield this._getBlockFiller(e));const t=r.is("element")&&r.getCustomProperty("dataPipeline:transparentRendering");t&&"data"==this.renderingMode?yield*this.viewChildrenToDom(r,e,n):(t&&c("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:r}),yield this.viewToDom(r,e,n)),i++}o===i&&(yield this._getBlockFiller(e))}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),o=document.createRange();return o.setStart(e.parent,e.offset),o.setEnd(n.parent,n.offset),o}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let o=t.offset;return Rr(n)&&(o+=7),{parent:n,offset:o}}{let n,o,i;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;i=n.childNodes[0]}else{const e=t.nodeBefore;if(o=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(t.nodeBefore),!o)return null;n=o.parentNode,i=o.nextSibling}if(Nr(i)&&Rr(i))return{parent:i,offset:7};return{parent:n,offset:o?ms(o)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t))return null;const n=this.getHostViewElement(t);if(n)return n;if(Yr(t)&&e.skipComments)return null;if(Nr(t)){if(jr(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new Vo(this.document,e)}}{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new _r(this.document),e.bind&&this.bindDocumentFragments(t,n);else{n=this._createViewElement(t,e),e.bind&&this.bindElements(t,n);const o=t.attributes;if(o)for(let t=o.length-1;t>=0;t--)n._setAttribute(o[t].name,o[t].value);if(this._isViewElementWithRawContent(n,e)||Yr(t)){const e=Yr(t)?t.data:t.innerHTML;return n._setCustomProperty("$rawContent",e),this._encounteredRawContentDomNodes.add(t),n}}if(!1!==e.withChildren)for(const o of this.domChildrenToView(t,e))n._appendChild(o);return n}}*domChildrenToView(t,e={}){for(let n=0;n{const{scrollLeft:e,scrollTop:n}=t;o.push([e,n])})),e.focus(),Cs(e,(t=>{const[e,n]=o.shift();t.scrollLeft=e,t.scrollTop=n})),hs.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(ps):!("BR"!==t.tagName||!vs(t,this.blockElements)||1!==t.parentNode.childNodes.length)||(t.isEqualNode(ks)||function(t,e){return t.isEqualNode(fs)&&vs(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements))}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=gs(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_getBlockFiller(t){switch(this.blockFillerMode){case"nbsp":return zr(t);case"markedNbsp":return Pr(t);case"br":return Lr(t)}}_isDomSelectionPositionCorrect(t,e){if(Nr(t)&&Rr(t)&&e<7)return!1;if(this.isElement(t)&&Rr(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),o=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!o||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(function(t,e){return gs(t).some((t=>t.tagName&&e.includes(t.tagName.toLowerCase())))}(t,this.preElements))return Vr(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),o=this._getTouchingInlineDomNode(t,!0),i=this._checkShouldLeftTrimDomText(t,n),r=this._checkShouldRightTrimDomText(t,o);i&&(e=e.replace(/^ /,"")),r&&(e=e.replace(/ $/,"")),e=Vr(new Text(e)),e=e.replace(/ \u00A0/g," ");const s=o&&this.isElement(o)&&"BR"!=o.tagName,a=o&&Nr(o)&&" "==o.data.charAt(0);return(/( |\u00A0)\u00A0$/.test(e)||!o||s||a)&&(e=e.replace(/\u00A0$/," ")),(i||n&&this.isElement(n)&&"BR"!=n.tagName)&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(this.isElement(e)?"BR"===e.tagName:!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!Rr(t)}_getTouchingInlineViewNode(t,e){const n=new Oi({startPosition:e?Ri._createAfter(t):Ri._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element")&&this.inlineObjectElements.includes(t.item.name))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"firstChild":"lastChild",o=e?"nextSibling":"previousSibling";let i=!0;do{if(!i&&t[n]?t=t[n]:t[o]?(t=t[o],i=!1):(t=t.parentNode,i=!0),!t||this._isBlockElement(t))return null}while(!Nr(t)&&"BR"!=t.tagName&&!this._isInlineObjectElement(t));return t}_isBlockElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isInlineObjectElement(t){return this.isElement(t)&&this.inlineObjectElements.includes(t.tagName.toLowerCase())}_createViewElement(t,e){if(Yr(t))return new fr(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new Mi(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&this._rawContentElementMatcher.match(t)}_shouldRenameElement(t){const e=t.toLowerCase();return"editing"===this.renderingMode&&As.includes(e)}_createReplacementDomElement(t,e=null){const n=document.createElement("span");if(n.setAttribute(ws,t),e){for(;e.firstChild;)n.appendChild(e.firstChild);for(const t of e.getAttributeNames())n.setAttribute(t,e.getAttribute(t))}return n}}function Cs(t,e){for(;t&&t!=hs.document;)e(t),t=t.parentNode}function vs(t,e){const n=t.parentNode;return n&&n.tagName&&e.includes(n.tagName.toLowerCase())}function ys(t){"script"===t&&c("domconverter-unsafe-script-element-detected"),"style"===t&&c("domconverter-unsafe-style-element-detected")}function xs(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}const Es=Jt({},k,{listenTo(t,e,n,o={}){if(Kr(t)||xs(t)){const i={capture:!!o.useCapture,passive:!!o.usePassive},r=this._getProxyEmitter(t,i)||new Ss(t,i);this.listenTo(r,e,n,o)}else k.listenTo.call(this,t,e,n,o)},stopListening(t,e,n){if(Kr(t)||xs(t)){const o=this._getAllProxyEmitters(t);for(const t of o)this.stopListening(t,e,n)}else k.stopListening.call(this,t,e,n)},_getProxyEmitter(t,e){return n=this,o=Is(t,e),n[g]&&n[g][o]?n[g][o].emitter:null;var n,o},_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}),Ds=Es;class Ss{constructor(t,e){b(this,Is(t,e)),this._domNode=t,this._options=e}}function Is(t,e){let n=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=r())}(t);for(const t of Object.keys(e).sort())e[t]&&(n+="-"+t);return n}Jt(Ss.prototype,k,{attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e},detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()},_addEventListener(t,e,n){this.attach(t),k._addEventListener.call(this,t,e,n)},_removeEventListener(t,e){k._removeEventListener.call(this,t,e),this.detach(t)},_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}});class Ms{constructor(t){this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}ue(Ms,Ds);const Ts=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const Bs=function(t){return this.__data__.has(t)};function Ns(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new on;++ea))return!1;var c=r.get(t),d=r.get(e);if(c&&d)return c==e&&d==t;var u=-1,h=!0,m=2&n?new zs:void 0;for(r.set(t,e),r.set(e,t);++u{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}fire(t,e,n){this.isEnabled&&this.document.fire(t,new Xs(this.view,e,n))}}class ea extends ta{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){this.fire(t.type,t,{keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return hr(this)}})}}const na=function(){return S.Date.now()};var oa=/\s/;const ia=function(t){for(var e=t.length;e--&&oa.test(t.charAt(e)););return e};var ra=/^\s+/;const sa=function(t){return t?t.slice(0,ia(t)+1).replace(ra,""):t};var aa=/^[-+]0x[0-9a-f]+$/i,la=/^0b[01]+$/i,ca=/^0o[0-7]+$/i,da=parseInt;const ua=function(t){if("number"==typeof t)return t;if(qo(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=sa(t);var n=la.test(t);return n||ca.test(t)?da(t.slice(2),n?2:8):aa.test(t)?NaN:+t};var ha=Math.max,ma=Math.min;const ga=function(t,e,n){var o,i,r,s,a,l,c=0,d=!1,u=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var n=o,r=i;return o=i=void 0,c=e,s=t.apply(r,n)}function g(t){return c=t,a=setTimeout(f,e),d?m(t):s}function p(t){var n=t-l;return void 0===l||n>=e||n<0||u&&t-c>=r}function f(){var t=na();if(p(t))return k(t);a=setTimeout(f,function(t){var n=e-(t-l);return u?ma(n,r-(t-c)):n}(t))}function k(t){return a=void 0,h&&o?m(t):(o=i=void 0,s)}function b(){var t=na(),n=p(t);if(o=arguments,i=this,l=t,n){if(void 0===a)return g(l);if(u)return clearTimeout(a),a=setTimeout(f,e),m(l)}return void 0===a&&(a=setTimeout(f,e)),s}return e=ua(e)||0,x(n)&&(d=!!n.leading,r=(u="maxWait"in n)?ha(ua(n.maxWait)||0,e):r,h="trailing"in n?!!n.trailing:h),b.cancel=function(){void 0!==a&&clearTimeout(a),c=0,o=l=i=a=void 0},b.flush=function(){return void 0===a?s:k(na())},b};class pa extends Ms{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=ga((t=>this.document.fire("selectionChangeDone",t)),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new Hi(e.getRanges(),{backward:e.isBackward,fake:!1});t!=dr.arrowleft&&t!=dr.arrowup||n.setTo(n.getFirstPosition()),t!=dr.arrowright&&t!=dr.arrowdown||n.setTo(n.getLastPosition());const o={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",o),this._fireSelectionChangeDoneDebounced(o)}}class fa extends Ms{constructor(t){super(t),this.mutationObserver=t.getObserver(Js),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=ga((t=>this.document.fire("selectionChangeDone",t)),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=ga((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument,n=()=>{this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel()};this.listenTo(t,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(t,"keydown",n,{priority:"highest"}),this.listenTo(t,"keyup",n,{priority:"highest"}),this._documents.has(e)||(this.listenTo(e,"mouseup",n,{priority:"highest"}),this.listenTo(e,"selectionchange",((t,n)=>{this._handleSelectionChange(n,e),this._documentIsSelectingInactivityTimeoutDebounced()})),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(n);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(o)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(o))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:o,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class ka extends ta{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",(()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout((()=>t.change((()=>{}))),50)})),e.on("blur",((n,o)=>{const i=e.selection.editableElement;null!==i&&i!==o.target||(e.isFocused=!1,t.change((()=>{})))}))}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class ba extends ta{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0})),e.on("compositionend",(()=>{e.isComposing=!1}))}onDomEvent(t){this.fire(t.type,t)}}class wa extends ta{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){this.fire(t.type,t)}}class Aa{constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}const _a=function(t){return"string"==typeof t||!It(t)&&vt(t)&&"[object String]"==R(t)};function Ca(t,e,n={},o=[]){const i=n&&n.xmlns,r=i?t.createElementNS(i,e):t.createElement(e);for(const t in n)r.setAttribute(t,n[t]);!_a(o)&&Do(o)||(o=[o]);for(let e of o)_a(e)&&(e=t.createTextNode(e)),r.appendChild(e);return r}function va(t){return"[object Range]"==Object.prototype.toString.apply(t)}function ya(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const xa=["top","right","bottom","left","width","height"];class Ea{constructor(t){const e=va(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),vo(t)||e)if(e){const e=Ea.getDomRangeRects(t);Da(this,Ea.getBoundingRect(e))}else Da(this,t.getBoundingClientRect());else if(xs(t)){const{innerWidth:e,innerHeight:n}=t;Da(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Da(this,t)}clone(){return new Ea(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left)};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new Ea(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!Sa(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!Sa(n);){const t=new Ea(n),o=e.getIntersection(t);if(!o)return null;o.getArea(){for(const e of t){const t=Ia._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}Ia._observerInstance=null,Ia._elementCallbacks=null;class Ma{constructor(t){this._callback=t,this._elements=new Set,this._previousRects=new Map,this._periodicCheckTimeout=null}observe(t){this._elements.add(t),this._checkElementRectsAndExecuteCallback(),1===this._elements.size&&this._startPeriodicCheck()}unobserve(t){this._elements.delete(t),this._previousRects.delete(t),this._elements.size||this._stopPeriodicCheck()}_startPeriodicCheck(){const t=()=>{this._checkElementRectsAndExecuteCallback(),this._periodicCheckTimeout=setTimeout(t,100)};this.listenTo(hs.window,"resize",(()=>{this._checkElementRectsAndExecuteCallback()})),this._periodicCheckTimeout=setTimeout(t,100)}_stopPeriodicCheck(){clearTimeout(this._periodicCheckTimeout),this.stopListening(),this._previousRects.clear()}_checkElementRectsAndExecuteCallback(){const t=[];for(const e of this._elements)this._hasRectChanged(e)&&t.push({target:e,contentRect:this._previousRects.get(e)});t.length&&this._callback(t)}_hasRectChanged(t){if(!t.ownerDocument.body.contains(t))return!1;const e=new Ea(t),n=this._previousRects.get(t),o=!n||!n.isEqual(e);return this._previousRects.set(t,e),o}}ue(Ma,Ds);function Ta({target:t,viewportOffset:e=0}){const n=Ra(t);let o=n,i=null;for(;o;){let r;r=ja(o==n?t:i),Na(r,(()=>Va(t,o)));const s=Va(t,o);if(Ba(o,s,e),o.parent!=o){if(i=o.frameElement,o=o.parent,!i)return}else o=null}}function Ba(t,e,n){const o=e.clone().moveBy(0,n),i=e.clone().moveBy(0,-n),r=new Ea(t).excludeScrollbarsAndBorders();if(![i,o].every((t=>r.contains(t)))){let{scrollX:s,scrollY:a}=t;Pa(i,r)?a-=r.top-e.top+n:za(o,r)&&(a+=e.bottom-r.bottom+n),La(e,r)?s-=r.left-e.left+n:Oa(e,r)&&(s+=e.right-r.right+n),t.scrollTo(s,a)}}function Na(t,e){const n=Ra(t);let o,i;for(;t!=n.document.body;)i=e(),o=new Ea(t).excludeScrollbarsAndBorders(),o.contains(i)||(Pa(i,o)?t.scrollTop-=o.top-i.top:za(i,o)&&(t.scrollTop+=i.bottom-o.bottom),La(i,o)?t.scrollLeft-=o.left-i.left:Oa(i,o)&&(t.scrollLeft+=i.right-o.right)),t=t.parentNode}function za(t,e){return t.bottom>e.bottom}function Pa(t,e){return t.tope.right}function Ra(t){return va(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function ja(t){if(va(t)){let e=t.commonAncestorContainer;return Nr(e)&&(e=e.parentNode),e}return t.parentNode}function Va(t,e){const n=Ra(t),o=new Ea(t);if(n===e)return o;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ea(e).excludeScrollbarsAndBorders();o.moveBy(n.left,n.top),t=t.parent}}return o}function Fa(t){const e=t.next();return e.done?null:e.value}Object.assign({},{scrollViewportToShowTarget:Ta,scrollAncestorsToShowTarget:function(t){Na(ja(t),(()=>new Ea(t)))}});class Ha{constructor(){this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new l("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(t),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}ue(Ha,Ds),ue(Ha,re);class Ua{constructor(){this._listener=Object.create(Ds)}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+hr(e),e)}))}set(t,e,n={}){const o=mr(t),i=n.priority;this._listener.listenTo(this._listener,"_keydown:"+o,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:i})}press(t){return!!this._listener.fire("_keydown:"+hr(t),t)}destroy(){this._listener.stopListening()}}class Wa extends Ms{constructor(t){super(t),this.document.on("keydown",((t,e)=>{if(this.isEnabled&&((n=e.keyCode)==dr.arrowright||n==dr.arrowleft||n==dr.arrowup||n==dr.arrowdown)){const n=new Wi(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}}class Ga extends Ms{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(!this.isEnabled||n.keyCode!=dr.tab||n.ctrlKey)return;const o=new Wi(e,"tab",e.selection.getFirstRange());e.fire(o,n),o.stop.called&&t.stop()}))}observe(){}}class qa{constructor(t){this.document=new Ji(t),this.domConverter=new _s(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new ls(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting").to(this.document),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new Cr(this.document),this.addObserver(Js),this.addObserver(fa),this.addObserver(ka),this.addObserver(ea),this.addObserver(pa),this.addObserver(ba),this.addObserver(Wa),this.addObserver(Ga),sr.isAndroid&&this.addObserver(wa),this.document.on("arrowKey",Fr,{priority:"low"}),kr(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const o={};for(const{name:e,value:i}of Array.from(t.attributes))o[e]=i,"class"===e?this._writer.addClass(i.split(" "),n):this._writer.setAttribute(e,i,n);this._initialDomRootAttributes.set(t,o);const i=()=>{this._writer.setAttribute("contenteditable",!n.isReadOnly,n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};i(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(i))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&Ta({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new l("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){l.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Ri._createAt(t,e)}createPositionAfter(t){return Ri._createAfter(t)}createPositionBefore(t){return Ri._createBefore(t)}createRange(t,e){return new ji(t,e)}createRangeOn(t){return ji._createOn(t)}createRangeIn(t){return ji._createIn(t)}createSelection(t,e,n){return new Hi(t,e,n)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}ue(qa,re);class Za{constructor(t){this.parent=null,this._attrs=Ho(t)}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new l("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new l("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=Oo(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o](t[e[0]]=e[1],t)),{})),t}is(t){return"node"===t||"model:node"===t}_clone(){return new Za(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=Ho(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}class Ya extends Za{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}is(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new Ya(this.data,this.getAttributes())}static fromJSON(t){return new Ya(t.data,t.attributes)}}class Ka{constructor(t,e,n){if(this.textNode=t,e<0||e>t.offsetSize)throw new l("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new l("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}is(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}class $a{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new l("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&tt.toJSON()))}}class Qa extends Za{constructor(t,e,n){super(e),this.name=t,this._children=new $a,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(t,e=null){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={includeSelf:!1}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):null;return new Qa(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new Ya(t)];Do(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Ya(t):t instanceof Ka?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e=null;if(t.children){e=[];for(const n of t.children)n.name?e.push(Qa.fromJSON(n)):e.push(Ya.fromJSON(n))}return new Qa(t.name,t.attributes,e)}}class Ja{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new l("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=tl._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,o,i;do{o=this.position,i=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o,this._visitedParent=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};const o=el(e,n),i=o||nl(e,n,o);if(i instanceof Qa)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=i),this.position=e,Xa("elementStart",i,t,e,1);if(i instanceof Ya){let o;if(this.singleCharacters)o=1;else{let t=i.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),o=e.offset-t}const i=e.offset-r.startOffset,s=new Ka(r,i-o,o);return e.offset-=o,this.position=e,Xa("text",s,t,e,o)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,Xa("elementStart",n,t,e,1)}}function Xa(t,e,n,o,i){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}class tl{constructor(t,e,n="toNone"){if(!t.is("element")&&!t.is("documentFragment"))throw new l("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new l("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;en.path.length){if(e.offset!==o.maxOffset)return!1;e.path=e.path.slice(0,-1),o=o.parent,e.offset++}else{if(0!==n.offset)return!1;n.path=n.path.slice(0,-1)}}}is(t){return"position"===t||"model:position"===t}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==Oo(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=tl._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?tl._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=tl._createAt(this);if(this.root!=t.root)return n;if("same"==Oo(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==Oo(t.getParentPath(),this.getParentPath())){const o=t.path.length-1;if(t.offset<=this.path[o]){if(t.offset+e>this.path[o])return null;n.path[o]-=e}}return n}_getTransformedByInsertion(t,e){const n=tl._createAt(this);if(this.root!=t.root)return n;if("same"==Oo(t.getParentPath(),this.getParentPath()))(t.offsete+1;){const e=o.maxOffset-n.offset;0!==e&&t.push(new il(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,o=o.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],o=e-n.offset;0!==o&&t.push(new il(n,n.getShiftedBy(o))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new Ja(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new Ja(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new Ja(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new il(this.start,this.end)]}getTransformedByOperations(t){const e=[new il(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,o):new this(o,n)}static _createIn(t){return new this(tl._createAt(t,0),tl._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(tl._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new l("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),o=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(o.start);e++)o.start=tl._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);if(!n)throw new l("mapping-model-position-view-parent-not-found",this,{modelPosition:e.modelPosition});e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),o=this._viewToModelMapping.get(n),i=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=tl._createAt(o,i)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t,e={}){const n=this.toModelElement(t);if(this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);e.defer?this._deferredBindingRemovals.set(t,t.root):(this._viewToModelMapping.delete(t),this._modelToViewMapping.get(n)==t&&this._modelToViewMapping.delete(n))}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const o=this._elementToMarkerNames.get(t)||new Set;o.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,o)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const o=this._elementToMarkerNames.get(t);o&&(o.delete(e),0==o.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}flushDeferredBindings(){for(const[t,e]of this._deferredBindingRemovals)t.root==e&&this.unbindViewElement(t);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new il(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new ji(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={isPhantom:!1}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let o=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class ll{constructor(t){this._conversionApi={dispatcher:this,...t},this._firedEventsMap=new WeakMap}convertChanges(t,e,n){const o=this._createConversionApi(n,t.getRefreshedItems());for(const e of t.getMarkersToRemove())this._convertMarkerRemove(e.name,e.range,o);const i=this._reduceChanges(t.getChanges());for(const t of i)"insert"===t.type?this._convertInsert(il._createFromPositionAndShift(t.position,t.length),o):"reinsert"===t.type?this._convertReinsert(il._createFromPositionAndShift(t.position,t.length),o):"remove"===t.type?this._convertRemove(t.position,t.length,t.name,o):this._convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,o);for(const t of o.mapper.flushUnboundMarkerNames()){const n=e.get(t).getRange();this._convertMarkerRemove(t,n,o),this._convertMarkerAdd(t,n,o)}for(const e of t.getMarkersToAdd())this._convertMarkerAdd(e.name,e.range,o);o.mapper.flushDeferredBindings(),o.consumable.verifyAllConsumed("insert")}convert(t,e,n,o={}){const i=this._createConversionApi(n,void 0,o);this._convertInsert(t,i);for(const[t,n]of e)this._convertMarkerAdd(t,n,i);i.consumable.verifyAllConsumed("insert")}convertSelection(t,e,n){const o=Array.from(e.getMarkersAtPosition(t.getFirstPosition())),i=this._createConversionApi(n);if(this._addConsumablesForSelection(i.consumable,t,o),this.fire("selection",{selection:t},i),t.isCollapsed){for(const e of o){const n=e.getRange();if(!cl(t.getFirstPosition(),e,i.mapper))continue;const o={item:t,markerName:e.name,markerRange:n};i.consumable.test(t,"addMarker:"+e.name)&&this.fire("addMarker:"+e.name,o,i)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};i.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire("attribute:"+n.attributeKey+":$text",n,i)}}}_convertInsert(t,e,n={}){n.doNotAddConsumables||this._addConsumablesForInsert(e.consumable,Array.from(t));for(const n of Array.from(t.getWalker({shallow:!0})).map(dl))this._testAndFire("insert",n,e)}_convertRemove(t,e,n,o){this.fire("remove:"+n,{position:t,length:e},o)}_convertAttribute(t,e,n,o,i){this._addConsumablesForRange(i.consumable,t,`attribute:${e}`);for(const r of t){const t={item:r.item,range:il._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:o};this._testAndFire(`attribute:${e}`,t,i)}}_convertReinsert(t,e){const n=Array.from(t.getWalker({shallow:!0}));this._addConsumablesForInsert(e.consumable,n);for(const t of n.map(dl))this._testAndFire("insert",{...t,reconversion:!0},e)}_convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;const o="addMarker:"+t;if(n.consumable.add(e,o),this.fire(o,{markerName:t,markerRange:e},n),n.consumable.consume(e,o)){this._addConsumablesForRange(n.consumable,e,o);for(const i of e.getItems()){if(!n.consumable.test(i,o))continue;const r={item:i,range:il._createOn(i),markerName:t,markerRange:e};this.fire(o,r,n)}}}_convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&this.fire("removeMarker:"+t,{markerName:t,markerRange:e},n)}_reduceChanges(t){const e={changes:t};return this.fire("reduceChanges",e),e.changes}_addConsumablesForInsert(t,e){for(const n of e){const e=n.item;if(null===t.test(e,"insert")){t.add(e,"insert");for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n)}}return t}_addConsumablesForRange(t,e,n){for(const o of e.getItems())t.add(o,n);return t}_addConsumablesForSelection(t,e,n){t.add(e,"selection");for(const o of n)t.add(e,"addMarker:"+o.name);for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n);return t}_testAndFire(t,e,n){const o=function(t,e){const n=e.item.name||"$text";return`${t}:${n}`}(t,e),i=e.item.is("$textProxy")?n.consumable._getSymbolForTextProxy(e.item):e.item,r=this._firedEventsMap.get(n),s=r.get(i);if(s){if(s.has(o))return;s.add(o)}else r.set(i,new Set([o]));this.fire(o,e,n)}_testAndFireAddAttributes(t,e){const n={item:t,range:il._createOn(t)};for(const t of n.item.getAttributeKeys())n.attributeKey=t,n.attributeOldValue=null,n.attributeNewValue=n.item.getAttribute(t),this._testAndFire(`attribute:${t}`,n,e)}_createConversionApi(t,e=new Set,n={}){const o={...this._conversionApi,consumable:new sl,writer:t,options:n,convertItem:t=>this._convertInsert(il._createOn(t),o),convertChildren:t=>this._convertInsert(il._createIn(t),o,{doNotAddConsumables:!0}),convertAttributes:t=>this._testAndFireAddAttributes(t,o),canReuseView:t=>!e.has(o.mapper.toModelElement(t))};return this._firedEventsMap.set(o,new Map),o}}function cl(t,e,n){const o=e.getRange(),i=Array.from(t.getAncestors());i.shift(),i.reverse();return!i.some((t=>{if(o.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}}))}function dl(t){return{item:t.item,range:il._createFromPositionAndShift(t.previousPosition,t.length)}}ue(ll,k);class ul{constructor(t,e,n){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t&&this.setTo(t,e,n)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new il(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new il(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new il(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(t,e,n){if(null===t)this._setRanges([]);else if(t instanceof ul)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof il)this._setRanges([t],!!e&&!!e.backward);else if(t instanceof tl)this._setRanges([new il(t)]);else if(t instanceof Za){const o=!!n&&!!n.backward;let i;if("in"==e)i=il._createIn(t);else if("on"==e)i=il._createOn(t);else{if(void 0===e)throw new l("model-selection-setto-required-second-parameter",[this,t]);i=new il(tl._createAt(t,e))}this._setRanges([i],o)}else{if(!Do(t))throw new l("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,e&&!!e.backward)}}_setRanges(t,e=!1){const n=(t=Array.from(t)).some((e=>{if(!(e instanceof il))throw new l("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));if(t.length!==this._ranges.length||n){this._removeAllRanges();for(const e of t)this._pushRange(e);this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0})}}setFocus(t,e){if(null===this.anchor)throw new l("model-selection-setfocus-no-ranges",[this,t]);const n=tl._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(o)?(this._pushRange(new il(n,o)),this._lastRangeBackward=!0):(this._pushRange(new il(o,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}is(t){return"selection"===t||"model:selection"===t}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=gl(e.start,t);n&&pl(n,e)&&(yield n);for(const n of e.getWalker()){const o=n.item;"elementEnd"==n.type&&ml(o,t,e)&&(yield o)}const o=gl(e.end,t);o&&!e.end.isTouching(tl._createAt(o,0))&&pl(o,e)&&(yield o)}}containsEntireContent(t=this.anchor.root){const e=tl._createAt(t,0),n=tl._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new il(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function hl(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&t.parent)}function ml(t,e,n){return hl(t,e)&&pl(t,n)}function gl(t,e){const n=t.parent.root.document.model.schema,o=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=o.find((t=>!i&&(i=n.isLimit(t),!i&&hl(t,e))));return o.forEach((t=>e.add(t))),r}function pl(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(il._createOn(n),!0)}ue(ul,k);class fl extends il{constructor(t,e){super(t,e),kl.call(this)}detach(){this.stopListening()}is(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t}toRange(){return new il(this.start,this.end)}static fromRange(t){return new fl(t.start,t.end)}}function kl(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&bl.call(this,n)}),{priority:"low"})}function bl(t){const e=this.getTransformedByOperation(t),n=il._createFromRanges(e),o=!n.isEqual(this),i=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(o){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}ue(fl,k);const wl="selection:";class Al{constructor(t){this._selection=new _l(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection._updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}is(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection._getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return wl+t}static _isStoreAttributeKey(t){return t.startsWith(wl)}}ue(Al,k);class _l extends ul{constructor(t){super(),this.markers=new So({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{for(const t of this.getRanges())if(!this._document._validateSelectionRange(t))throw new l("document-selection-wrong-position",this,{range:t})})),this.listenTo(this._model.markers,"update",((t,e,n,o)=>{this._updateMarker(e,o)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const o of n.getChanges()){if("insert"!=o.type)continue;const n=o.position.parent;o.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith(wl)));for(const o of e)t.removeAttribute(o,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=o.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}_updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const o=e.getRange();for(const n of this.getRanges())o.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let o=!1;const i=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),o=!0):!n&&r&&(this.markers.remove(t),o=!0)}else r&&(this.markers.remove(t),o=!0);o&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(t){const e=Ho(this._getSurroundingAttributes()),n=Ho(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const o=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||o.push(t);for(const[t]of n)this.hasAttribute(t)||o.push(t);o.length>0&&this.fire("change:attribute",{attributeKeys:o,directChange:!1})}_setAttribute(t,e,n=!0){const o=n?"normal":"low";if("low"==o&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,o),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,o]of t){this._setAttribute(n,o,!1)&&e.add(n)}return e}*_getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith(wl)){const n=e.substr(wl.length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const o=t.textNode?t.textNode:t.nodeBefore,i=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Cl(o)),n||(n=Cl(i)),!this.isGravityOverridden&&!n){let t=o;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=Cl(t)}if(!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=Cl(t)}n||(n=this._getStoredAttributes())}else{const t=this.getFirstRange();for(const o of t){if(o.item.is("element")&&e.isObject(o.item))break;if("text"==o.type){n=o.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Cl(t){return t instanceof Ka||t instanceof Ya?t.getAttributes():null}class vl{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}const yl=function(t){return _o(t,5)};class xl extends vl{elementToElement(t){return this.add(function(t){(t=yl(t)).model=Sl(t.model),t.view=Il(t.view,"container"),t.model.attributes.length&&(t.model.children=!0);return e=>{e.on("insert:"+t.model.name,function(t,e=Ol){return(n,o,i)=>{if(!e(o.item,i.consumable,{preflight:!0}))return;const r=t(o.item,i,o);if(!r)return;e(o.item,i.consumable);const s=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),i.writer.insert(s,r),i.convertAttributes(o.item),Pl(r,o.item.getChildren(),i,{reconversion:o.reconversion})}}(t.view,zl(t.model)),{priority:t.converterPriority||"normal"}),(t.model.children||t.model.attributes.length)&&e.on("reduceChanges",Nl(t.model),{priority:"low"})}}(t))}elementToStructure(t){return this.add(function(t){return(t=yl(t)).model=Sl(t.model),t.view=Il(t.view,"container"),t.model.children=!0,e=>{if(e._conversionApi.schema.checkChild(t.model.name,"$text"))throw new l("conversion-element-to-structure-disallowed-text",e,{elementName:t.model.name});var n,o;e.on("insert:"+t.model.name,(n=t.view,o=zl(t.model),(t,e,i)=>{if(!o(e.item,i.consumable,{preflight:!0}))return;const r=new Map;i.writer._registerSlotFactory(function(t,e,n){return(o,i="children")=>{const r=o.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(t.getChildren());else{if("function"!=typeof i)throw new l("conversion-slot-mode-unknown",n.dispatcher,{modeOrFilter:i});s=Array.from(t.getChildren()).filter((t=>i(t)))}return e.set(r,s),r}}(e.item,r,i));const s=n(e.item,i,e);if(i.writer._clearSlotFactory(),!s)return;!function(t,e,n){const o=Array.from(e.values()).flat(),i=new Set(o);if(i.size!=o.length)throw new l("conversion-slot-filter-overlap",n.dispatcher,{element:t});if(i.size!=t.childCount)throw new l("conversion-slot-filter-incomplete",n.dispatcher,{element:t})}(e.item,r,i),o(e.item,i.consumable);const a=i.mapper.toViewPosition(e.range.start);i.mapper.bindElements(e.item,s),i.writer.insert(a,s),i.convertAttributes(e.item),function(t,e,n,o){n.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of e)Pl(t,r,n,o),n.writer.move(n.writer.createRangeIn(i),n.writer.createPositionBefore(i)),n.writer.remove(i);function s(t,e){const n=e.modelPosition.nodeAfter,o=r.indexOf(n);o<0||(e.viewPosition=e.mapper.findPositionIn(i,o))}n.mapper.off("modelToViewPosition",s)}(s,r,i,{reconversion:e.reconversion})}),{priority:t.converterPriority||"normal"}),e.on("reduceChanges",Nl(t.model),{priority:"low"})}}(t))}attributeToElement(t){return this.add(function(t){t=yl(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=Il(t.view[e],"attribute");else t.view=Il(t.view,"attribute");const n=Ml(t);return o=>{o.on(e,function(t){return(e,n,o)=>{if(!o.consumable.test(n.item,e.name))return;const i=t(n.attributeOldValue,o,n),r=t(n.attributeNewValue,o,n);if(!i&&!r)return;o.consumable.consume(n.item,e.name);const s=o.writer,a=s.document.selection;if(n.item instanceof ul||n.item instanceof Al)s.wrap(a.getFirstRange(),r);else{let t=o.mapper.toViewRange(n.range);null!==n.attributeOldValue&&i&&(t=s.unwrap(t,i)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}(n),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=yl(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=Tl(t.view[e]);else t.view=Tl(t.view);const n=Ml(t);return o=>{var i;o.on(e,(i=n,(t,e,n)=>{if(!n.consumable.test(e.item,t.name))return;const o=i(e.attributeOldValue,n,e),r=i(e.attributeNewValue,n,e);if(!o&&!r)return;n.consumable.consume(e.item,t.name);const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new l("conversion-attribute-to-attribute-on-text",n.dispatcher,e);if(null!==e.attributeOldValue&&o)if("class"==o.key){const t=Mo(o.value);for(const e of t)a.removeClass(e,s)}else if("style"==o.key){const t=Object.keys(o.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(o.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t=Mo(r.value);for(const e of t)a.addClass(e,s)}else if("style"==r.key){const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){return(t=yl(t)).view=Il(t.view,"ui"),e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,o)=>{e.isOpening=!0;const i=n(e,o);e.isOpening=!1;const r=n(e,o);if(!i||!r)return;const s=e.markerRange;if(s.isCollapsed&&!o.consumable.consume(s,t.name))return;for(const e of s)if(!o.consumable.consume(e.item,t.name))return;const a=o.mapper,l=o.writer;l.insert(a.toViewPosition(s.start),i),o.mapper.bindElementToMarker(i,e.markerName),s.isCollapsed||(l.insert(a.toViewPosition(s.end),r),o.mapper.bindElementToMarker(r,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,(t.view,(t,e,n)=>{const o=n.mapper.markerNameToElements(e.markerName);if(o){for(const t of o)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,o)=>{if(!e.item)return;if(!(e.item instanceof ul||e.item instanceof Al||e.item.is("$textProxy")))return;const i=Bl(n,e,o);if(!i)return;if(!o.consumable.consume(e.item,t.name))return;const r=o.writer,s=El(r,i),a=r.document.selection;if(e.item instanceof ul||e.item instanceof Al)r.wrap(a.getFirstRange(),s,a);else{const t=o.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){o.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on("addMarker:"+t.model,function(t){return(e,n,o)=>{if(!n.item)return;if(!(n.item instanceof Qa))return;const i=Bl(t,n,o);if(!i)return;if(!o.consumable.test(n.item,e.name))return;const r=o.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){o.consumable.consume(n.item,e.name);for(const t of il._createIn(n.item))o.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,i,o.writer),o.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,function(t){return(e,n,o)=>{if(n.markerRange.isCollapsed)return;const i=Bl(t,n,o);if(!i)return;const r=El(o.writer,i),s=o.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement")?o.writer.unwrap(o.writer.createRangeOn(t),r):t.getCustomProperty("removeHighlight")(t,i.id,o.writer);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=yl(t)).model;t.view||(t.view=n=>({group:e,name:n.substr(t.model.length+1)}));return n=>{var o;n.on("addMarker:"+e,(o=t.view,(t,e,n)=>{const i=o(e.markerName,n);if(!i)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Dl(r,!1,n,e,i),Dl(r,!0,n,e,i),t.stop())}),{priority:t.converterPriority||"normal"}),n.on("removeMarker:"+e,function(t){return(e,n,o)=>{const i=t(n.markerName,o);if(!i)return;const r=o.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${i.group}-start-before`,t),s(`data-${i.group}-start-after`,t),s(`data-${i.group}-end-before`,t),s(`data-${i.group}-end-after`,t)):o.writer.clear(o.writer.createRangeOn(t),t);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(i.name),0==n.size?o.writer.removeAttribute(t,e):o.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}}function El(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Dl(t,e,n,o,i){const r=e?t.start:t.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let t,r;e&&s||!e&&!a?(t=s,r=!0):(t=a,r=!1);const l=n.mapper.toViewElement(t);if(l)return void function(t,e,n,o,i,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),o.writer.setAttribute(s,a.join(","),t),o.mapper.bindElementToMarker(t,i.markerName)}(l,e,r,n,o,i)}!function(t,e,n,o,i){const r=`${i.group}-${e?"start":"end"}`,s=i.name?{name:i.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,o.markerName)}(n.mapper.toViewPosition(r),e,n,o,i)}function Sl(t){return"string"==typeof t&&(t={name:t}),t.attributes?Array.isArray(t.attributes)||(t.attributes=[t.attributes]):t.attributes=[],t.children=!!t.children,t}function Il(t,e){return"function"==typeof t?t:(n,o)=>function(t,e,n){"string"==typeof t&&(t={name:t});let o;const i=e.writer,r=Object.assign({},t.attributes);if("container"==n)o=i.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||Xi.DEFAULT_PRIORITY};o=i.createAttributeElement(t.name,r,e)}else o=i.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)i.setStyle(n,t.styles[n],o)}if(t.classes){const e=t.classes;if("string"==typeof e)i.addClass(e,o);else for(const t of e)i.addClass(t,o)}return o}(t,o,e)}function Ml(t){return t.model.values?(e,n)=>{const o=t.view[e];return o?o(e,n):null}:t.view}function Tl(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Bl(t,e,n){const o="function"==typeof t?t(e,n):t;return o?(o.priority||(o.priority=10),o.id||(o.id=e.markerName),o):null}function Nl(t){const e=function(t){return(e,n)=>{if(!e.is("element",t.name))return!1;if("attribute"==n.type){if(t.attributes.includes(n.attributeKey))return!0}else if(t.children)return!0;return!1}}(t);return(t,n)=>{const o=[];n.reconvertedElements||(n.reconvertedElements=new Set);for(const t of n.changes){const i=t.position?t.position.parent:t.range.start.nodeAfter;if(i&&e(i,t)){if(!n.reconvertedElements.has(i)){n.reconvertedElements.add(i);const t=tl._createBefore(i);o.push({type:"remove",name:i.name,position:t,length:1},{type:"reinsert",name:i.name,position:t,length:1})}}else o.push(t)}n.changes=o}}function zl(t){return(e,n,o={})=>{const i=["insert"];for(const n of t.attributes)e.hasAttribute(n)&&i.push(`attribute:${n}`);return!!i.every((t=>n.test(e,t)))&&(o.preflight||i.forEach((t=>n.consume(e,t))),!0)}}function Pl(t,e,n,o){for(const i of e)Ll(t.root,i,n,o)||n.convertItem(i)}function Ll(t,e,n,o){const{writer:i,mapper:r}=n;if(!o.reconversion)return!1;const s=r.toViewElement(e);return!(!s||s.root==t)&&(!!n.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(tl._createBefore(e))),!0))}function Ol(t,e,{preflight:n}={}){return n?e.test(t,"insert"):e.consume(t,"insert")}function Rl(t){const{schema:e,document:n}=t.model;for(const o of n.getRootNames()){const i=n.getRoot(o);if(i.isEmpty&&!e.checkChild(i,"$text")&&e.checkChild(i,"paragraph"))return t.insertElement("paragraph",i),!0}return!1}function jl(t,e,n){const o=n.createContext(t);return!!n.checkChild(o,"paragraph")&&!!n.checkChild(o.push("paragraph"),e)}function Vl(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class Fl extends vl{elementToElement(t){return this.add(Hl(t))}elementToAttribute(t){return this.add(function(t){Gl(t=yl(t));const e=ql(t,!1),n=Ul(t.view),o=n?"element:"+n:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=yl(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;if("class"==e||"style"==e){n={["class"==e?"classes":"styles"]:t.view.value}}else{n={attributes:{[e]:void 0===t.view.value?/[\s\S]*/:t.view.value}}}t.view.name&&(n.name=t.view.name);return t.view=n,e}(t));Gl(t,e);const n=ql(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){return function(t){const e=t.model;t.model=(t,n)=>{const o="string"==typeof e?e:e(t,n);return n.writer.createElement("$marker",{"data-name":o})}}(t=yl(t)),Hl(t)}(t))}dataToMarker(t){return this.add(function(t){(t=yl(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e=Wl(Zl(t,"start")),n=Wl(Zl(t,"end"));return o=>{o.on("element:"+t.view+"-start",e,{priority:t.converterPriority||"normal"}),o.on("element:"+t.view+"-end",n,{priority:t.converterPriority||"normal"});const i=s.get("low"),r=s.get("highest"),a=s.get(t.converterPriority)/r;o.on("element",function(t){return(e,n,o)=>{const i=`data-${t.view}`;function r(e,i){for(const r of i){const i=t.model(r,o),s=o.writer.createElement("$marker",{"data-name":i});o.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(o.consumable.test(n.viewItem,{attributes:i+"-end-after"})||o.consumable.test(n.viewItem,{attributes:i+"-start-after"})||o.consumable.test(n.viewItem,{attributes:i+"-end-before"})||o.consumable.test(n.viewItem,{attributes:i+"-start-before"}))&&(n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor)),o.consumable.consume(n.viewItem,{attributes:i+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-end-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-start-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-end-before").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-start-before").split(",")))}}(t),{priority:i+a})}}(t))}}function Hl(t){const e=Wl(t=yl(t)),n=Ul(t.view),o=n?"element:"+n:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"normal"})}}function Ul(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function Wl(t){const e=new Uo(t.view);return(n,o,i)=>{const r=e.match(o.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(o.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,o.viewItem,i);a&&i.safeInsert(a,o.modelCursor)&&(i.consumable.consume(o.viewItem,s),i.convertChildren(o.viewItem,a),i.updateConversionResult(a,o))}}function Gl(t,e=null){const n=null===e||(t=>t.getAttribute(e)),o="object"!=typeof t.model?t.model:t.model.key,i="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:o,value:i}}function ql(t,e){const n=new Uo(t.view);return(o,i,r)=>{if(!i.modelRange&&e)return;const s=n.match(i.viewItem);if(!s)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!Ul(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=t.model.key,l="function"==typeof t.model.value?t.model.value(i.viewItem,r):t.model.value;if(null===l)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const c=function(t,e,n,o){let i=!1;for(const r of Array.from(t.getItems({shallow:n})))o.schema.checkAttribute(r,e.key)&&(i=!0,r.hasAttribute(e.key)||o.writer.setAttribute(e.key,e.value,r));return i}(i.modelRange,{key:a,value:l},e,r);c&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function Zl(t,e){const n={};return n.view=t.view+"-"+e,n.model=(e,n)=>{const o=e.getAttribute("name"),i=t.model(o,n);return n.writer.createElement("$marker",{"data-name":i})},n}class Yl{constructor(t,e){this.model=t,this.view=new qa(e),this.mapper=new rl,this.downcastDispatcher=new ll({mapper:this.mapper,schema:t.schema});const n=this.model.document,o=n.selection,i=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,i,t),this.downcastDispatcher.convertSelection(o,i,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,o)=>{const i=o.newSelection,r=[];for(const t of i.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:i.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const o=n.mapper.toViewPosition(e.position),i=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(i,{isPhantom:!0}),s=n.writer.createRange(o,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=n.writer,i=o.document.selection;for(const t of i.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);o.setSelection(null)}),{priority:"high"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=[];for(const t of o.getRanges()){const e=n.mapper.toViewRange(t);i.push(e)}n.writer.setSelection(i,{backward:o.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(!o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=n.writer,r=o.getFirstPosition(),s=n.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new Li(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(t){const e="string"==typeof t?t:t.name,n=this.model.markers.get(e);if(!n)throw new l("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:e});this.model.change((()=>{this.model.markers._refresh(n)}))}reconvertItem(t){this.model.change((()=>{this.model.document.differ._refreshItem(t)}))}}ue(Yl,re);class Kl{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new l("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class $l{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new Ql(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const o=t.getClassNames();for(const t of o)e.classes.push(t);const i=t.getStyleNames();for(const t of i)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new $l(t)),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,$l.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=$l.createFrom(n,e);return e}}class Ql{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e in this._consumables)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e in this._consumables)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._revert(e,t[e])}_add(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new l("viewconsumable-invalid-attribute",this);if(o.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!0)}}_test(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=o.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(o.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=It(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===o.get(e)&&o.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class Jl{constructor(){this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new Xl(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new Xl(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new l("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new l("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:t.is&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e=null){if(t instanceof tl){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof Qa))throw new l("schema-check-merge-no-element-before",this);if(!(n instanceof Qa))throw new l("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,o])=>{if(!o)return;const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,o])=>{const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof tl)e=t.parent;else{e=(t instanceof il?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new Ya("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new il(t);let n,o;const i=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new Ja({boundaries:il._createIn(i),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(o=new Ja({boundaries:il._createIn(i),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,o)){const e=t.walker==n?"elementEnd":"elementStart",o=t.value;if(o.type==e&&this.isObject(o.item))return il._createOn(o.item);if(this.checkChild(o.nextPosition,"$text"))return new il(o.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}setAllowedAttributes(t,e,n){const o=n.model;for(const[i,r]of Object.entries(e))o.schema.checkAttribute(t,i)&&n.setAttribute(i,r,t)}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))hc(this,n,e);else{const t=il._createIn(n).getPositions();for(const n of t){hc(this,n.nodeBefore||n.parent,e)}}}getAttributesWithProperty(t,e,n){const o={};for(const[i,r]of t.getAttributes()){const t=this.getAttributeProperties(i);void 0!==t[e]&&(void 0!==n&&n!==t[e]||(o[i]=r))}return o}createContext(t){return new Xl(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const o of n)t[o]=tc(e[o],o);for(const e of n)ec(t,e);for(const e of n)nc(t,e);for(const e of n)oc(t,e);for(const e of n)ic(t,e),rc(t,e);for(const e of n)sc(t,e),ac(t,e),lc(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const o=e.getItem(n);if(t.allowIn.includes(o.name)){if(0==n)return!0;{const t=this.getDefinition(o);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,o=t.start;for(const i of t.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(il._createIn(i),e)),this.checkAttribute(i,e)||(n.isEqual(o)||(yield new il(n,o)),n=tl._createAfter(i)),o=tl._createAfter(i);n.isEqual(o)||(yield new il(n,o))}}ue(Jl,re);class Xl{constructor(t){if(t instanceof Xl)return t;"string"==typeof t?t=[t]:Array.isArray(t)||(t=t.getAncestors({includeSelf:!0})),this._items=t.map(uc)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new Xl([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function tc(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const o of t)e[o]=n[o]}}(t,n),cc(t,n,"allowIn"),cc(t,n,"allowContentOf"),cc(t,n,"allowWhere"),cc(t,n,"allowAttributes"),cc(t,n,"allowAttributesOf"),cc(t,n,"allowChildren"),cc(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function ec(t,e){const n=t[e];for(const o of n.allowChildren){const n=t[o];n&&n.allowIn.push(e)}n.allowChildren.length=0}function nc(t,e){for(const n of t[e].allowContentOf)if(t[n]){dc(t,n).forEach((t=>{t.allowIn.push(e)}))}delete t[e].allowContentOf}function oc(t,e){for(const n of t[e].allowWhere){const o=t[n];if(o){const n=o.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function ic(t,e){for(const n of t[e].allowAttributesOf){const o=t[n];if(o){const n=o.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function rc(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const o=t[e];if(o){const t=Object.keys(o).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=o[e])}}delete n.inheritTypesFrom}function sc(t,e){const n=t[e],o=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(o))}function ac(t,e){const n=t[e];for(const o of n.allowIn){t[o].allowChildren.push(e)}}function lc(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function cc(t,e,n){for(const o of t)"string"==typeof o[n]?e[n].push(o[n]):Array.isArray(o[n])&&e[n].push(...o[n])}function dc(t,e){const n=t[e];return(o=t,Object.keys(o).map((t=>o[t]))).filter((t=>t.allowIn.includes(n.name)));var o}function uc(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function hc(t,e,n){for(const o of e.getAttributeKeys())t.checkAttribute(e,o)||n.removeAttribute(o,e)}class mc{constructor(t={}){this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this._emptyElementsToKeep=new Set,this.conversionApi=Object.assign({},t),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.safeInsert=this._safeInsert.bind(this),this.conversionApi.updateConversionResult=this._updateConversionResult.bind(this),this.conversionApi.splitToAllowedParent=this._splitToAllowedParent.bind(this),this.conversionApi.getSplitParts=this._getSplitParts.bind(this),this.conversionApi.keepEmptyElement=this._keepEmptyElement.bind(this)}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const o of new Xl(t)){const t={};for(const e of o.getAttributeKeys())t[e]=o.getAttribute(e);const i=e.createElement(o.name,t);n&&e.append(i,n),n=tl._createAt(i,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=$l.createFrom(t),this.conversionApi.store={};const{modelRange:o}=this._convertItem(t,this._modelCursor),i=e.createDocumentFragment();if(o){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,i);i.markers=function(t,e){const n=new Set,o=new Map,i=il._createIn(t).getItems();for(const t of i)"$marker"==t.name&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),i=e.createPositionBefore(t);o.has(n)?o.get(n).end=i.clone():o.set(n,new il(i.clone())),e.remove(t)}return o}(i,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(t,e){const n=Object.assign({viewItem:t,modelCursor:e,modelRange:null});if(t.is("element")?this.fire("element:"+t.name,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof il))throw new l("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:tl._createAt(e,0);const o=new il(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof il&&(o.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:o,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),o=this.conversionApi.writer;e.modelRange||(e.modelRange=o.createRange(o.createPositionBefore(t),o.createPositionAfter(n[n.length-1])));const i=this._cursorParents.get(t);e.modelCursor=i?o.createPositionAt(i,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:o}=this.conversionApi;let i=n.findAllowedParent(e,t);if(i){if(i===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return jl(e,t,n)?{position:Vl(e,o)}:null;const r=this.conversionApi.writer.split(e,i),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_keepEmptyElement(t){this._emptyElementsToKeep.add(t)}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&!this._emptyElementsToKeep.has(e)&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}ue(mc,k);class gc{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class pc{constructor(t){this.domParser=new DOMParser,this.domConverter=new _s(t,{renderingMode:"data"}),this.htmlWriter=new gc}toData(t){const e=this.domConverter.viewToDom(t,document);return this.htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this.domConverter.domToView(e)}registerRawContentMatcher(t){this.domConverter.registerRawContentMatcher(t)}useFillerType(t){this.domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(t=`${t}`);const e=this.domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),o=e.body.childNodes;for(;o.length>0;)n.appendChild(o[0]);return n}}class fc{constructor(t,e){this.model=t,this.mapper=new rl,this.downcastDispatcher=new ll({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.upcastDispatcher=new mc({schema:t.schema}),this.viewDocument=new Ji(e),this.stylesProcessor=e,this.htmlProcessor=new pc(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Cr(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:o,writer:i})=>{let r=e.modelCursor;if(!o.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!jl(r,"$text",n))return;r=Vl(r,i)}o.consume(e.viewItem);const s=i.createText(e.viewItem.data);i.insert(s,r),e.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.decorate("init"),this.decorate("set"),this.decorate("get"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},Rl)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new l("datacontroller-get-non-existent-root",this);const o=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(o,{ignoreWhitespaces:!0})?this.stringify(o,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,o=this._viewWriter;this.mapper.clearBindings();const i=il._createIn(t),r=new _r(n);this.mapper.bindElements(t,r);const s=t.is("documentFragment")?t.markers:function(t){const e=[],n=t.root.document;if(!n)return new Map;const o=il._createIn(t);for(const t of n.model.markers){const n=t.getRange(),i=n.isCollapsed,r=n.start.isEqual(o.start)||n.end.isEqual(o.end);if(i&&r)e.push([t.name,n]);else{const i=o.getIntersection(n);i&&e.push([t.name,i])}}return e.sort((([t,e],[n,o])=>{if("after"!==e.end.compareWith(o.start))return 1;if("before"!==e.start.compareWith(o.end))return-1;switch(e.start.compareWith(o.start)){case"before":return 1;case"after":return-1;default:switch(e.end.compareWith(o.end)){case"before":return 1;case"after":return-1;default:return n.localeCompare(t)}}})),new Map(e)}(t);return this.downcastDispatcher.convert(i,s,o,e),r}init(t){if(this.model.document.version)throw new l("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new l("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(t=>{for(const n of Object.keys(e)){const o=this.model.document.getRoot(n);t.insert(this.parse(e[n],o),o,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new l("datacontroller-set-non-existent-root",this);this.model.enqueueChange(e.batchType||{},(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const o=this.model.document.getRoot(e);t.remove(t.createRangeIn(o)),t.insert(this.parse(n[e],o),o,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}ue(fc,re);class kc{constructor(t,e){this._helpers=new Map,this._downcast=Mo(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Mo(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new l("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new l("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of bc(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of bc(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of bc(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new l("conversion-group-exists",this);const o=n?new xl(e):new Fl(e);this._helpers.set(t,o)}}function*bc(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},o=t.view[e],i=t.upcastAlso?t.upcastAlso[e]:void 0;yield*wc(n,o,i)}else yield*wc(t.model,t.view,t.upcastAlso)}function*wc(t,e,n){if(yield{model:t,view:e},n)for(const e of Mo(n))yield{model:t,view:e}}class Ac{constructor(t={}){"string"==typeof t&&(t="transparent"===t?{isUndoable:!1}:{},c("batch-constructor-deprecated-string-type"));const{isUndoable:e=!0,isLocal:n=!0,isUndo:o=!1,isTyping:i=!1}=t;this.operations=[],this.isUndoable=e,this.isLocal=n,this.isUndo=o,this.isTyping=i}get type(){return c("batch-type-deprecated"),"default"}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class _c{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t){return new this(t.baseVersion)}}class Cc{constructor(t){this.markers=new Map,this._children=new $a,t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"model:documentFragment"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(Qa.fromJSON(n)):e.push(Ya.fromJSON(n));return new Cc(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new Ya(t)];Do(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Ya(t):t instanceof Ka?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}function vc(t,e){const n=(e=Ec(e)).reduce(((t,e)=>t+e.offsetSize),0),o=t.parent;Sc(t);const i=t.index;return o._insertChild(i,e),Dc(o,i+e.length),Dc(o,i),new il(t,t.getShiftedBy(n))}function yc(t){if(!t.isFlat)throw new l("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Sc(t.start),Sc(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Dc(e,t.start.index),n}function xc(t,e){if(!t.isFlat)throw new l("operation-utils-move-range-not-flat",this);const n=yc(t);return vc(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Ec(t){const e=[];t instanceof Array||(t=[t]);for(let n=0;nt.maxOffset)throw new l("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new zc(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new tl(t,[0]);return new Nc(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),vc(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(Qa.fromJSON(e)):n.push(Ya.fromJSON(e));const o=new zc(tl.fromJSON(t.position,e),n,t.baseVersion);return o.shouldReceiveAttributes=t.shouldReceiveAttributes,o}}class Pc extends _c{constructor(t,e,n,o,i,r){super(r),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=i,this._markers=o}get type(){return"marker"}clone(){return new Pc(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Pc(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){const t=this.newRange?"_set":"_remove";this._markers[t](this.name,this.newRange,!0,this.affectsData)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Pc(t.name,t.oldRange?il.fromJSON(t.oldRange,e):null,t.newRange?il.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Lc extends _c{constructor(t,e,n,o){super(o),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Lc(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Lc(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof Qa))throw new l("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new l("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Lc(tl.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class Oc extends _c{constructor(t,e,n,o,i){super(i),this.root=t,this.key=e,this.oldValue=n,this.newValue=o}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new Oc(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new Oc(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new l("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new l("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new l("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new l("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new Oc(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Rc extends _c{constructor(t,e,n,o,i){super(i),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=o.clone()}get type(){return"merge"}get deletionPosition(){return new tl(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new il(this.sourcePosition,t)}clone(){return new this.constructor(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new tl(this.sourcePosition.root,e)._getTransformedByMergeOperation(this);return new jc(t,this.howMany,n,this.graveyardPosition,this.baseVersion+1)}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new l("merge-operation-source-position-invalid",this);if(!e.parent)throw new l("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new l("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;xc(il._createIn(t),this.targetPosition),xc(il._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=tl.fromJSON(t.sourcePosition,e),o=tl.fromJSON(t.targetPosition,e),i=tl.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,o,i,t.baseVersion)}}class jc extends _c{constructor(t,e,n,o,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=o?o.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new tl(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new il(this.splitPosition,t)}clone(){return new this.constructor(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new tl(t,[0]);return new Rc(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof il)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof il))throw new l("writer-move-invalid-range",this);if(!t.isFlat)throw new l("writer-move-range-not-flat",this);const o=tl._createAt(e,n);if(o.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!qc(t.root,o.root))throw new l("writer-move-different-document",this);const i=t.root.document?t.root.document.version:null,r=new Nc(t.start,t.end.offset-t.start.offset,o,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof il?t:il._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),Gc(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof Qa))throw new l("writer-merge-no-element-before",this);if(!(n instanceof Qa))throw new l("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(t,e,n){return this.model.createSelection(t,e,n)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(il._createIn(n),tl._createAt(e,"end")),this.remove(n)}_merge(t){const e=tl._createAt(t.nodeBefore,"end"),n=tl._createAt(t.nodeAfter,0),o=t.root.document.graveyard,i=new tl(o,[0]),r=t.root.document.version,s=new Rc(n,t.nodeAfter.maxOffset,e,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof Qa))throw new l("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,o=new Lc(tl._createBefore(t),t.name,e,n);this.batch.addOperation(o),this.model.applyOperation(o)}split(t,e){this._assertWriterUsedCorrectly();let n,o,i=t.parent;if(!i.parent)throw new l("writer-split-element-no-parent",this);if(e||(e=i.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new l("writer-split-invalid-limit-element",this);do{const e=i.root.document?i.root.document.version:null,r=i.maxOffset-t.offset,s=jc.getInsertionPosition(t),a=new jc(t,r,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||o||(n=i,o=t.parent.nextSibling),i=(t=this.createPositionAfter(t.parent)).parent}while(i!==e);return{position:t,range:new il(tl._createAt(n,"end"),tl._createAt(o,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new l("writer-wrap-range-not-flat",this);const n=e instanceof Qa?e:new Qa(e);if(n.childCount>0)throw new l("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new l("writer-wrap-element-attached",this);this.insert(n,t.start);const o=new il(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(o,tl._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new l("writer-unwrap-element-no-parent",this);this.move(il._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new l("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,o=e.range,i=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new l("writer-addmarker-marker-exists",this);if(!o)throw new l("writer-addmarker-no-range",this);return n?(Wc(this,t,null,o,i),this.model.markers.get(t)):this.model.markers._set(t,o,n,i)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,o=this.model.markers.get(n);if(!o)throw new l("writer-updatemarker-marker-not-exists",this);if(!e)return c("writer-updatemarker-reconvert-using-editingcontroller",{markerName:n}),void this.model.markers._refresh(o);const i="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:o.affectsData;if(!i&&!e.range&&!r)throw new l("writer-updatemarker-wrong-options",this);const a=o.getRange(),d=e.range?e.range:a;i&&e.usingOperation!==o.managedUsingOperations?e.usingOperation?Wc(this,n,null,d,s):(Wc(this,n,a,null,s),this.model.markers._set(n,d,void 0,s)):o.managedUsingOperations?Wc(this,n,a,d,s):this.model.markers._set(n,d,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new l("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);Wc(this,e,n.getRange(),null,n.affectsData)}setSelection(t,e,n){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(t,e,n)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of Ho(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const o=Al._getStoreAttributeKey(t);this.setAttribute(o,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=Al._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new l("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const o=n.getRange();let i=!1;if("move"===t)i=e.containsPosition(o.start)||e.start.isEqual(o.start)||e.containsPosition(o.end)||e.end.isEqual(o.end);else{const t=e.nodeBefore,n=e.nodeAfter,r=o.start.parent==t&&o.start.isAtEnd,s=o.end.parent==n&&0==o.end.offset,a=o.end.nodeAfter==n,l=o.start.nodeAfter==n;i=r||s||a||l}i&&this.updateMarker(n.name,{range:o})}}}function Hc(t,e,n,o){const i=t.model,r=i.document;let s,a,l,c=o.start;for(const t of o.getWalker({shallow:!0}))l=t.item.getAttribute(e),s&&a!=l&&(a!=n&&d(),c=s),s=t.nextPosition,a=l;function d(){const o=new il(c,s),l=o.root.document?r.version:null,d=new Tc(o,e,a,n,l);t.batch.addOperation(d),i.applyOperation(d)}s instanceof tl&&s!=c&&a!=n&&d()}function Uc(t,e,n,o){const i=t.model,r=i.document,s=o.getAttribute(e);let a,l;if(s!=n){if(o.root===o){const t=o.document?r.version:null;l=new Oc(o,e,s,n,t)}else{a=new il(tl._createBefore(o),t.createPositionAfter(o));const i=a.root.document?r.version:null;l=new Tc(a,e,s,n,i)}t.batch.addOperation(l),i.applyOperation(l)}}function Wc(t,e,n,o,i){const r=t.model,s=r.document,a=new Pc(e,n,o,r.markers,i,s.version);t.batch.addOperation(a),r.applyOperation(a)}function Gc(t,e,n,o){let i;if(t.root.document){const n=o.document,r=new tl(n.graveyard,[0]);i=new Nc(t,e,r,n.version)}else i=new Bc(t,e);n.addOperation(i),o.applyOperation(i)}function qc(t,e){return t===e||t instanceof Vc&&e instanceof Vc}class Zc{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null,this._refreshedItems=new Set}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}bufferOperation(t){switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),n=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),n||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=il._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}break}case"split":{const e=t.splitPosition.parent;this._isInInsertedElement(e)||this._markRemove(e,t.splitPosition.offset,t.howMany),this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1);break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const n=t.graveyardPosition.parent;this._markInsert(n,t.graveyardPosition.offset,1);const o=t.targetPosition.parent;this._isInInsertedElement(o)||this._markInsert(o,t.targetPosition.offset,e.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n){const o=this._changedMarkers.get(t);o?(o.newMarkerData=n,null==o.oldMarkerData.range&&null==n.range&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{newMarkerData:n,oldMarkerData:e})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldMarkerData.range&&t.push({name:e,range:n.oldMarkerData.range});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newMarkerData.range&&t.push({name:e,range:n.newMarkerData.range});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((([t,e])=>({name:t,data:{oldRange:e.oldMarkerData.range,newRange:e.newMarkerData.range}})))}hasDataChanges(){if(this._changesInElement.size>0)return!0;for(const{newMarkerData:t,oldMarkerData:e}of this._changedMarkers.values()){if(t.affectsData!==e.affectsData)return!0;if(t.affectsData){const n=t.range&&!e.range,o=!t.range&&e.range,i=t.range&&e.range&&!t.range.isEqual(e.range);if(n||o||i)return!0}}return!1}getChanges(t={includeChangesInGraveyard:!1}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e,this._cachedChanges=e.filter($c),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._refreshedItems=new Set,this._cachedChanges=null}_refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize),this._refreshedItems.add(t);const e=il._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._cachedChanges=null}_markInsert(t,e,n){const o={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o)}_markRemove(t,e,n){const o={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(o>i){const t={type:"attribute",offset:i,howMany:o-i,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseti?(t.nodesToHandle=o-i,t.offset=i):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const i={type:"attribute",offset:n.offset,howMany:o-n.offset,count:this._changeCount++};this._handleChange(i,e),e.push(i),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&o<=i?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&o>=i&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:tl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:tl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const o=[];n=new Map(n);for(const[i,r]of e){const e=n.has(i)?n.get(i):null;e!==r&&o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(i)}for(const[e,i]of n)o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return o}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),o=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&o>=t.offset&&oo){for(let e=0;ethis._version+1&&this._gaps.set(this._version,t),this._version=t}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(t){if(t.baseVersion!==this.version)throw new l("model-document-history-addoperation-incorrect-version",this,{operation:t,historyVersion:this.version});this._operations.push(t),this._version++,this._baseVersionToOperationIndex.set(t.baseVersion,this._operations.length-1)}getOperations(t,e=this.version){if(!this._operations.length)return[];const n=this._operations[0];void 0===t&&(t=n.baseVersion);let o=e-1;for(const[e,n]of this._gaps)t>e&&te&&othis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(t);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(o);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(t){const e=this._baseVersionToOperationIndex.get(t);if(void 0!==e)return this._operations[e]}setOperationAsUndone(t,e){this._undoPairs.set(e,t),this._undoneOperations.add(t)}isUndoingOperation(t){return this._undoPairs.has(t)}isUndoneOperation(t){return this._undoneOperations.has(t)}getUndoneOperation(t){return this._undoPairs.get(t)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}function Jc(t,e){return!!(n=t.charAt(e-1))&&1==n.length&&/[\ud800-\udbff]/.test(n)&&function(t){return!!t&&1==t.length&&/[\udc00-\udfff]/.test(t)}(t.charAt(e));var n}function Xc(t,e){return!!(n=t.charAt(e))&&1==n.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);var n}const td=function(){const t=/\p{Regional_Indicator}{2}/u.source,e="(?:"+[/\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u,/\p{Emoji}\u{FE0F}?\u{20E3}/u,/\p{Emoji}\u{FE0F}/u,/(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u].map((t=>t.source)).join("|")+")";return new RegExp(`${t}|${e}(?:‍${e})*`,"ug")}();function ed(t,e){const n=String(t).matchAll(td);return Array.from(n).some((t=>t.index{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.history.addOperation(n)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,o,i)=>{const r={...e.getData(),range:o};this.differ.bufferMarkerChange(e.name,i,r),null===n&&e.on("change",((t,n)=>{const o=e.getData();this.differ.bufferMarkerChange(e.name,{...o,range:n},o)}))}))}get version(){return this.history.version}set version(t){this.history.version=t}get graveyard(){return this.getRoot(nd)}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new l("model-document-createroot-name-exists",this,{name:e});const n=new Vc(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,(t=>t.rootName)).filter((t=>t!=nd))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=Ro(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,o=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(o)||e.createRange(o)}_validateSelectionRange(t){return id(t.start)&&id(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function id(t){const e=t.textNode;if(e){const n=e.data,o=t.offset-e.startOffset;return!Jc(n,o)&&!Xc(n,o)}return!0}ue(od,k);class rd{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){const e=t instanceof sd?t.name:t;return this._markers.has(e)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,o=!1){const i=t instanceof sd?t.name:t;if(i.includes(","))throw new l("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const t=r.getData(),s=r.getRange();let a=!1;return s.isEqual(e)||(r._attachLiveRange(fl.fromRange(e)),a=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,a=!0),"boolean"==typeof o&&o!=r.affectsData&&(r._affectsData=o,a=!0),a&&this.fire("update:"+i,r,s,e,t),r}const s=fl.fromRange(e),a=new sd(i,s,n,o);return this._markers.set(i,a),this.fire("update:"+i,a,null,e,{...a.getData(),range:null}),a}_remove(t){const e=t instanceof sd?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire("update:"+e,n,n.getRange(),null,n.getData()),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof sd?t.name:t,n=this._markers.get(e);if(!n)throw new l("markercollection-refresh-marker-not-exists",this);const o=n.getRange();this.fire("update:"+e,n,o,o,n.getData())}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}ue(rd,k);class sd{constructor(t,e,n,o){this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=o}get managedUsingOperations(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new l("marker-destroyed",this);return this._liveRange.toRange()}is(t){return"marker"===t||"model:marker"===t}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}ue(sd,k);class ad extends _c{get type(){return"noop"}clone(){return new ad(this.baseVersion)}getReversed(){return new ad(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const ld={};ld[Tc.className]=Tc,ld[zc.className]=zc,ld[Pc.className]=Pc,ld[Nc.className]=Nc,ld[ad.className]=ad,ld[_c.className]=_c,ld[Lc.className]=Lc,ld[Oc.className]=Oc,ld[jc.className]=jc,ld[Rc.className]=Rc;class cd extends tl{constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new l("model-liveposition-root-not-rootelement",t);dd.call(this)}detach(){this.stopListening()}is(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t}toPosition(){return new tl(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function dd(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&ud.call(this,n)}),{priority:"low"})}function ud(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}ue(cd,k);class hd{constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0),this._firstNode=null,this._lastNode=null,this._lastAutoParagraph=null,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new l("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this.nodeToSelect?il._createOn(this.nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new il(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=cd.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new l("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this.nodeToSelect=t:this.nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=cd.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=cd.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof Qa))return;if(!this._canMergeLeft(t))return;const e=cd._createBefore(t);e.stickiness="toNext";const n=cd.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=cd._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=cd._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof Qa))return;if(!this._canMergeRight(t))return;const e=cd._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new l("insertcontent-invalid-insertion-position",this);this.position=tl._createAt(e.nodeBefore,"end");const n=cd.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=cd._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=cd._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof Qa&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof Qa&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function md(t,e,n="auto"){const o=t.getSelectedElement();if(o&&e.schema.isObject(o)&&!e.schema.isInline(o))return["before","after"].includes(n)?e.createRange(e.createPositionAt(o,n)):e.createRangeOn(o);const i=Fa(t.getSelectedBlocks());if(!i)return e.createRange(t.focus);if(i.isEmpty)return e.createRange(e.createPositionAt(i,0));const r=e.createPositionAfter(i);return t.focus.isTouching(r)?e.createRange(r):e.createRange(e.createPositionBefore(i))}function gd(t,e,n,o,i={}){if(!t.schema.isObject(e))throw new l("insertobject-element-not-an-object",t,{object:e});let r;r=n?n.is("selection")?n:t.createSelection(n,o):t.document.selection;let s=r;i.findOptimalPosition&&t.schema.isBlock(e)&&(s=t.createSelection(md(r,t,i.findOptimalPosition)));const a=Fa(r.getSelectedBlocks()),c={};return a&&Object.assign(c,t.schema.getAttributesWithProperty(a,"copyOnReplace",!0)),t.change((n=>{s.isCollapsed||t.deleteContent(s,{doNotAutoparagraph:!0});let o=e;const r=s.anchor.parent;!t.schema.checkChild(r,e)&&t.schema.checkChild(r,"paragraph")&&t.schema.checkChild("paragraph",e)&&(o=n.createElement("paragraph"),n.insert(e,o)),t.schema.setAllowedAttributes(o,c,n);const a=t.insertContent(o,s);return a.isCollapsed||i.setSelection&&function(t,e,n,o){const i=t.model;if("after"==n){let n=e.nextSibling;!(n&&i.schema.checkChild(n,"$text"))&&i.schema.checkChild(e.parent,"paragraph")&&(n=t.createElement("paragraph"),i.schema.setAllowedAttributes(n,o,t),i.insertContent(n,t.createPositionAfter(e))),n&&t.setSelection(n,0)}else{if("on"!=n)throw new l("insertobject-invalid-place-parameter-value",i);t.setSelection(e,"on")}}(n,e,i.setSelection,c),a}))}function pd(t,e,n={}){if(e.isCollapsed)return;const o=e.getFirstRange();if("$graveyard"==o.root.rootName)return;const i=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const o=e.getFirstRange();if(o.start.parent==o.end.parent)return!1;return t.checkChild(n,"paragraph")}(i,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),wd(t,t.createPositionAt(n,0),e)}(t,e);const r={};if(!n.doNotAutoparagraph){const t=e.getSelectedElement();t&&Object.assign(r,i.getAttributesWithProperty(t,"copyOnReplace",!0))}const[s,a]=function(t){const e=t.root.document.model,n=t.start;let o=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,o=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of o){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(o);if(n&&o.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const i=n.getLastPosition(),r=e.createRange(i,o);e.hasContent(r,{ignoreMarkers:!0})||(o=i)}}return[cd.fromPosition(n,"toPrevious"),cd.fromPosition(o,"toNext")]}(o);s.isTouching(a)||t.remove(t.createRange(s,a)),n.leaveUnmerged||(!function(t,e,n){const o=t.model;if(!bd(t.model.schema,e,n))return;const[i,r]=function(t,e){const n=t.getAncestors(),o=e.getAncestors();let i=0;for(;n[i]&&n[i]==o[i];)i++;return[n[i],o[i]]}(e,n);if(!i||!r)return;!o.hasContent(i,{ignoreMarkers:!0})&&o.hasContent(r,{ignoreMarkers:!0})?kd(t,e,n,i.parent):fd(t,e,n,i.parent)}(t,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),t)),Ad(t,e,s),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),o=t.checkChild(e,"paragraph");return!n&&o}(i,s)&&wd(t,s,e,r),s.detach(),a.detach()}))}function fd(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(r,e),t.merge(e);n.parent.isEmpty;){const e=n.parent;n=t.createPositionBefore(e),t.remove(e)}bd(t.model.schema,e,n)&&fd(t,e,n,o)}}function kd(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(i,n);e.parent.isEmpty;){const n=e.parent;e=t.createPositionBefore(n),t.remove(n)}n=t.createPositionBefore(r),function(t,e){const n=e.nodeBefore,o=e.nodeAfter;n.name!=o.name&&t.rename(n,o.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(o.getAttributes()),n),t.merge(e)}(t,n),bd(t.model.schema,e,n)&&kd(t,e,n,o)}}function bd(t,e,n){const o=e.parent,i=n.parent;return o!=i&&(!t.isLimit(o)&&!t.isLimit(i)&&function(t,e,n){const o=new il(t,e);for(const t of o.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function wd(t,e,n,o={}){const i=t.createElement("paragraph");t.model.schema.setAllowedAttributes(i,o,t),t.insert(i,e),Ad(t,n,t.createPositionAt(i,0))}function Ad(t,e,n){e instanceof Al?t.setSelection(n):e.setTo(n)}const _d=' ,.?!:;"-()';function Cd(t,e){const{isForward:n,walker:o,unit:i,schema:r,treatEmojiAsSingleUnit:s}=t,{type:a,item:l,nextPosition:c}=e;if("text"==a)return"word"===t.unit?function(t,e){let n=t.position.textNode;if(n){let o=t.position.offset-n.startOffset;for(;!yd(n.data,o,e)&&!xd(n,o,e);){t.next();const i=e?t.position.nodeAfter:t.position.nodeBefore;if(i&&i.is("$text")){const o=i.data.charAt(e?0:i.data.length-1);_d.includes(o)||(t.next(),n=t.position.textNode)}o=t.position.offset-n.startOffset}}return t.position}(o,n):function(t,e,n){const o=t.position.textNode;if(o){const i=o.data;let r=t.position.offset-o.startOffset;for(;Jc(i,r)||"character"==e&&Xc(i,r)||n&&ed(i,r);)t.next(),r=t.position.offset-o.startOffset}return t.position}(o,i,s);if(a==(n?"elementStart":"elementEnd")){if(r.isSelectable(l))return tl._createAt(l,n?"after":"before");if(r.checkChild(c,"$text"))return c}else{if(r.isLimit(l))return void o.skip((()=>!0));if(r.checkChild(c,"$text"))return c}}function vd(t,e){const n=t.root,o=tl._createAt(n,e?"end":0);return e?new il(t,o):new il(o,t)}function yd(t,e,n){const o=e+(n?0:-1);return _d.includes(t.charAt(o))}function xd(t,e,n){return e===(n?t.endOffset:0)}function Ed(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}function Dd(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,o=e.schema,i=[];let r=!1;for(const t of n.getRanges()){const e=Sd(t,o);e&&!e.isEqual(t)?(i.push(e),r=!0):i.push(t)}r&&t.setSelection(function(t){const e=[...t],n=new Set;let o=1;for(;o!n.has(e)))}(i),{backward:n.isBackward})}(e,t)))}function Sd(t,e){return t.isCollapsed?function(t,e){const n=t.start,o=e.getNearestSelectionRange(n);if(!o){const t=n.getAncestors().reverse().find((t=>e.isObject(t)));return t?il._createOn(t):null}if(!o.isCollapsed)return o;const i=o.start;if(n.isEqual(i))return null;return new il(i)}(t,e):function(t,e){const{start:n,end:o}=t,i=e.checkChild(n,"$text"),r=e.checkChild(o,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(o);if(s===a){if(i&&r)return null;if(function(t,e,n){const o=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),i=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return o||i}(n,o,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),i=o.nodeBefore&&e.isSelectable(o.nodeBefore)?null:e.getNearestSelectionRange(o,"backward"),r=t?t.start:n,s=i?i.end:o;return new il(r,s)}}const l=s&&!s.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const t=n.nodeAfter&&o.nodeBefore&&n.nodeAfter.parent===o.nodeBefore.parent,i=l&&(!t||!Md(n.nodeAfter,e)),r=c&&(!t||!Md(o.nodeBefore,e));let d=n,u=o;return i&&(d=tl._createBefore(Id(s,e))),r&&(u=tl._createAfter(Id(a,e))),new il(d,u)}return null}(t,e)}function Id(t,e){let n=t,o=n;for(;e.isLimit(o)&&o.parent;)n=o,o=o.parent;return n}function Md(t,e){return t&&e.isSelectable(t)}class Td{constructor(){this.markers=new rd,this.document=new od(this),this.schema=new Jl,this._pendingChanges=[],this._currentWriter=null,["insertContent","insertObject","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),Dd(this),this.document.registerPostFixer(Rl)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new Ac,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){l.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{t?"function"==typeof t?(e=t,t=new Ac):t instanceof Ac||(t=new Ac(t)):t=new Ac,this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){l.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,o){return t.change((i=>{let r;r=n?n instanceof ul||n instanceof Al?n:i.createSelection(n,o):t.document.selection,r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});const s=new hd(t,i,r.anchor);let a;a=e.is("documentFragment")?e.getChildren():[e],s.handleNodes(a);const l=s.getSelectionRange();l&&(r instanceof Al?i.setSelection(l):r.setTo(l));const c=s.getAffectedRange()||t.createRange(r.anchor);return s.destroy(),c}))}(this,t,e,n)}insertObject(t,e,n,o){return gd(this,t,e,n,o)}deleteContent(t,e){pd(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const o=t.schema,i="backward"!=n.direction,r=n.unit?n.unit:"character",s=!!n.treatEmojiAsSingleUnit,a=e.focus,l=new Ja({boundaries:vd(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),c={walker:l,schema:o,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=l.next();){if(d.done)return;const n=Cd(c,d.value);if(n)return void(e instanceof Al?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),o=e.getFirstRange();if(!o||o.isCollapsed)return n;const i=o.start.root,r=o.start.getCommonPath(o.end),s=i.getNodeByPath(r);let a;a=o.start.parent==o.end.parent?o:t.createRange(t.createPositionAt(s,o.start.path[r.length]),t.createPositionAt(s,o.end.path[r.length]+1));const l=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=o){const e=o._getTransformedByMove(a.start,t.createPositionAt(n,0),l)[0],i=t.createRange(t.createPositionAt(n,0),e.start);Ed(t.createRange(e.end,t.createPositionAt(n,"end")),t),Ed(i,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof Qa?il._createIn(t):t;if(n.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=e;if(!i)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new tl(t,e,n)}createPositionAt(t,e){return tl._createAt(t,e)}createPositionAfter(t){return tl._createAfter(t)}createPositionBefore(t){return tl._createBefore(t)}createRange(t,e){return new il(t,e)}createRangeIn(t){return il._createIn(t)}createRangeOn(t){return il._createOn(t)}createSelection(t,e,n){return new ul(t,e,n)}createBatch(t){return new Ac(t)}createOperationFromJSON(t){return class{static fromJSON(t,e){return ld[t.__className].fromJSON(t,e)}}.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];for(this.fire("_beforeChanges");this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Fc(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}return this.fire("_afterChanges"),t}}ue(Td,re);class Bd extends Ua{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class Nd{constructor(t={}){const e=t.language||this.constructor.defaultConfig&&this.constructor.defaultConfig.language;this._context=t.context||new Po({language:e}),this._context._addEditor(this,!t.context);const n=Array.from(this.constructor.builtinPlugins||[]);this.config=new yo(t,this.constructor.defaultConfig),this.config.define("plugins",n),this.config.define(this._context._getEditorConfig()),this.plugins=new Io(this,n,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new Kl,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new Td;const o=new Di;this.data=new fc(this.model,o),this.editing=new Yl(this.model,o),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new kc([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Bd(this),this.keystrokes.listenTo(this.editing.view.document)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(t){throw new l("editor-isreadonly-has-no-setter")}enableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new l("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)||(this._readOnlyLocks.add(t),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new l("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)&&(this._readOnlyLocks.delete(t),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],o=t.get("extraPlugins")||[],i=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(o),n,i)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(...t){try{return this.commands.execute(...t)}catch(t){l.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}ue(Nd,re);class zd{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(Pd(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new l("componentfactory-item-missing",this,{name:t});return this._components.get(Pd(t)).callback(this.editor.locale)}has(t){return this._components.has(Pd(t))}}function Pd(t){return String(t).toLowerCase()}class Ld{constructor(t){this.editor=t,this.componentFactory=new zd(t),this.focusTracker=new Ha,this.set("viewportOffset",this._readViewportOffsetFromConfig()),this._editableElementsMap=new Map,this.listenTo(t.editing.view.document,"layoutChanged",(()=>this.update()))}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_readViewportOffsetFromConfig(){const t=this.editor,e=t.config.get("ui.viewportOffset");if(e)return e;const n=t.config.get("toolbar.viewportTopOffset");return n?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:n}):{top:0}}}ue(Ld,re);const Od={setData(t){this.data.set(t)},getData(t){return this.data.get(t)}},Rd=Od;const jd={updateSourceElement(){if(!this.sourceElement)throw new l("editor-missing-sourceelement",this);var t,e;t=this.sourceElement,e=this.data.get(),t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}};class Vd extends Lo{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new So({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new l("pendingactions-add-invalid-message",this);const e=Object.create(re);return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const Fd='',Hd={cancel:'',caption:'',check:'',cog:'',eraser:'',lowVision:'',image:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:Fd};function Ud({emitter:t,activator:e,callback:n,contextElements:o}){t.listenTo(document,"mousedown",((t,i)=>{if(!e())return;const r="function"==typeof i.composedPath?i.composedPath():[];for(const t of o)if(t.contains(i.target)||r.includes(t))return;n()}))}function Wd(t){t.set("_isCssTransitionsDisabled",!1),t.disableCssTransitions=()=>{t._isCssTransitionsDisabled=!0},t.enableCssTransitions=()=>{t._isCssTransitionsDisabled=!1},t.extendTemplate({attributes:{class:[t.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function Gd({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}class qd extends So{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new l("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const o of t)n.delegate(o).to(e);this.on("add",((n,o)=>{for(const n of t)o.delegate(n).to(e)})),this.on("remove",((n,o)=>{for(const n of t)o.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}var Zd=n(6150),Yd={attributes:{"data-cke":!0}};Yd.setAttributes=os(),Yd.insert=es().bind(null,"head"),Yd.domAPI=Xr(),Yd.insertStyleElement=rs();Qr()(Zd.Z,Yd);Zd.Z&&Zd.Z.locals&&Zd.Z.locals;class Kd{constructor(t){this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new So,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=$d.bind(this,this)}createCollection(t){const e=new qd(t);return this._viewCollections.add(e),e}registerChild(t){Do(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){Do(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new $d(t)}extendTemplate(t){$d.extend(this.template,t)}render(){if(this.isRendered)throw new l("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}ue(Kd,Ds),ue(Kd,re);class $d{constructor(t){Object.assign(this,su(ru(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new l("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)hu(n)?yield n:mu(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,o)=>new Jd({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:o}),if:(n,o,i)=>new Xd({observable:t,emitter:e,attribute:n,valueIfTrue:o,callback:i})}}static extend(t,e){if(t._isRendered)throw new l("template-extend-render",[this,t]);du(t,su(ru(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new l("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),tu(this.text)?this._bindToObservable({schema:this.text,updater:nu(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){let e,n,o,i;if(!this.attributes)return;const r=t.node,s=t.revertData;for(e in this.attributes)if(o=r.getAttribute(e),n=this.attributes[e],s&&(s.attributes[e]=o),i=x(n[0])&&n[0].ns?n[0].ns:null,tu(n)){const a=i?n[0].value:n;s&&pu(e)&&a.unshift(o),this._bindToObservable({schema:a,updater:ou(r,e,i),data:t})}else"style"==e&&"string"!=typeof n[0]?this._renderStyleAttribute(n[0],t):(s&&o&&pu(e)&&n.unshift(o),n=n.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(lu,""),uu(n)||r.setAttributeNS(i,e,n))}_renderStyleAttribute(t,e){const n=e.node;for(const o in t){const i=t[o];tu(i)?this._bindToObservable({schema:[i],updater:iu(n,o),data:e}):n.style[o]=i}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,o=t.isApplying;let i=0;for(const r of this.children)if(gu(r)){if(!o){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(hu(r))o||(r.isRendered||r.render(),n.appendChild(r.element));else if(Kr(r))n.appendChild(r);else if(o){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({node:n.childNodes[i++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[o,i]=e.split("@");return n.activateDomEventListener(o,i,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const o=n.revertData;eu(t,e,n);const i=t.filter((t=>!uu(t))).filter((t=>t.observable)).map((o=>o.activateAttributeListener(t,e,n)));o&&o.bindings.push(i)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)t.textContent=e.text;else{for(const n in e.attributes){const o=e.attributes[n];null===o?t.removeAttribute(n):t.setAttribute(n,o)}for(let n=0;neu(t,e,n);return this.emitter.listenTo(this.observable,"change:"+this.attribute,o),()=>{this.emitter.stopListening(this.observable,"change:"+this.attribute,o)}}}class Jd extends Qd{activateDomEventListener(t,e,n){const o=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,o),()=>{this.emitter.stopListening(n.node,t,o)}}}class Xd extends Qd{getValue(t){return!uu(super.getValue(t))&&(this.valueIfTrue||!0)}}function tu(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(tu):t instanceof Qd)}function eu(t,e,{node:n}){let o=function(t,e){return t.map((t=>t instanceof Qd?t.getValue(e):t))}(t,n);o=1==t.length&&t[0]instanceof Xd?o[0]:o.reduce(lu,""),uu(o)?e.remove():e.set(o)}function nu(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function ou(t,e,n){return{set(o){t.setAttributeNS(n,e,o)},remove(){t.removeAttributeNS(n,e)}}}function iu(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function ru(t){return Co(t,(t=>{if(t&&(t instanceof Qd||mu(t)||hu(t)||gu(t)))return t}))}function su(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=Mo(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)au(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=Mo(t[e].value)),au(t,e)}(t.attributes);const e=[];if(t.children)if(gu(t.children))e.push(t.children);else for(const n of t.children)mu(n)||hu(n)||Kr(n)?e.push(n):e.push(new $d(n));t.children=e}return t}function au(t,e){t[e]=Mo(t[e])}function lu(t,e){return uu(e)?t:uu(t)?e:`${t} ${e}`}function cu(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function du(t,e){if(e.attributes&&(t.attributes||(t.attributes={}),cu(t.attributes,e.attributes)),e.eventListeners&&(t.eventListeners||(t.eventListeners={}),cu(t.eventListeners,e.eventListeners)),e.text&&t.text.push(...e.text),e.children&&e.children.length){if(t.children.length!=e.children.length)throw new l("ui-template-extend-children-mismatch",t);let n=0;for(const o of e.children)du(t.children[n++],o)}}function uu(t){return!t&&0!==t}function hu(t){return t instanceof Kd}function mu(t){return t instanceof $d}function gu(t){return t instanceof qd}function pu(t){return"class"==t||"style"==t}class fu extends qd{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new $d({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=Ca(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}var ku=n(1174),bu={attributes:{"data-cke":!0}};bu.setAttributes=os(),bu.insert=es().bind(null,"head"),bu.domAPI=Xr(),bu.insertStyleElement=rs();Qr()(ku.Z,bu);ku.Z&&ku.Z.locals&&ku.Z.locals;class wu extends Kd{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}var Au=n(9948),_u={attributes:{"data-cke":!0}};_u.setAttributes=os(),_u.insert=es().bind(null,"head"),_u.domAPI=Xr(),_u.insertStyleElement=rs();Qr()(Au.Z,_u);Au.Z&&Au.Z.locals&&Au.Z.locals;class Cu extends Kd{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",(t=>"ck-tooltip_"+t)),e.if("text","ck-hidden",(t=>!t.trim()))]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}var vu=n(4499),yu={attributes:{"data-cke":!0}};yu.setAttributes=os(),yu.insert=es().bind(null,"head"),yu.domAPI=Xr(),yu.insertStyleElement=rs();Qr()(vu.Z,yu);vu.Z&&vu.Z.locals&&vu.Z.locals;class xu extends Kd{constructor(t){super(t);const e=this.bindTemplate,n=r();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new wu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("isVisible","ck-hidden",(t=>!t)),e.to("isOn",(t=>t?"ck-on":"ck-off")),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",(t=>t||"button")),tabindex:e.to("tabindex"),"aria-labelledby":`ck-editor__aria-label_${n}`,"aria-disabled":e.if("isEnabled",!0,(t=>!t)),"aria-pressed":e.to("isOn",(t=>!!this.isToggleable&&String(t)))},children:this.children,on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createTooltipView(){const t=new Cu;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new Kd,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:`ck-editor__aria-label_${t}`},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new Kd;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>gr(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=gr(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var Eu=n(9681),Du={attributes:{"data-cke":!0}};Du.setAttributes=os(),Du.insert=es().bind(null,"head"),Du.domAPI=Xr(),Du.insertStyleElement=rs();Qr()(Eu.Z,Du);Eu.Z&&Eu.Z.locals&&Eu.Z.locals;class Su extends xu{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Kd;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}function Iu(t,e){const n=t.t,o={Black:n("Black"),"Dim grey":n("Dim grey"),Grey:n("Grey"),"Light grey":n("Light grey"),White:n("White"),Red:n("Red"),Orange:n("Orange"),Yellow:n("Yellow"),"Light green":n("Light green"),Green:n("Green"),Aquamarine:n("Aquamarine"),Turquoise:n("Turquoise"),"Light blue":n("Light blue"),Blue:n("Blue"),Purple:n("Purple")};return e.map((t=>{const e=o[t.label];return e&&e!=t.label&&(t.label=e),t}))}function Mu(t){return t.map(Tu).filter((t=>!!t))}function Tu(t){return"string"==typeof t?{model:t,label:t,hasBorder:!1,view:{name:"span",styles:{color:t}}}:{model:t.color,label:t.label||t.color,hasBorder:void 0!==t.hasBorder&&t.hasBorder,view:{name:"span",styles:{color:`${t.color}`}}}}class Bu extends xu{constructor(t){super(t);const e=this.bindTemplate;this.set("color"),this.set("hasBorder"),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:e.to("color")},class:["ck","ck-color-grid__tile",e.if("hasBorder","ck-color-table__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}function Nu(t){return!!(t&&t.getClientRects&&t.getClientRects().length)}class zu{constructor(t){if(Object.assign(this,t),t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const o of n)t.keystrokeHandler.set(o,((t,n)=>{this[e](),n()}))}}get first(){return this.focusables.find(Pu)||null}get last(){return this.focusables.filter(Pu).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const o=e.element===this.focusTracker.focusedElement;return o&&(t=n),o})),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let o=(e+n+t)%n;do{const e=this.focusables.get(o);if(Pu(e))return e;o=(o+n+t)%n}while(o!==e);return null}}function Pu(t){return!(!t.focus||!Nu(t.element))}var Lu=n(4923),Ou={attributes:{"data-cke":!0}};Ou.setAttributes=os(),Ou.insert=es().bind(null,"head"),Ou.domAPI=Xr(),Ou.insertStyleElement=rs();Qr()(Lu.Z,Ou);Lu.Z&&Lu.Z.locals&&Lu.Z.locals;class Ru extends Kd{constructor(t,e){super(t);const n=e&&e.colorDefinitions||[],o={};e&&e.columns&&(o.gridTemplateColumns=`repeat( ${e.columns}, 1fr)`),this.set("selectedColor"),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}}),this.items.on("add",((t,e)=>{e.isOn=e.color===this.selectedColor})),n.forEach((t=>{const e=new Bu;e.set({color:t.color,label:t.label,tooltip:!0,hasBorder:t.options.hasBorder}),e.on("execute",(()=>{this.fire("execute",{value:t.color,hasBorder:t.options.hasBorder,label:t.label})})),this.items.add(e)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:o}}),this.on("change:selectedColor",((t,e,n)=>{for(const t of this.items)t.isOn=t.color===n}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}const ju='';class Vu extends xu{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new wu;return t.content=ju,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}var Fu=n(66),Hu={attributes:{"data-cke":!0}};Hu.setAttributes=os(),Hu.insert=es().bind(null,"head"),Hu.domAPI=Xr(),Hu.insertStyleElement=rs();Qr()(Fu.Z,Hu);Fu.Z&&Fu.Z.locals&&Fu.Z.locals;class Uu extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("class"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(),this.arrowView=this._createArrowView(),this.keystrokes=new Ua,this.focusTracker=new Ha,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.to("class"),e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(){const t=new xu;return t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const t=new xu,e=t.bindTemplate;return t.icon=ju,t.extendTemplate({attributes:{class:"ck-splitbutton__arrow","aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.delegate("execute").to(this,"open"),t}}class Wu extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>`ck-dropdown__panel_${t}`)),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to((t=>t.preventDefault()))}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}var Gu=n(3488),qu={attributes:{"data-cke":!0}};qu.setAttributes=os(),qu.insert=es().bind(null,"head"),qu.domAPI=Xr(),qu.insertStyleElement=rs();Qr()(Gu.Z,qu);Gu.Z&&Gu.Z.locals&&Gu.Z.locals;function Zu({element:t,target:e,positions:n,limiter:o,fitInViewport:i,viewportOffsetConfig:r}){j(e)&&(e=e()),j(o)&&(o=o());const s=function(t){return t&&t.parentNode?t.offsetParent===hs.document.body?null:t.offsetParent:null}(t),a=new Ea(t);let l;const c={targetRect:new Ea(e),elementRect:a,positionedElementAncestor:s};if(o||i){const t=o&&new Ea(o).getVisible(),e=i&&function(t){t=Object.assign({top:0,bottom:0,left:0,right:0},t);const e=new Ea(hs.window);return e.top+=t.top,e.height-=t.top,e.bottom-=t.bottom,e.height-=t.bottom,e}(r);Object.assign(c,{limiterRect:t,viewportRect:e}),l=function(t,e){const{elementRect:n}=e,o=n.getArea(),i=t.map((t=>new Ku(t,e))).filter((t=>!!t.name));let r=0,s=null;for(const t of i){const{_limiterIntersectionArea:e,_viewportIntersectionArea:n}=t;if(e===o)return t;const i=n**2+e**2;i>r&&(r=i,s=t)}return s}(n,c)||new Ku(n[0],c)}else l=new Ku(n[0],c);return l}function Yu(t){const{scrollX:e,scrollY:n}=hs.window;return t.clone().moveBy(e,n)}class Ku{constructor(t,e){const n=t(e.targetRect,e.elementRect,e.viewportRect);if(!n)return;const{left:o,top:i,name:r,config:s}=n;Object.assign(this,{name:r,config:s}),this._positioningFunctionCorrdinates={left:o,top:i},this._options=e}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get _limiterIntersectionArea(){const t=this._options.limiterRect;if(t){const e=this._options.viewportRect;if(!e)return t.getIntersectionArea(this._rect);{const n=t.getIntersection(e);if(n)return n.getIntersectionArea(this._rect)}}return 0}get _viewportIntersectionArea(){const t=this._options.viewportRect;return t?t.getIntersectionArea(this._rect):0}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCorrdinates.left,this._positioningFunctionCorrdinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=Yu(this._rect),this._options.positionedElementAncestor&&function(t,e){const n=Yu(new Ea(e)),o=ya(e);let i=0,r=0;i-=n.left,r-=n.top,i+=e.scrollLeft,r+=e.scrollTop,i-=o.left,r-=o.top,t.moveBy(i,r)}(this._cachedAbsoluteRect,this._options.positionedElementAncestor)),this._cachedAbsoluteRect}}class $u extends Kd{constructor(t,e,n){super(t);const o=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("id"),this.set("panelPosition","auto"),this.keystrokes=new Ua,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",o.to("class"),o.if("isEnabled","ck-disabled",(t=>!t))],id:o.to("id"),"aria-describedby":o.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",(()=>{this.isOpen&&("auto"===this.panelPosition?this.panelView.position=$u._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:o,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=$u.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,o,s,a,t,i,r,l,c,e]:[o,n,a,s,t,r,i,c,l,e]}}$u.defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})},$u._getOptimalPosition=Zu;class Qu extends Kd{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class Ju extends Kd{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function Xu(t){return Array.isArray(t)?{items:t,removeItems:[]}:t?Object.assign({items:[],removeItems:[]},t):{items:[],removeItems:[]}}var th=n(5571),eh={attributes:{"data-cke":!0}};eh.setAttributes=os(),eh.insert=es().bind(null,"head"),eh.domAPI=Xr(),eh.insertStyleElement=rs();Qr()(th.Z,eh);th.Z&&th.Z.locals&&th.Z.locals;class nh extends Kd{constructor(t,e){super(t);const n=this.bindTemplate,o=this.t;this.options=e||{},this.set("ariaLabel",o("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("class"),this.set("isCompact",!1),this.itemsView=new oh(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===t.uiLanguageDirection;this._focusCycler=new zu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new rh(this):new ih(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e){const n=Xu(t),o=n.items.filter(((t,o,i)=>"|"===t||-1===n.removeItems.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(c("toolbarview-line-break-ignored-when-grouping-items",i),!1):!!e.has(t)||(c("toolbarview-item-unavailable",{name:t}),!1)))),i=this._cleanSeparators(o).map((t=>"|"===t?new Qu:"-"===t?new Ju:e.create(t)));this.items.addMany(i)}_cleanSeparators(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,o=t.findIndex(e),i=n-t.slice().reverse().findIndex(e);return t.slice(o,i).filter(((t,n,o)=>{if(e(t))return!0;return!(n>0&&o[n-1]===t)}))}}class oh extends Kd{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class ih{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>t)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class rh{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index;for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(o,t-this.ungroupedItems.length):this.ungroupedItems.add(o,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!Nu(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ea(t.lastChild),o=new Ea(t);if(!this.cachedPadding){const n=hs.window.getComputedStyle(t),o="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[o])}return"ltr"===e?n.right>o.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new Qu),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=ph(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",fh(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Fd}),n.toolbarView.items.bindTo(this.groupedItems).using((t=>t)),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}var sh=n(1162),ah={attributes:{"data-cke":!0}};ah.setAttributes=os(),ah.insert=es().bind(null,"head"),ah.domAPI=Xr(),ah.insertStyleElement=rs();Qr()(sh.Z,ah);sh.Z&&sh.Z.locals&&sh.Z.locals;class lh extends Kd{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new Ha,this.keystrokes=new Ua,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class ch extends Kd{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class dh extends Kd{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}var uh=n(5075),hh={attributes:{"data-cke":!0}};hh.setAttributes=os(),hh.insert=es().bind(null,"head"),hh.domAPI=Xr(),hh.insertStyleElement=rs();Qr()(uh.Z,hh);uh.Z&&uh.Z.locals&&uh.Z.locals;var mh=n(6875),gh={attributes:{"data-cke":!0}};gh.setAttributes=os(),gh.insert=es().bind(null,"head"),gh.domAPI=Xr(),gh.insertStyleElement=rs();Qr()(mh.Z,gh);mh.Z&&mh.Z.locals&&mh.Z.locals;function ph(t,e=Vu){const n=new e(t),o=new Wu(t),i=new $u(t,n,o);return n.bind("isEnabled").to(i),n instanceof Vu?n.bind("isOn").to(i,"isOpen"):n.arrowView.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",(()=>{Ud({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof Su||(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t)}(i),i}function fh(t,e){const n=t.locale,o=n.t,i=t.toolbarView=new nh(n);i.set("ariaLabel",o("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map((t=>i.items.add(t))),t.panelView.children.add(i),i.items.delegate("execute").to(t)}function kh(t,e){const n=t.locale,o=t.listView=new lh(n);o.items.bindTo(e).using((({type:t,model:e})=>{if("separator"===t)return new dh(n);if("button"===t||"switchbutton"===t){const o=new ch(n);let i;return i="button"===t?new xu(n):new Su(n),i.bind(...Object.keys(e)).to(e),i.delegate("execute").to(o),o.children.add(i),o}})),t.panelView.children.add(o),o.items.delegate("execute").to(t)}var bh=n(4547),wh={attributes:{"data-cke":!0}};wh.setAttributes=os(),wh.insert=es().bind(null,"head"),wh.domAPI=Xr(),wh.insertStyleElement=rs();Qr()(bh.Z,wh);bh.Z&&bh.Z.locals&&bh.Z.locals;class Ah extends Kd{constructor(t){super(t),this.body=new fu(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}var _h=n(2751),Ch={attributes:{"data-cke":!0}};Ch.setAttributes=os(),Ch.insert=es().bind(null,"head"),Ch.domAPI=Xr(),Ch.insertStyleElement=rs();Qr()(_h.Z,Ch);_h.Z&&_h.Z.locals&&_h.Z.locals;class vh extends Kd{constructor(t){super(t),this.set("text"),this.set("for"),this.id=`ck-editor__label_${r()}`;const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class yh extends Ah{constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new vh;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class xh extends Kd{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const o=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",o),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",o)}))}t.isRenderingInProgress?function n(o){t.once("change:isRenderingInProgress",((t,i,r)=>{r?n(o):e(o)}))}(this):e(this)}}class Eh extends xh{constructor(t,e,n){super(t,e,n),this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const t=this._editingView,e=this.t;t.change((n=>{const o=t.document.getRoot(this.name);n.setAttribute("aria-label",e("Rich Text Editor, %0",this.name),o)}))}}var Dh=n(5523),Sh={attributes:{"data-cke":!0}};Sh.setAttributes=os(),Sh.insert=es().bind(null,"head"),Sh.domAPI=Xr(),Sh.insertStyleElement=rs();Qr()(Dh.Z,Sh);Dh.Z&&Dh.Z.locals&&Dh.Z.locals;class Ih extends Kd{constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("label",e.label||""),this.set("class",e.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",n.to("class")]},children:this.children});const o=new Kd(t);o.setTemplate({tag:"span",attributes:{class:["ck","ck-form__header__label"]},children:[{text:n.to("label")}]}),this.children.add(o)}}var Mh=n(6985),Th={attributes:{"data-cke":!0}};Th.setAttributes=os(),Th.insert=es().bind(null,"head"),Th.domAPI=Xr(),Th.insertStyleElement=rs();Qr()(Mh.Z,Th);Mh.Z&&Mh.Z.locals&&Mh.Z.locals;class Bh extends Kd{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById"),this.focusTracker=new Ha,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0),this.set("inputMode","text");const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),inputmode:e.to("inputMode"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to(((...t)=>{this.fire("input",...t),this._updateIsEmpty()})),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}class Nh extends Bh{constructor(t){super(t),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class zh extends Bh{constructor(t,{min:e,max:n,step:o}={}){super(t);const i=this.bindTemplate;this.set("min",e),this.set("max",n),this.set("step",o),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:i.to("min"),max:i.to("max"),step:i.to("step")}})}}var Ph=n(8111),Lh={attributes:{"data-cke":!0}};Lh.setAttributes=os(),Lh.insert=es().bind(null,"head"),Lh.domAPI=Xr(),Lh.insertStyleElement=rs();Qr()(Ph.Z,Lh);Ph.Z&&Ph.Z.locals&&Ph.Z.locals;class Oh extends Kd{constructor(t,e){super(t);const n=`ck-labeled-field-view-${r()}`,o=`ck-labeled-field-view-status-${r()}`;this.fieldView=e(this,n,o),this.set("label"),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class"),this.set("placeholder"),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(o),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:[this.fieldView,this.labelView]},this.statusView]})}_createLabelView(t){const e=new vh(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Kd(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}function Rh(t,e,n){const o=new Nh(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o}function jh(t,e,n){const o=new zh(t.locale);return o.set({id:e,ariaDescribedById:n,inputMode:"numeric"}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o}function Vh(t,e,n){const o=ph(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isEnabled").to(t),o}class Fh extends Lo{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e=`show:${t.type}`+(t.namespace?`:${t.namespace}`:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class Hh{constructor(t,e){e&&Jt(this,e),t&&this.set(t)}}function Uh(t){return e=>e+t}ue(Hh,re);var Wh=n(8245),Gh={attributes:{"data-cke":!0}};Gh.setAttributes=os(),Gh.insert=es().bind(null,"head"),Gh.domAPI=Xr(),Gh.insertStyleElement=rs();Qr()(Wh.Z,Gh);Wh.Z&&Wh.Z.locals&&Wh.Z.locals;const qh=Uh("px"),Zh=hs.document.body;class Yh extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>`ck-balloon-panel_${t}`)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",qh),left:e.to("left",qh)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=Yh.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast,e.viewportStickyNorth],limiter:Zh,fitInViewport:!0},t),o=Yh._getOptimalPosition(n),i=parseInt(o.left),r=parseInt(o.top),{name:s,config:a={}}=o,{withArrow:l=!0}=a;Object.assign(this,{top:r,left:i,position:s,withArrow:l})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=Kh(t.target),n=t.limiter?Kh(t.limiter):Zh;this.listenTo(hs.document,"scroll",((o,i)=>{const r=i.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(hs.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(hs.document,"scroll"),this.stopListening(hs.window,"resize")}}function Kh(t){return vo(t)?t:va(t)?t.commonAncestorContainer:"function"==typeof t?Kh(t()):null}Yh.arrowHorizontalOffset=25,Yh.arrowVerticalOffset=10,Yh.stickyVerticalOffset=20,Yh._getOptimalPosition=Zu,Yh.defaultPositions=function({horizontalOffset:t=Yh.arrowHorizontalOffset,verticalOffset:e=Yh.arrowVerticalOffset,stickyVerticalOffset:n=Yh.stickyVerticalOffset,config:o}={}){return{northWestArrowSouthWest:(e,n)=>({top:i(e,n),left:e.left-t,name:"arrow_sw",...o&&{config:o}}),northWestArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.left-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northWestArrowSouth:(t,e)=>({top:i(t,e),left:t.left-e.width/2,name:"arrow_s",...o&&{config:o}}),northWestArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.left-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northWestArrowSouthEast:(e,n)=>({top:i(e,n),left:e.left-n.width+t,name:"arrow_se",...o&&{config:o}}),northArrowSouthWest:(e,n)=>({top:i(e,n),left:e.left+e.width/2-t,name:"arrow_sw",...o&&{config:o}}),northArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.left+e.width/2-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northArrowSouth:(t,e)=>({top:i(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s",...o&&{config:o}}),northArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.left+e.width/2-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northArrowSouthEast:(e,n)=>({top:i(e,n),left:e.left+e.width/2-n.width+t,name:"arrow_se",...o&&{config:o}}),northEastArrowSouthWest:(e,n)=>({top:i(e,n),left:e.right-t,name:"arrow_sw",...o&&{config:o}}),northEastArrowSouthMiddleWest:(e,n)=>({top:i(e,n),left:e.right-.25*n.width-t,name:"arrow_smw",...o&&{config:o}}),northEastArrowSouth:(t,e)=>({top:i(t,e),left:t.right-e.width/2,name:"arrow_s",...o&&{config:o}}),northEastArrowSouthMiddleEast:(e,n)=>({top:i(e,n),left:e.right-.75*n.width+t,name:"arrow_sme",...o&&{config:o}}),northEastArrowSouthEast:(e,n)=>({top:i(e,n),left:e.right-n.width+t,name:"arrow_se",...o&&{config:o}}),southWestArrowNorthWest:(e,n)=>({top:r(e),left:e.left-t,name:"arrow_nw",...o&&{config:o}}),southWestArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.left-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southWestArrowNorth:(t,e)=>({top:r(t),left:t.left-e.width/2,name:"arrow_n",...o&&{config:o}}),southWestArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.left-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southWestArrowNorthEast:(e,n)=>({top:r(e),left:e.left-n.width+t,name:"arrow_ne",...o&&{config:o}}),southArrowNorthWest:(e,n)=>({top:r(e),left:e.left+e.width/2-t,name:"arrow_nw",...o&&{config:o}}),southArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.left+e.width/2-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southArrowNorth:(t,e)=>({top:r(t),left:t.left+t.width/2-e.width/2,name:"arrow_n",...o&&{config:o}}),southArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.left+e.width/2-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southArrowNorthEast:(e,n)=>({top:r(e),left:e.left+e.width/2-n.width+t,name:"arrow_ne",...o&&{config:o}}),southEastArrowNorthWest:(e,n)=>({top:r(e),left:e.right-t,name:"arrow_nw",...o&&{config:o}}),southEastArrowNorthMiddleWest:(e,n)=>({top:r(e),left:e.right-.25*n.width-t,name:"arrow_nmw",...o&&{config:o}}),southEastArrowNorth:(t,e)=>({top:r(t),left:t.right-e.width/2,name:"arrow_n",...o&&{config:o}}),southEastArrowNorthMiddleEast:(e,n)=>({top:r(e),left:e.right-.75*n.width+t,name:"arrow_nme",...o&&{config:o}}),southEastArrowNorthEast:(e,n)=>({top:r(e),left:e.right-n.width+t,name:"arrow_ne",...o&&{config:o}}),viewportStickyNorth:(t,e,i)=>t.getIntersection(i)?{top:i.top+n,left:t.left+t.width/2-e.width/2,name:"arrowless",config:{withArrow:!1,...o}}:null};function i(t,n){return t.top-n.height-e}function r(t){return t.bottom+e}}();var $h=n(1757),Qh={attributes:{"data-cke":!0}};Qh.setAttributes=os(),Qh.insert=es().bind(null,"head"),Qh.domAPI=Xr(),Qh.insertStyleElement=rs();Qr()($h.Z,Qh);$h.Z&&$h.Z.locals&&$h.Z.locals;var Jh=n(3553),Xh={attributes:{"data-cke":!0}};Xh.setAttributes=os(),Xh.insert=es().bind(null,"head"),Xh.domAPI=Xr(),Xh.insertStyleElement=rs();Qr()(Jh.Z,Xh);Jh.Z&&Jh.Z.locals&&Jh.Z.locals;const tm=Uh("px");class em extends he{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new Yh(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}destroy(){super.destroy(),this.view.destroy(),this._rotatorView.destroy(),this._fakePanelsView.destroy()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new l("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new l("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new l("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new nm(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new om(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:o=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),o&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&(t.limiter||(t=Object.assign({},t,{limiter:this.positionLimiter})),t=Object.assign({},t,{viewportOffsetConfig:this.editor.ui.viewportOffset})),t}}class nm extends Kd{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Ha,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new xu(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class om extends Kd{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",tm),left:n.to("left",tm),width:n.to("width",tm),height:n.to("height",tm)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,o)=>{n>o?this._addPanels(n-o):this._removePanels(o-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Kd;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:o}=new Ea(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var im=n(3609),rm={attributes:{"data-cke":!0}};rm.setAttributes=os(),rm.insert=es().bind(null,"head"),rm.domAPI=Xr(),rm.insertStyleElement=rs();Qr()(im.Z,rm);im.Z&&im.Z.locals&&im.Z.locals;const sm=Uh("px");class am extends Kd{constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheLimiter",!1),this.set("_hasViewportTopOffset",!1),this.content=this.createCollection(),this._contentPanelPlaceholder=new $d({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?sm(this._panelRect.height):null))}}}).render(),this._contentPanel=new $d({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?sm(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_hasViewportTopOffset",(t=>t?sm(this.viewportTopOffset):null)),bottom:e.to("_isStickyToTheLimiter",(t=>t?sm(this.limiterBottomOffset):null)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this._contentPanel]})}render(){super.render(),this._checkIfShouldBeSticky(),this.listenTo(hs.window,"scroll",(()=>{this._checkIfShouldBeSticky()})),this.listenTo(this,"change:isActive",(()=>{this._checkIfShouldBeSticky()}))}_checkIfShouldBeSticky(){const t=this._panelRect=this._contentPanel.getBoundingClientRect();let e;this.limiterElement?(e=this._limiterRect=this.limiterElement.getBoundingClientRect(),this.isSticky=this.isActive&&e.toppm(s,t)))),hm.get(s).set(n,{text:o,isDirectHost:i,keepOnFocus:r,hostElement:i?n:null}),e.change((t=>pm(s,t)))}function gm(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function pm(t,e){const n=hm.get(t),o=[];let i=!1;for(const[t,r]of n)r.isDirectHost&&(o.push(t),fm(e,t,r)&&(i=!0));for(const[t,r]of n){if(r.isDirectHost)continue;const n=km(t);n&&(o.includes(n)||(r.hostElement=n,fm(e,t,r)&&(i=!0)))}return i}function fm(t,e,n){const{text:o,isDirectHost:i,hostElement:r}=n;let s=!1;r.getAttribute("data-placeholder")!==o&&(t.setAttribute("data-placeholder",o,r),s=!0);return(i||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;const n=Array.from(t.getChildren()).some((t=>!t.is("uiElement")));if(n)return!1;if(e)return!0;const o=t.document;if(!o.isFocused)return!0;const i=o.selection.anchor;return i&&i.parent!==t}(r,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0):gm(t,r)&&(s=!0),s}function km(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement")&&!e.is("attributeElement"))return e}return null}const bm=new Map;function wm(t,e,n){let o=bm.get(t);o||(o=new Map,bm.set(t,o)),o.set(e,n)}function Am(t){return[t]}function _m(t,e,n={}){const o=function(t,e){const n=bm.get(t);return n&&n.has(e)?n.get(e):Am}(t.constructor,e.constructor);try{return o(t=t.clone(),e,n)}catch(t){throw t}}function Cm(t,e,n){t=t.slice(),e=e.slice();const o=new vm(n.document,n.useRelations,n.forceWeakRemove);o.setOriginalOperations(t),o.setOriginalOperations(e);const i=o.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:i};const r=new WeakMap;for(const e of t)r.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new Tc(e,t.key,t.oldValue,t.newValue,0))),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&o.push(new Tc(i,e.key,e.newValue,t.newValue,0)),0==o.length?[new ad(0)]:o}return[t]})),wm(Tc,zc,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const o=Em(e,t.key,t.oldValue);o&&n.unshift(o)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),wm(Tc,Rc,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(il._createFromPositionAndShift(e.graveyardPosition,1));const o=t.range._getTransformedByMergeOperation(e);return o.isCollapsed||n.push(o),n.map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),wm(Tc,Nc,((t,e)=>{const n=function(t,e){const n=il._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null,i=[];n.containsRange(t,!0)?o=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),o=t.getIntersection(n)):i=[t];const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),o=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,o),r.push(...t)}o&&r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e);return n.map((e=>new Tc(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),wm(Tc,jc,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new il(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),wm(zc,Tc,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=Em(t,e.key,e.newValue);o&&n.push(o)}return n})),wm(zc,zc,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),wm(zc,Nc,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),wm(zc,jc,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),wm(zc,Rc,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),wm(Pc,zc,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),wm(Pc,Pc,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new ad(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),wm(Pc,Rc,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),wm(Pc,Nc,((t,e,n)=>{if(t.oldRange&&(t.oldRange=il._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const o=il._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=o.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=o.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=il._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),wm(Pc,jc,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=tl._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=tl._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=tl._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=tl._createAt(e.insertionPosition):t.newRange.end=o.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),wm(Rc,zc,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),wm(Rc,Rc,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new tl(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new ad(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const o="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),o=t.targetPosition._getTransformedByMergeOperation(e);return[new Nc(n,t.howMany,o,0)]}return[new ad(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),wm(Rc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)?[new ad(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),wm(Rc,jc,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const o=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),wm(Nc,zc,((t,e)=>{const n=il._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),wm(Nc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(t.sourcePosition,t.howMany),i=il._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Dm(t,e)&&Dm(e,t))return[e.getReversed()];if(o.containsPosition(e.targetPosition)&&o.containsRange(i,!0))return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Sm([o],r);if(i.containsPosition(t.targetPosition)&&i.containsRange(o,!0))return o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),Sm([o],r);const l=Oo(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Sm([o],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const c=[],d=o.getDifference(i);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==Oo(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);c.push(...o)}const u=o.getIntersection(i);return null!==u&&s&&(u.start=u.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),u.end=u.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?i.start.isBefore(o.start)||i.start.isEqual(o.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new ad(t.baseVersion)]:Sm(c,r)})),wm(Nc,jc,((t,e,n)=>{let o=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(o=t.targetPosition._getTransformedBySplitOperation(e));const i=il._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=o,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new il(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);return Sm([new il(i.start,e.splitPosition),t],o)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(o=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(o=t.targetPosition);const r=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&o&&!n.aWasUndone&&r.push(il._createFromPositionAndShift(e.insertionPosition,1))}return Sm(r,o)})),wm(Nc,Rc,((t,e,n)=>{const o=il._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new ad(0)]}else if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Nc(t.sourcePosition,t.howMany-1,t.targetPosition,0)),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Nc(o,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new tl(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const c=new Nc(i,e.howMany,l,0);return n.push(s),n.push(c),n}const i=il._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),wm(Lc,zc,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),wm(Lc,Rc,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),wm(Lc,Nc,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),wm(Lc,Lc,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new ad(0)];t.oldName=e.newName}return[t]})),wm(Lc,jc,((t,e)=>{if("same"==Oo(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Lc(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),wm(Oc,Oc,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new ad(0)];t.oldValue=e.newValue}return[t]})),wm(jc,zc,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new tl(e.graveyardPosition.root,n),i=jc.getInsertionPosition(new tl(e.graveyardPosition.root,n)),r=new jc(o,0,i,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),wm(jc,Nc,((t,e,n)=>{const o=il._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),o=t.graveyardPosition._getTransformedByMoveOperation(e),i=o.path.slice();i.push(0);const r=new tl(o.root,i);return[new Nc(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const i=t.splitPosition.isEqual(e.targetPosition);if(i&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=jc.getInsertionPosition(t.splitPosition),[t];if(i&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:o}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(o),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new ad(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new ad(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Nc(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Nc(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new ad(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const o=new tl(e.insertionPosition.root,n);return[t,new Nc(t.insertionPosition,1,o,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{const{top:n,right:o,bottom:i,left:r}=e,s=[];return[n,o,r,i].every((t=>!!t))?s.push([t,tg(e)]):(n&&s.push([t+"-top",n]),o&&s.push([t+"-right",o]),i&&s.push([t+"-bottom",i]),r&&s.push([t+"-left",r])),s}}function tg({top:t,right:e,bottom:n,left:o}){const i=[];return o!==e?i.push(t,e,n,o):n!==t?i.push(t,e,n):e!==t?i.push(t,e):i.push(t),i.join(" ")}function eg(t){return e=>({path:t,value:Jm(e)})}function ng(t){return t.replace(/, /g,",").split(" ").map((t=>t.replace(/,/g,", ")))}function og(t){t.setNormalizer("background",ig),t.setNormalizer("background-color",(t=>({path:"background.color",value:t}))),t.setReducer("background",(t=>{const e=[];return e.push(["background-color",t.color]),e})),t.setStyleRelation("background",["background-color"])}function ig(t){const e={},n=ng(t);for(const t of n)o=t,Gm.includes(o)?(e.repeat=e.repeat||[],e.repeat.push(t)):Zm(t)?(e.position=e.position||[],e.position.push(t)):Km(t)?e.attachment=t:Rm(t)?e.color=t:Qm(t)&&(e.image=t);var o;return{path:"background",value:e}}function rg(t){t.setNormalizer("border",sg),t.setNormalizer("border-top",ag("top")),t.setNormalizer("border-right",ag("right")),t.setNormalizer("border-bottom",ag("bottom")),t.setNormalizer("border-left",ag("left")),t.setNormalizer("border-color",lg("color")),t.setNormalizer("border-width",lg("width")),t.setNormalizer("border-style",lg("style")),t.setNormalizer("border-top-color",dg("color","top")),t.setNormalizer("border-top-style",dg("style","top")),t.setNormalizer("border-top-width",dg("width","top")),t.setNormalizer("border-right-color",dg("color","right")),t.setNormalizer("border-right-style",dg("style","right")),t.setNormalizer("border-right-width",dg("width","right")),t.setNormalizer("border-bottom-color",dg("color","bottom")),t.setNormalizer("border-bottom-style",dg("style","bottom")),t.setNormalizer("border-bottom-width",dg("width","bottom")),t.setNormalizer("border-left-color",dg("color","left")),t.setNormalizer("border-left-style",dg("style","left")),t.setNormalizer("border-left-width",dg("width","left")),t.setExtractor("border-top",ug("top")),t.setExtractor("border-right",ug("right")),t.setExtractor("border-bottom",ug("bottom")),t.setExtractor("border-left",ug("left")),t.setExtractor("border-top-color","border.color.top"),t.setExtractor("border-right-color","border.color.right"),t.setExtractor("border-bottom-color","border.color.bottom"),t.setExtractor("border-left-color","border.color.left"),t.setExtractor("border-top-width","border.width.top"),t.setExtractor("border-right-width","border.width.right"),t.setExtractor("border-bottom-width","border.width.bottom"),t.setExtractor("border-left-width","border.width.left"),t.setExtractor("border-top-style","border.style.top"),t.setExtractor("border-right-style","border.style.right"),t.setExtractor("border-bottom-style","border.style.bottom"),t.setExtractor("border-left-style","border.style.left"),t.setReducer("border-color",Xm("border-color")),t.setReducer("border-style",Xm("border-style")),t.setReducer("border-width",Xm("border-width")),t.setReducer("border-top",gg("top")),t.setReducer("border-right",gg("right")),t.setReducer("border-bottom",gg("bottom")),t.setReducer("border-left",gg("left")),t.setReducer("border",function(){return e=>{const n=hg(e,"top"),o=hg(e,"right"),i=hg(e,"bottom"),r=hg(e,"left"),s=[n,o,i,r],a={width:t(s,"width"),style:t(s,"style"),color:t(s,"color")},l=pg(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((t,[e,n])=>(n&&(t.push([`border-${e}`,n]),s.forEach((t=>t[e]=null))),t)),[]);return[...c,...pg(n,"top"),...pg(o,"right"),...pg(i,"bottom"),...pg(r,"left")]};function t(t,e){return t.map((t=>t[e])).reduce(((t,e)=>t==e?t:null))}}()),t.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),t.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),t.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),t.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),t.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),t.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function sg(t){const{color:e,style:n,width:o}=mg(t);return{path:"border",value:{color:Jm(e),style:Jm(n),width:Jm(o)}}}function ag(t){return e=>{const{color:n,style:o,width:i}=mg(e),r={};return void 0!==n&&(r.color={[t]:n}),void 0!==o&&(r.style={[t]:o}),void 0!==i&&(r.width={[t]:i}),{path:"border",value:r}}}function lg(t){return e=>({path:"border",value:cg(e,t)})}function cg(t,e){return{[e]:Jm(t)}}function dg(t,e){return n=>({path:"border",value:{[t]:{[e]:n}}})}function ug(t){return(e,n)=>{if(n.border)return hg(n.border,t)}}function hg(t,e){const n={};return t.width&&t.width[e]&&(n.width=t.width[e]),t.style&&t.style[e]&&(n.style=t.style[e]),t.color&&t.color[e]&&(n.color=t.color[e]),n}function mg(t){const e={},n=ng(t);for(const t of n)Hm(t)||/thin|medium|thick/.test(t)?e.width=t:Vm(t)?e.style=t:e.color=t;return e}function gg(t){return e=>pg(e,t)}function pg(t,e){const n=[];if(t&&t.width&&n.push("width"),t&&t.style&&n.push("style"),t&&t.color&&n.push("color"),3==n.length){const o=n.map((e=>t[e])).join(" ");return["all"==e?["border",o]:[`border-${e}`,o]]}return"all"==e?[]:n.map((n=>[`border-${e}-${n}`,t[n]]))}function fg(t){t.setNormalizer("margin",eg("margin")),t.setNormalizer("margin-top",(t=>({path:"margin.top",value:t}))),t.setNormalizer("margin-right",(t=>({path:"margin.right",value:t}))),t.setNormalizer("margin-bottom",(t=>({path:"margin.bottom",value:t}))),t.setNormalizer("margin-left",(t=>({path:"margin.left",value:t}))),t.setReducer("margin",Xm("margin")),t.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}function kg(t){t.setNormalizer("padding",eg("padding")),t.setNormalizer("padding-top",(t=>({path:"padding.top",value:t}))),t.setNormalizer("padding-right",(t=>({path:"padding.right",value:t}))),t.setNormalizer("padding-bottom",(t=>({path:"padding.bottom",value:t}))),t.setNormalizer("padding-left",(t=>({path:"padding.left",value:t}))),t.setReducer("padding",Xm("padding")),t.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}class bg extends Ld{constructor(t,e){super(t),this.view=e,this._toolbarConfig=Xu(t.config.get("toolbar")),this._elementReplacer=new Aa}get element(){return this.view.element}init(t){const e=this.editor,n=this.view,o=e.editing.view,i=n.editable,r=o.document.getRoot();i.name=r.rootName,n.render();const s=i.element;this.setEditableElement(i.name,s),this.focusTracker.add(s),n.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),this.fire("ready")}destroy(){const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy(),super.destroy()}_initToolbar(){const t=this.editor,e=this.view,n=t.editing.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,e.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t)),e.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),function({origin:t,originKeystrokeHandler:e,originFocusTracker:n,toolbar:o,beforeFocus:i,afterBlur:r}){n.add(o.element),e.set("Alt+F10",((t,e)=>{n.isFocused&&!o.focusTracker.isFocused&&(i&&i(),o.focus(),e())})),o.keystrokes.set("Esc",((e,n)=>{o.focusTracker.isFocused&&(t.focus(),r&&r(),n())}))}({origin:n,originFocusTracker:this.focusTracker,originKeystrokeHandler:t.keystrokes,toolbar:e.toolbar})}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.sourceElement,i=t.config.get("placeholder")||o&&"textarea"===o.tagName.toLowerCase()&&o.getAttribute("placeholder");i&&mm({view:e,element:n,text:i,isDirectHost:!1,keepOnFocus:!0})}}var wg=n(3638),Ag={attributes:{"data-cke":!0}};Ag.setAttributes=os(),Ag.insert=es().bind(null,"head"),Ag.domAPI=Xr(),Ag.insertStyleElement=rs();Qr()(wg.Z,Ag);wg.Z&&wg.Z.locals&&wg.Z.locals;class _g extends yh{constructor(t,e,n={}){super(t),this.stickyPanel=new am(t),this.toolbar=new nh(t,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),this.editable=new Eh(t,e)}render(){super.render(),this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class Cg extends Nd{constructor(t,e={}){if(!vo(t)&&void 0!==e.initialData)throw new l("editor-create-initial-data",null);super(e),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return vo(t)?(e=t,e instanceof HTMLTextAreaElement?e.value:e.innerHTML):t;var e}(t)),vo(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=new _g(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n});this.ui=new bg(this,o),function(t){if(!j(t.updateSourceElement))throw new l("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(e&&"textarea"===e.tagName.toLowerCase()&&e.form){let n;const o=e.form,i=()=>t.updateSourceElement();j(o.submit)&&(n=o.submit,o.submit=()=>{i(),n.apply(o)}),o.addEventListener("submit",i),t.on("destroy",(()=>{o.removeEventListener("submit",i),n&&(o.submit=n)}))}}(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init(vo(t)?t:null))).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}}ue(Cg,Rd),ue(Cg,jd);const vg=["left","right","center","justify"];function yg(t){return vg.includes(t)}function xg(t,e){return"rtl"==e.contentLanguageDirection?"right"===t:"left"===t}function Eg(t){const e=t.map((t=>{let e;return e="string"==typeof t?{name:t}:t,e})).filter((t=>{const e=!!vg.includes(t.name);return e||c("alignment-config-name-not-recognized",{option:t}),e})),n=e.filter((t=>!!t.className)).length;if(n&&n{const i=o.slice(n+1);if(i.some((t=>t.name==e.name)))throw new l("alignment-config-name-already-defined",{option:e,configuredOptions:t});if(e.className){if(i.some((t=>t.className==e.className)))throw new l("alignment-config-classname-already-defined",{option:e,configuredOptions:t})}})),e}const Dg="alignment";class Sg extends ge{refresh(){const t=this.editor.locale,e=Fa(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=!!e&&this._canBeAligned(e),this.isEnabled&&e.hasAttribute("alignment")?this.value=e.getAttribute("alignment"):this.value="rtl"===t.contentLanguageDirection?"right":"left"}execute(t={}){const e=this.editor,n=e.locale,o=e.model,i=o.document,r=t.value;o.change((t=>{const e=Array.from(i.selection.getSelectedBlocks()).filter((t=>this._canBeAligned(t))),o=e[0].getAttribute("alignment");xg(r,n)||o===r||!r?function(t,e){for(const n of t)e.removeAttribute(Dg,n)}(e,t):function(t,e,n){for(const o of t)e.setAttribute(Dg,n,o)}(e,t,r)}))}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,Dg)}}class Ig extends he{static get pluginName(){return"AlignmentEditing"}constructor(t){super(t),t.config.define("alignment",{options:[...vg.map((t=>({name:t})))]})}init(){const t=this.editor,e=t.locale,n=t.model.schema,o=Eg(t.config.get("alignment.options")).filter((t=>yg(t.name)&&!xg(t.name,e))),i=o.some((t=>!!t.className));n.extend("$block",{allowAttributes:"alignment"}),t.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),i?t.conversion.attributeToAttribute(function(t){const e={model:{key:"alignment",values:t.map((t=>t.name))},view:{}};for(const n of t)e.view[n.name]={key:"class",value:n.className};return e}(o)):t.conversion.for("downcast").attributeToAttribute(function(t){const e={model:{key:"alignment",values:t.map((t=>t.name))},view:{}};for(const{name:n}of t)e.view[n]={key:"style",value:{"text-align":n}};return e}(o));const r=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return e}(o);for(const e of r)t.conversion.for("upcast").attributeToAttribute(e);const s=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return e}(o);for(const e of s)t.conversion.for("upcast").attributeToAttribute(e);t.commands.add("alignment",new Sg(t))}}const Mg=new Map([["left",Hd.alignLeft],["right",Hd.alignRight],["center",Hd.alignCenter],["justify",Hd.alignJustify]]);class Tg extends he{get localizedOptionTitles(){const t=this.editor.t;return{left:t("Align left"),right:t("Align right"),center:t("Align center"),justify:t("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t,o=Eg(t.config.get("alignment.options"));o.map((t=>t.name)).filter(yg).forEach((t=>this._addButton(t))),e.add("alignment",(t=>{const i=ph(t),r=o.map((t=>e.create(`alignment:${t.name}`)));fh(i,r),i.buttonView.set({label:n("Text alignment"),tooltip:!0}),i.toolbarView.isVertical=!0,i.toolbarView.ariaLabel=n("Text alignment toolbar"),i.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const s="rtl"===t.contentLanguageDirection?Mg.get("right"):Mg.get("left");return i.buttonView.bind("icon").toMany(r,"isOn",((...t)=>{const e=t.findIndex((t=>t));return e<0?s:r[e].icon})),i.bind("isEnabled").toMany(r,"isEnabled",((...t)=>t.some((t=>t)))),i}))}_addButton(t){const e=this.editor;e.ui.componentFactory.add(`alignment:${t}`,(n=>{const o=e.commands.get("alignment"),i=new xu(n);return i.set({label:this.localizedOptionTitles[t],icon:Mg.get(t),tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o),i.bind("isOn").to(o,"value",(e=>e===t)),this.listenTo(i,"execute",(()=>{e.execute("alignment",{value:t}),e.editing.view.focus()})),i}))}}class Bg{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=(t,e)=>{e.isLocal&&e.isUndoable&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Ng extends ge{constructor(t,e){super(t),this._buffer=new Bg(t.model,e)}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,o=t.text||"",i=o.length,r=t.range?e.createSelection(t.range):n.selection,s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock(),e.deleteContent(r),o&&e.insertContent(t.createText(o,n.selection.getAttributes()),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}function zg(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let o,i=0;return t.forEach((t=>{"equal"==t?(r(),i++):"insert"==t?(s("insert")?o.values.push(e[i]):(r(),o={type:"insert",index:i,values:[e[i]]}),i++):s("delete")?o.howMany++:(r(),o={type:"delete",index:i,howMany:1})})),r(),n;function r(){o&&(n.push(o),o=null)}function s(t){return o&&o.type==t}}(Gr(t.oldChildren,t.newChildren,Pg),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("$text")?n:void 0}function Pg(t,e){return t&&t.is("$text")&&e&&e.is("$text")?t.data===e.data:t===e}function Lg(t,e){const n=e.selection,o=t.shiftKey&&t.keyCode===dr.delete,i=!n.isCollapsed;return o&&i}const Og=[hr("arrowUp"),hr("arrowRight"),hr("arrowDown"),hr("arrowLeft"),9,16,17,18,19,20,27,33,34,35,36,45,91,93,144,145,173,174,175,176,177,178,179,255];for(let t=112;t<=135;t++)Og.push(t);function Rg(t){return!(!t.ctrlKey&&!t.metaKey)||Og.includes(t.keyCode)}class jg{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(function(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!zg(e))return!0;return!1}(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map((t=>t.node)).reduce(((t,e)=>t.getCommonAncestor(e,{includeSelf:!0})));if(!e)return;return e.getAncestors({includeSelf:!0,parentFirst:!0}).find((t=>t.is("containerElement")||t.is("rootElement")))}(t);if(!n)return;const o=this.editor.editing.view.domConverter.mapViewToDom(n),i=new _s(this.editor.editing.view.document),r=this.editor.data.toModel(i.domToView(o)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(r.getChildren()),l=Array.from(s.getChildren()),c=a[a.length-1],d=l[l.length-1],u=c&&c.is("element","softBreak"),h=d&&!d.is("element","softBreak");u&&h&&a.pop();const m=this.editor.model.schema;if(!Vg(a,m)||!Vg(l,m))return;const g=a.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," "),p=l.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," ");if(p===g)return;const f=Gr(p,g),{firstChangeAt:k,insertions:b,deletions:w}=Fg(f);let A=null;e&&(A=this.editing.mapper.toModelRange(e.getFirstRange()));const _=g.substr(k,b),C=this.editor.model.createRange(this.editor.model.createPositionAt(s,k),this.editor.model.createPositionAt(s,k+w));this.editor.execute("input",{text:_,range:C,resultRange:A})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),o=t.oldText.replace(/\u00A0/g," ");if(o===n)return;const i=Gr(o,n),{firstChangeAt:r,insertions:s,deletions:a}=Fg(i);let l=null;e&&(l=this.editing.mapper.toModelRange(e.getFirstRange()));const c=this.editing.view.createPositionAt(t.node,r),d=this.editing.mapper.toModelPosition(c),u=this.editor.model.createRange(d,d.getShiftedBy(a)),h=n.substr(r,s);this.editor.execute("input",{text:h,range:u,resultRange:l})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=zg(t),n=this.editing.view.createPositionAt(t.node,e.index),o=this.editing.mapper.toModelPosition(n),i=e.values[0].data;this.editor.execute("input",{text:i.replace(/\u00A0/g," "),range:this.editor.model.createRange(o)})}}function Vg(t,e){return t.every((t=>e.isInline(t)))}function Fg(t){let e=null,n=null;for(let o=0;o{n.deleteContent(n.document.selection)})),t.unlock()}sr.isAndroid?o.document.on("beforeinput",((t,e)=>r(e)),{priority:"lowest"}):o.document.on("keydown",((t,e)=>r(e)),{priority:"lowest"}),o.document.on("compositionstart",(function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;t.selection.isCollapsed||e||s()}),{priority:"lowest"}),o.document.on("compositionend",(()=>{e=n.createSelection(n.document.selection)}),{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",((e,n,o)=>{new jg(t).handle(n,o)}))}(t)}}class Ug extends ge{constructor(t,e){super(t),this.direction=e,this._buffer=new Bg(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection),r=t.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(o);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=Fi(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),o.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(o)))return!1;if(!e.schema.checkChild(o,"paragraph"))return!1;const i=o.getChild(0);return!i||"paragraph"!==i.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n),i=t.createElement("paragraph");t.remove(t.createRangeIn(o)),t.insert(i,o),t.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const o=t.getFirstPosition(),i=n.schema.getLimitElement(o),r=i.getChild(0);return o.parent==r&&(!!t.containsEntireContent(r)&&(!!n.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}class Wg extends Ms{constructor(t){super(t);const e=t.document;let n=0;function o(t,n,o){const i=new Wi(e,"delete",e.selection.getFirstRange());e.fire(i,new Xs(e,n,o)),i.stop.called&&t.stop()}e.on("keyup",((t,e)=>{e.keyCode!=dr.delete&&e.keyCode!=dr.backspace||(n=0)})),e.on("keydown",((t,i)=>{if(sr.isWindows&&Lg(i,e))return;const r={};if(i.keyCode==dr.delete)r.direction="forward",r.unit="character";else{if(i.keyCode!=dr.backspace)return;r.direction="backward",r.unit="codePoint"}const s=sr.isMac?i.altKey:i.ctrlKey;r.unit=s?"word":r.unit,r.sequence=++n,o(t,i.domEvent,r)})),sr.isAndroid&&e.on("beforeinput",((e,n)=>{if("deleteContentBackward"!=n.domEvent.inputType)return;const i={unit:"codepoint",direction:"backward",sequence:1},r=n.domTarget.ownerDocument.defaultView.getSelection();r.anchorNode==r.focusNode&&r.anchorOffset+1!=r.focusOffset&&(i.selectionToRemove=t.domConverter.domSelectionToView(r)),o(e,n.domEvent,i)}))}observe(){}}class Gg extends he{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.model.document;e.addObserver(Wg),this._undoOnBackspace=!1;const i=new Ug(t,"forward");if(t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Ug(t,"backward")),this.listenTo(n,"delete",((n,o)=>{const i={unit:o.unit,sequence:o.sequence};if(o.selectionToRemove){const e=t.model.createSelection(),n=[];for(const e of o.selectionToRemove.getRanges())n.push(t.editing.mapper.toModelRange(e));e.setTo(n),i.selection=e}t.execute("forward"==o.direction?"deleteForward":"delete",i),o.preventDefault(),e.scrollToTheSelection()}),{priority:"low"}),sr.isAndroid){let t=null;this.listenTo(n,"delete",((e,n)=>{const o=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}}),{priority:"lowest"}),this.listenTo(n,"keyup",((e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset),e.extend(t.focusNode,t.focusOffset),t=null}}))}this.editor.plugins.has("UndoEditing")&&(this.listenTo(n,"delete",((e,n)=>{this._undoOnBackspace&&"backward"==n.direction&&1==n.sequence&&"codePoint"==n.unit&&(this._undoOnBackspace=!1,t.execute("undo"),n.preventDefault(),e.stop())}),{context:"$capture"}),this.listenTo(o,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class qg extends he{static get requires(){return[Hg,Gg]}static get pluginName(){return"Typing"}}function Zg(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>o.is("$text")||o.is("$textProxy")?t+o.data:(n=e.createPositionAfter(o),"")),""),range:e.createRange(n,t.end)}}class Yg{constructor(t,e){this.model=t,this.testCallback=e,this.hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this.hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{!e.isUndo&&e.isLocal&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,o=n.document.selection,i=n.createRange(n.createPositionAt(o.focus.parent,0),o.focus),{text:r,range:s}=Zg(i,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this.hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire(`matched:${t}`,n)}}}ue(Yg,re);class Kg extends he{static get pluginName(){return"TwoStepCaretMovement"}constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}init(){const t=this.editor,e=t.model,n=t.editing.view,o=t.locale,i=e.document.selection;this.listenTo(n.document,"arrowKey",((t,e)=>{if(!i.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==dr.arrowright,r=e.keyCode==dr.arrowleft;if(!n&&!r)return;const s=o.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&r?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()}),{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(i,"change:range",((t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&Xg(i.getFirstPosition(),this.attributes)||this._restoreGravity())}))}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,o=n.getFirstPosition();return!this._isGravityOverridden&&((!o.isAtStart||!$g(n,e))&&(Xg(o,e)?(Jg(t),this._overrideGravity(),!0):void 0))}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,o=n.document.selection,i=o.getFirstPosition();return this._isGravityOverridden?(Jg(t),this._restoreGravity(),Qg(n,e,i),!0):i.isAtStart?!!$g(o,e)&&(Jg(t),Qg(n,e,i),!0):function(t,e){return Xg(t.getShiftedBy(-1),e)}(i,e)?i.isAtEnd&&!$g(o,e)&&Xg(i,e)?(Jg(t),Qg(n,e,i),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1):void 0}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((t=>t.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function $g(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function Qg(t,e,n){const o=n.nodeBefore;t.change((t=>{o?t.setSelectionAttribute(o.getAttributes()):t.removeSelectionAttribute(e)}))}function Jg(t){t.preventDefault()}function Xg(t,e){const{nodeBefore:n,nodeAfter:o}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((o?o.getAttribute(t):void 0)!==e)return!0}return!1}var tp=/[\\^$.*+?()[\]{}|]/g,ep=RegExp(tp.source);const np=function(t){return(t=si(t))&&ep.test(t)?t.replace(tp,"\\$&"):t},op={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"½",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"⅓",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"⅔",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"¼",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"¾",null]},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:cp('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:cp("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:cp("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:cp('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:cp('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:cp("'"),to:[null,"‚",null,"’"]}},ip={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},rp=["symbols","mathematical","typography","quotes"];function sp(t){return"string"==typeof t?new RegExp(`(${np(t)})$`):t}function ap(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function lp(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function cp(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function dp(t,e,n,o){return o.createRange(up(t,e,n,!0,o),up(t,e,n,!1,o))}function up(t,e,n,o,i){let r=t.textNode||(o?t.nodeBefore:t.nodeAfter),s=null;for(;r&&r.getAttribute(e)==n;)s=r,r=o?r.previousSibling:r.nextSibling;return s?i.createPositionAt(s,o?"before":"after"):t}function hp(t,e,n,o){let i,r=null;"function"==typeof o?i=o:(r=t.commands.get(o),i=()=>{t.execute(o)}),t.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const l=Fa(t.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(t.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof o&&!["numberedList","bulletedList","todoList"].includes(o))return;if(r&&!0===r.value)return;const h=u.getChild(0),m=t.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const g=n.exec(h.data.substr(0,l.end.offset));g&&t.model.enqueueChange((e=>{const n=e.createPositionAt(u,0),o=e.createPositionAt(u,g[0].length),r=new fl(n,o);if(!1!==i({match:g})){e.remove(r);const n=t.model.document.selection.getFirstRange(),o=e.createRangeIn(u);!u.isEmpty||o.isEqual(n)||o.containsRange(n,!0)||e.remove(u)}r.detach(),t.model.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function mp(t,e,n,o){let i,r;n instanceof RegExp?i=n:r=n,r=r||(t=>{let e;const n=[],o=[];for(;null!==(e=i.exec(t))&&!(e&&e.length<4);){let{index:t,1:i,2:r,3:s}=e;const a=i+r+s;t+=e[0].length-a.length;const l=[t,t+i.length],c=[t+i.length+r.length,t+i.length+r.length+s.length];n.push(l),n.push(c),o.push([t+i.length,t+i.length+r.length])}return{remove:n,format:o}}),t.model.document.on("change:data",((n,i)=>{if(i.isUndo||!i.isLocal||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const l=Array.from(s.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:m}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>!o.is("$text")&&!o.is("$textProxy")||o.getAttribute("code")?(n=e.createPositionAfter(o),""):t+o.data),""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(u,0),d),s),g=r(h),p=gp(m.start,g.format,s),f=gp(m.start,g.remove,s);p.length&&f.length&&s.enqueueChange((e=>{if(!1!==o(e,p)){for(const t of f.reverse())e.remove(t);s.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function gp(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function pp(t,e){return(n,o)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(o,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}function*fp(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class kp extends ge{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n,o){const i=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(o.isLimit(s)||o.isLimit(a))return void(i||s!=a||t.deleteContent(n));if(i){const t=fp(e.model.schema,n.getAttributes());bp(e,r.start),e.setSelectionAttribute(t)}else{const o=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;t.deleteContent(n,{leaveUnmerged:o}),o&&(i?bp(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})}))}}function bp(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class wp extends Ms{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(this.isEnabled&&n.keyCode==dr.enter){const o=new Wi(e,"enter",e.selection.getFirstRange());e.fire(o,new Xs(e,n.domEvent,{isSoft:n.shiftKey})),o.stop.called&&t.stop()}}))}observe(){}}class Ap extends he{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(wp),t.commands.add("enter",new kp(t)),this.listenTo(n,"enter",((n,o)=>{o.preventDefault(),o.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"})}}class _p extends ge{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const o=n.isCollapsed,i=n.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(o){const o=fp(t.schema,n.getAttributes());Cp(t,e,i.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o}),a?Cp(t,e,n.focus):o&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const o=e.getFirstRange(),i=o.start.parent,r=o.end.parent;if((vp(i,t)||vp(r,t))&&i!==r)return!1;return!0}(t.schema,e.selection)}}function Cp(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n),e.setSelection(o,"after")}function vp(t,e){return!t.is("rootElement")&&(e.isLimit(t)||vp(t.parent,e))}class yp extends he{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,o=t.editing.view,i=o.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),o.addObserver(wp),t.commands.add("shiftEnter",new _p(t)),this.listenTo(i,"enter",((e,n)=>{n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),o.scrollToTheSelection())}),{priority:"low"})}}class xp extends ge{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,o=e.document.selection,i=Array.from(o.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(r){const e=i.filter((t=>Ep(t)||Sp(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,i.filter(Ep))}))}_getValue(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!Ep(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Fa(t.getSelectedBlocks());return!!n&&Sp(e,n)}_removeQuote(t,e){Dp(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];Dp(t,e).reverse().forEach((e=>{let o=Ep(e.start);o||(o=t.createElement("blockQuote"),t.wrap(e,o)),n.push(o)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function Ep(t){return"blockQuote"==t.parent.name?t.parent:null}function Dp(t,e){let n,o=0;const i=[];for(;o{const o=t.model.document.differ.getChanges();for(const t of o)if("insert"==t.type){const o=t.position.nodeAfter;if(!o)continue;if(o.is("element","blockQuote")&&o.isEmpty)return n.remove(o),!0;if(o.is("element","blockQuote")&&!e.checkChild(t.position,o))return n.unwrap(o),!0;if(o.is("element")){const t=n.createRangeIn(o);for(const o of t.getItems())if(o.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(o),o))return n.unwrap(o),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,o=t.model.document.selection,i=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{if(!o.isCollapsed||!i.value)return;o.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!o.isCollapsed||!i.value)return;const r=o.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}var Mp=n(636),Tp={attributes:{"data-cke":!0}};Tp.setAttributes=os(),Tp.insert=es().bind(null,"head"),Tp.domAPI=Xr(),Tp.insertStyleElement=rs();Qr()(Mp.Z,Tp);Mp.Z&&Mp.Z.locals&&Mp.Z.locals;class Bp extends he{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",(n=>{const o=t.commands.get("blockQuote"),i=new xu(n);return i.set({label:e("Block quote"),icon:Hd.quote,tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),i}))}}class Np extends ge{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}const zp="bold";class Pp extends he{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:zp}),t.model.schema.setAttributeProperties(zp,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:zp,view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add(zp,new Np(t,zp)),t.keystrokes.set("CTRL+B",zp)}}const Lp="bold";class Op extends he{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Lp,(n=>{const o=t.commands.get(Lp),i=new xu(n);return i.set({label:e("Bold"),icon:'',keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Lp),t.editing.view.focus()})),i}))}}class Rp{constructor(t){this.files=function(t){const e=Array.from(t.files||[]),n=Array.from(t.items||[]);if(e.length)return e;return n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}class jp extends ta{constructor(t){super(t);const n=this.document;function o(t){return(o,i)=>{i.preventDefault();const r=i.dropRange?[i.dropRange]:null,s=new e(n,t);n.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:r,target:i.target}),s.stop.called&&i.stopPropagation()}}this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"],this.listenTo(n,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"dragover",o("dragging"),{priority:"low"})}onDomEvent(t){const e={dataTransfer:new Rp(t.clipboardData?t.clipboardData:t.dataTransfer)};"drop"!=t.type&&"dragover"!=t.type||(e.dropRange=function(t,e){const n=e.target.ownerDocument,o=e.clientX,i=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(o,i)?r=n.caretRangeFromPoint(o,i):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));if(r)return t.domConverter.domRangeToView(r);return null}(this.view,t)),this.fire(t.type,t,e)}}const Vp=["figcaption","li"];function Fp(t){let e="";if(t.is("$text")||t.is("$textProxy"))e=t.data;else if(t.is("element","img")&&t.hasAttribute("alt"))e=t.getAttribute("alt");else if(t.is("element","br"))e="\n";else{let n=null;for(const o of t.getChildren()){const t=Fp(o);n&&(n.is("containerElement")||o.is("containerElement"))&&(Vp.includes(n.name)||Vp.includes(o.name)?e+="\n":e+="\n\n"),e+=t,n=o}}return e}class Hp extends he{static get pluginName(){return"ClipboardPipeline"}init(){this.editor.editing.view.addObserver(jp),this._setupPasteDrop(),this._setupCopyCut()}_setupPasteDrop(){const t=this.editor,n=t.model,o=t.editing.view,i=o.document;this.listenTo(i,"clipboardInput",(e=>{t.isReadOnly&&e.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((t,n)=>{const i=n.dataTransfer;let r=n.content||"";var s;r||(i.getData("text/html")?r=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||s.includes("
    "))&&(s=`

    ${s}

    `),r=s),r=this.editor.data.htmlProcessor.toView(r));const a=new e(this,"inputTransformation");this.fire(a,{content:r,dataTransfer:i,targetRanges:n.targetRanges,method:n.method}),a.stop.called&&t.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,e)=>{if(e.content.isEmpty)return;const o=this.editor.data.toModel(e.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),n.change((()=>{this.fire("contentInsertion",{content:o,method:e.method,dataTransfer:e.dataTransfer,targetRanges:e.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=n.insertContent(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document;function o(o,i){const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:r,content:s,method:o.name})}this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():o(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Fp(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}class Up{constructor(){this._stack=[]}add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(Wp(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&Gp(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function Wp(t,e){return t&&e&&t.priority==e.priority&&qp(t.classes)==qp(e.classes)}function Gp(t,e){return t.priority>e.priority||!(t.priorityqp(e.classes)}function qp(t){return Array.isArray(t)?t.sort().join(","):t}ue(Up,k);const Zp='',Yp="ck-widget_selected";function Kp(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function $p(t,e,n={}){if(!t.is("containerElement"))throw new l("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=of,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new wu;return n.set("content",Zp),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),Xp(t,e),t}function Qp(t,e,n){if(e.classes&&n.addClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function Jp(t,e,n){if(e.classes&&n.removeClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function Xp(t,e,n=Qp,o=Jp){const i=new Up;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)})),e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function tf(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function ef(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),Xp(t,e),t}function nf(t,e){const n=t.getSelectedElement();if(n){const o=af(t);if(o)return e.createRange(e.createPositionAt(n,o))}return md(t,e)}function of(){return null}const rf="widget-type-around";function sf(t,e,n){return t&&Kp(t)&&!n.isInline(e)}function af(t){return t.getAttribute(rf)}var lf=n(5137),cf={attributes:{"data-cke":!0}};cf.setAttributes=os(),cf.insert=es().bind(null,"head"),cf.domAPI=Xr(),cf.insertStyleElement=rs();Qr()(lf.Z,cf);lf.Z&&lf.Z.locals&&lf.Z.locals;const df=["before","after"],uf=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,hf="ck-widget__type-around_disabled";class mf extends he{static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Ap,Gg]}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(hf,n):t.addClass(hf,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=af(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,i)=>{const r=i.mapper.toViewElement(n.item);sf(r,n.item,e)&&function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of df){const o=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n]},children:[t.ownerDocument.importNode(uf,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(i.writer,o,r)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[Kp,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(sf(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(df.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!sf(a,s,o))return;const l=af(e.selection);l&&(i.addClass(r(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(rf)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=pr(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;sf(l,n.editing.mapper.toModelElement(l),r)?c=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=af(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(rf,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(rf),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!sf(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(rf,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!sf(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(rf,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:sf(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:Kp})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[dr.enter,dr.delete,dr.backspace];this._listenToIfEnabled(t.document,"keydown",((t,n)=>{e.includes(n.keyCode)||Rg(n)||this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=af(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),l="forward"==s;if("before"===r===l)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:Kp})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=af(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),l=e.insertContent(o,a);return t.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=af(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;af(e)&&t.stop()}),{priority:"high"})}}function gf(t){const e=t.model;return(n,o)=>{const i=o.keyCode==dr.arrowup,r=o.keyCode==dr.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const l=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,l))return;const c=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=pf(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=ff(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=pf(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=ff(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(s)return}(c.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ea.getDomRangeRects(s);let l;for(const t of a)if(void 0!==l){if(Math.round(t.top)>=l)return!1;l=Math.max(l,Math.round(t.bottom))}else l=Math.round(t.bottom);return!0}(t,c,l))&&(e.change((t=>{const n=l?c.end:c.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function pf(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function ff(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var kf=n(6507),bf={attributes:{"data-cke":!0}};bf.setAttributes=os(),bf.insert=es().bind(null,"head"),bf.domAPI=Xr(),bf.insertStyleElement=rs();Qr()(kf.Z,bf);kf.Z&&kf.Z.locals&&kf.Z.locals;class wf extends he{static get pluginName(){return"Widget"}static get requires(){return[mf,Gg]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);Kp(a)&&o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:tf(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;Kp(t)&&!Af(t,r)&&(o.addClass(Yp,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(Mm),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[Kp,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",gf(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,i=o.document;let r=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Kp(t))return!1;t=t.parent}return!1}(r)){if((sr.isSafari||sr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,o=r.is("attributeElement")?r.findAncestor((t=>!t.is("attributeElement"))):r,i=t.toModelElement(o);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(i,"in")}))}return}if(!Kp(r)&&(r=r.findAncestor(Kp),!r))return;sr.isAndroid&&e.preventDefault(),i.isFocused||o.focus();const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=pr(n,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(s&&i.isObject(s)){const n=l?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,l?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,c=s.nodeBefore;return void((a&&i.isObject(a)||c&&i.isObject(c))&&(o.change((t=>{t.setSelection(l?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(l);if(d&&i.isObject(d)){if(i.isInline(d)&&c)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(Yp,e);this._previouslySelected.clear()}}function Af(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}const _f=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return x(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),ga(t,e,{leading:o,maxWait:e,trailing:i})};var Cf=n(390),vf={attributes:{"data-cke":!0}};vf.setAttributes=os(),vf.insert=es().bind(null,"head"),vf.domAPI=Xr(),vf.insertStyleElement=rs();Qr()(Cf.Z,vf);Cf.Z&&Cf.Z.locals&&Cf.Z.locals;class yf extends he{static get pluginName(){return"DragDrop"}static get requires(){return[Hp,wf]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=_f((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=Df((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=Df((()=>this._clearDraggableAttributes()),40),e.addObserver(jp),e.addObserver(Mm),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),sr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,o=t.editing.view,i=o.document;this.listenTo(i,"dragstart",((o,s)=>{const a=n.selection;if(s.target&&s.target.is("editableElement"))return void s.preventDefault();const l=s.target?Sf(s.target):null;if(l){const n=t.editing.mapper.toModelElement(l);this._draggedRange=fl.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!i.selection.isCollapsed){const t=i.selection.getSelectedElement();t&&Kp(t)||(this._draggedRange=fl.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void s.preventDefault();this._draggingUid=r(),s.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",s.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const c=e.createSelection(this._draggedRange.toRange()),d=t.data.toView(e.getSelectedContent(c));i.fire("clipboardOutput",{dataTransfer:s.dataTransfer,content:d,method:o.name}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const o=xf(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),sr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),o&&this._updateDropMarkerThrottled(o)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const o=xf(t,n.targetRanges,n.target);if(this._removeDropMarker(),!o)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Ef(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(o,!0))return this._finalizeDragging(!1),void e.stop();n.targetRanges=[t.editing.mapper.toViewRange(o)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(Hp);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==Ef(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,i)=>{if(sr.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let r=Sf(i.target);if(sr.isBlink&&!t.isReadOnly&&!r&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&Kp(t)||(r=n.selection.editableElement)}r&&(e.change((t=>{t.setAttribute("draggable","true",r)})),this._draggableElement=t.editing.mapper.toModelElement(r))})),this.listenTo(n,"mouseup",(()=>{sr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.innerHTML="⁠⁠",e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function xf(t,e,n){const o=t.model,i=t.editing.mapper;let r=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),r=function(t,e){const n=t.model,o=t.editing.mapper;if(Kp(e))return n.createRangeOn(o.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>Kp(t)||t.is("editableElement")));if(Kp(t))return n.createRangeOn(o.toModelElement(t))}return null}(t,n),r)return r;const a=function(t,e){const n=t.editing.mapper,o=t.editing.view,i=n.toModelElement(e);if(i)return i;const r=o.createPositionBefore(e),s=n.findMappedViewAncestor(r);return n.toModelElement(s)}(t,n),l=s?i.toModelPosition(s):null;return l?(r=function(t,e,n){const o=t.model;if(!o.schema.checkChild(n,"$block"))return null;const i=o.createPositionAt(n,0),r=e.path.slice(0,i.path.length),s=o.createPositionFromPath(e.root,r).nodeAfter;if(s&&o.schema.isObject(s))return o.createRangeOn(s);return null}(t,l,a),r||(r=o.schema.getNearestSelectionRange(l,sr.isGecko?"forward":"backward"),r||function(t,e){const n=t.model;for(;e;){if(n.schema.isObject(e))return n.createRangeOn(e);e=e.parent}}(t,l.parent))):function(t,e){const n=t.model,o=n.schema,i=n.createPositionAt(e,0);return o.getNearestSelectionRange(i,"forward")}(t,a)}function Ef(t){return sr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function Df(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function Sf(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(Kp);if(Kp(t))return t;const e=t.findAncestor((t=>Kp(t)||t.is("editableElement")));return Kp(e)?e:null}class If extends he{static get pluginName(){return"PastePlainText"}static get requires(){return[Hp]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(jp),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(Hp).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==[...n.getAttributeKeys()].length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class Mf extends he{static get pluginName(){return"Clipboard"}static get requires(){return[Hp,yf,If]}}class Tf extends ge{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!Bf(t.schema,n))do{if(n=n.parent,!n)return}while(!Bf(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function Bf(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const Nf=mr("Ctrl+A");class zf extends he{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new Tf(t)),this.listenTo(e,"keydown",((e,n)=>{hr(n)===Nf&&(t.execute("selectAll"),n.preventDefault())}))}}class Pf extends he{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),o=new xu(e),i=e.t;return o.set({label:i("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),o.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(o,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),o}))}}class Lf extends he{static get requires(){return[zf,Pf]}static get pluginName(){return"SelectAll"}}class Of extends ge{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!jf(t,a)));e.length&&(Rf(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=Cm([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const i of s)e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}function Rf(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class Vf extends Of{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,o)})),this.refresh()}}class Ff extends Of{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class Hf extends he{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new Vf(t),this._redoCommand=new Ff(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand._createdBatches.has(o),r=this._undoCommand._createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}const Uf='',Wf='';class Gf extends he{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Uf:Wf,i="ltr"==e.uiLanguageDirection?Wf:Uf;this._addButton("undo",n("Undo"),"CTRL+Z",o),this._addButton("redo",n("Redo"),"CTRL+Y",i)}_addButton(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const s=i.commands.get(t),a=new xu(r);return a.set({label:e,icon:o,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{i.execute(t),i.editing.view.focus()})),a}))}}class qf extends he{static get requires(){return[Hf,Gf]}static get pluginName(){return"Undo"}}class Zf extends ge{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute(this.attributeKey),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=t.value;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,o):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}}class Yf extends So{constructor(t){super(t),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(t,e){this.find((e=>e.color===t.color))||super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}ue(Yf,re);var Kf=n(2585),$f={attributes:{"data-cke":!0}};$f.setAttributes=os(),$f.insert=es().bind(null,"head"),$f.domAPI=Xr(),$f.insertStyleElement=rs();Qr()(Kf.Z,$f);Kf.Z&&Kf.Z.locals&&Kf.Z.locals;class Qf extends Kd{constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){super(t),this.items=this.createCollection(),this.colorDefinitions=e,this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("selectedColor"),this.removeButtonLabel=o,this.columns=n,this.documentColors=new Yf,this.documentColorsCount=r,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-table"]},children:this.items}),this.items.add(this._removeColorButton())}updateDocumentColors(t,e){const n=t.document,o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRootNames()){const r=n.getRoot(i),s=t.createRangeIn(r);for(const t of s.getItems())if(t.is("$textProxy")&&t.hasAttribute(e)&&(this._addColorToDocumentColors(t.getAttribute(e)),this.documentColors.length>=o))return}}updateSelectedColors(){const t=this.documentColorsGrid,e=this.staticColorsGrid,n=this.selectedColor;e.selectedColor=n,t&&(t.selectedColor=n)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendGrids(){if(!this.staticColorsGrid&&(this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount)){const t=$d.bind(this.documentColors,this.documentColors),e=new vh(this.locale);e.text=this._documentColorsLabel,e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}}),this.items.add(e),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_removeColorButton(){const t=new xu;return t.set({withText:!0,icon:Hd.eraser,tooltip:!0,label:this.removeButtonLabel}),t.class="ck-color-table__remove-color",t.on("execute",(()=>{this.fire("execute",{value:null})})),t}_createStaticColorsGrid(){const t=new Ru(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return t.delegate("execute").to(this),t}_createDocumentColorsGrid(){const t=$d.bind(this.documentColors,this.documentColors),e=new Ru(this.locale,{columns:this.columns});return e.delegate("execute").to(this),e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}}),e.items.bindTo(this.documentColors).using((t=>{const e=new Bu;return e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder}),t.label&&e.set({label:t.label,tooltip:!0}),e.on("execute",(()=>{this.fire("execute",{value:t.color})})),e})),this.documentColors.on("change:isEmpty",((t,n,o)=>{o&&(e.selectedColor=null)})),e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));e?this.documentColors.add(Object.assign({},e)):this.documentColors.add({color:t,label:t,options:{hasBorder:!1}})}}const Jf="fontSize",Xf="fontFamily",tk="fontColor";function ek(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e)n.model.values.push(t.model),n.view[t.model]=t.view,t.upcastAlso&&(n.upcastAlso[t.model]=t.upcastAlso);return n}function nk(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}class ok extends Zf{constructor(t){super(t,tk)}}class ik extends he{static get pluginName(){return"FontColorEditing"}constructor(t){var e;super(t),t.config.define(tk,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:tk,value:(e="color",t=>t.getStyle(e).replace(/\s/g,""))}}),t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:tk,value:t=>t.getAttribute("color")}}),t.conversion.for("downcast").attributeToElement({model:tk,view:nk("color")}),t.commands.add(tk,new ok(t)),t.model.schema.extend("$text",{allowAttributes:tk}),t.model.schema.setAttributeProperties(tk,{isFormatting:!0,copyOnEnter:!0})}}class rk extends he{constructor(t,{commandName:e,icon:n,componentName:o,dropdownLabel:i}){super(t),this.commandName=e,this.componentName=o,this.icon=n,this.dropdownLabel=i,this.columns=t.config.get(`${this.componentName}.columns`),this.colorTableView=void 0}init(){const t=this.editor,e=t.locale,n=e.t,o=t.commands.get(this.commandName),i=Iu(e,Mu(t.config.get(this.componentName).colors)),r=t.config.get(`${this.componentName}.documentColors`);t.ui.componentFactory.add(this.componentName,(e=>{const s=ph(e);return this.colorTableView=function({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){const s=t.locale,a=new Qf(s,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r});return t.colorTableView=a,t.panelView.children.add(a),a.delegate("execute").to(t,"execute"),a}({dropdownView:s,colors:i.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),documentColorsLabel:0!==r?n("Document colors"):void 0,documentColorsCount:void 0===r?this.columns:r}),this.colorTableView.bind("selectedColor").to(o,"value"),s.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:!0}),s.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}}),s.bind("isEnabled").to(o),s.on("execute",((e,n)=>{t.execute(this.commandName,n),t.editing.view.focus()})),s.on("change:isOpen",((e,n,o)=>{s.colorTableView.appendGrids(),o&&(0!==r&&this.colorTableView.updateDocumentColors(t.model,this.componentName),this.colorTableView.updateSelectedColors())})),s}))}}class sk extends rk{constructor(t){const e=t.locale.t;super(t,{commandName:tk,componentName:tk,icon:'',dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class ak extends Zf{constructor(t){super(t,Xf)}}function lk(t){return t.map(ck).filter((t=>!!t))}function ck(t){return"object"==typeof t?t:"default"===t?{title:"Default",model:void 0}:"string"==typeof t?function(t){const e=t.replace(/"|'/g,"").split(","),n=e[0],o=e.map(dk).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}(t):void 0}function dk(t){return(t=t.trim()).indexOf(" ")>0&&(t=`'${t}'`),t}class uk extends he{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t),t.config.define(Xf,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Xf}),t.model.schema.setAttributeProperties(Xf,{isFormatting:!0,copyOnEnter:!0});const e=lk(t.config.get("fontFamily.options")).filter((t=>t.model)),n=ek(Xf,e);t.config.get("fontFamily.supportAllValues")?(this._prepareAnyValueConverters(),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(n),t.commands.add(Xf,new ak(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:Xf,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})}),t.conversion.for("upcast").elementToAttribute({model:{key:Xf,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:Xf,value:t=>t.getAttribute("face")}})}}class hk extends he{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Xf);t.ui.componentFactory.add(Xf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new So;for(const o of t){const t={type:"button",model:new Hh({commandName:Xf,commandParam:o.model,label:o.title,withText:!0})};t.model.bind("isOn").to(e,"value",(t=>t===o.model||!(!t||!o.model)&&t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase())),o.view&&o.view.styles&&t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Family"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:"ck-font-family-dropdown"}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t;return lk(t.config.get(Xf).options).map((t=>("Default"===t.title&&(t.title=e("Default")),t)))}}class mk extends Zf{constructor(t){super(t,Jf)}}function gk(t){return t.map((t=>function(t){if(e=t,"object"==typeof e&&e.title&&e.model&&e.view)return fk(t);var e;const n=function(t){return pk[t]||pk[t.model]}(t);if(n)return fk(n);if("default"===t)return{model:void 0,title:"Default"};if(function(t){let e;if("object"==typeof t){if(!t.model)throw new l("font-size-invalid-definition",null,t);e=parseFloat(t.model)}else e=parseFloat(t);return isNaN(e)}(t))return;return function(t){"number"!=typeof t&&"string"!=typeof t||(t={title:String(t),model:`${parseFloat(t)}px`});return t.view={name:"span",styles:{"font-size":t.model}},fk(t)}(t)}(t))).filter((t=>!!t))}const pk={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function fk(t){return t.view.priority||(t.view.priority=7),t}const kk=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class bk extends he{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t),t.config.define(Jf,{options:["tiny","small","default","big","huge"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Jf}),t.model.schema.setAttributeProperties(Jf,{isFormatting:!0,copyOnEnter:!0});const e=t.config.get("fontSize.supportAllValues"),n=gk(this.editor.config.get("fontSize.options")).filter((t=>t.model)),o=ek(Jf,n);e?(this._prepareAnyValueConverters(o),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(o),t.commands.add(Jf,new mk(t))}_prepareAnyValueConverters(t){const e=this.editor,n=t.model.values.filter((t=>!Hm(String(t))&&!Wm(String(t))));if(n.length)throw new l("font-size-invalid-use-of-named-presets",null,{presets:n});e.conversion.for("downcast").attributeToElement({model:Jf,view:(t,{writer:e})=>{if(t)return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}}),e.conversion.for("upcast").elementToAttribute({model:{key:Jf,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:Jf,value:t=>{const e=t.getAttribute("size"),n="-"===e[0]||"+"===e[0];let o=parseInt(e,10);n&&(o=3+o);const i=kk.length-1,r=Math.min(Math.max(o,0),i);return kk[r]}}})}}var wk=n(6203),Ak={attributes:{"data-cke":!0}};Ak.setAttributes=os(),Ak.insert=es().bind(null,"head"),Ak.domAPI=Xr(),Ak.insertStyleElement=rs();Qr()(wk.Z,Ak);wk.Z&&wk.Z.locals&&wk.Z.locals;class _k extends he{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Jf);t.ui.componentFactory.add(Jf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new So;for(const o of t){const t={type:"button",model:new Hh({commandName:Jf,commandParam:o.model,label:o.title,class:"ck-fontsize-option",withText:!0})};o.view&&o.view.styles&&t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`),o.view&&o.view.classes&&t.model.set("class",`${t.model.class} ${o.view.classes}`),t.model.bind("isOn").to(e,"value",(t=>t===o.model)),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Size"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t,n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};return gk(t.config.get(Jf).options).map((t=>{const e=n[t.title];return e&&e!=t.title&&(t=Object.assign({},t,{title:e})),t}))}}class Ck extends ge{refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&vk(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((o=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i)!t.is("element","paragraph")&&vk(t,e.schema)&&o.rename(t,"paragraph")}))}}function vk(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class yk extends ge{execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.change((t=>{const i=t.createElement("paragraph");if(n&&e.schema.setAllowedAttributes(i,n,t),!e.schema.checkChild(o.parent,i)){const n=e.schema.findAllowedParent(o,i);if(!n)return;o=t.split(o,n).position}e.insertContent(i,o),t.setSelection(i,"in")}))}}class xk extends he{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Ck(t)),t.commands.add("insertParagraph",new yk(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>xk.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}xk.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class Ek extends ge{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Dk(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Dk(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function Dk(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const Sk="paragraph";class Ik extends he{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[xk]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)o.model!==Sk&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new Ek(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",Sk)&&0===i.childCount&&o.writer.rename(i,Sk)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:s.get("low")+1})}}var Mk=n(3230),Tk={attributes:{"data-cke":!0}};Tk.setAttributes=os(),Tk.insert=es().bind(null,"head"),Tk.domAPI=Xr(),Tk.insertStyleElement=rs();Qr()(Mk.Z,Tk);Mk.Z&&Mk.Z.locals&&Mk.Z.locals;class Bk extends he{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new So,a=t.commands.get("heading"),l=t.commands.get("paragraph"),c=[a];for(const t of n){const e={type:"button",model:new Hh({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),c.push(l)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=ph(e);return kh(d,s),d.buttonView.set({isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",l,"value",((t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:o})),this.listenTo(d,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),d}))}}class Nk extends he{static get requires(){return[em]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Kp(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void c("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new nh(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new l("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,r.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:o,balloonClassName:i})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?zk(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Pk(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);zk(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function zk(t,e){const n=t.plugins.get("ContextualBalloon"),o=Pk(t,e);n.updatePosition(o)}function Pk(t,e){const n=t.editing.view,o=Yh.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class Lk{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,n){const o=new Ea(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains(Ok(n)))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ea(t),o=e.split("-"),i={x:"right"==o[1]?n.right:n.left,y:"bottom"==o[0]?n.bottom:n.top};return i.x+=t.ownerDocument.defaultView.scrollX,i.y+=t.ownerDocument.defaultView.scrollY,i}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=o.width,this.originalHeight=o.height,this.aspectRatio=o.width/o.height;const i=n.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this.originalWidthPercents=parseFloat(i):this.originalWidthPercents=function(t,e){const n=t.parentElement,o=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);return e.width/o*100}(n,o)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}function Ok(t){return`ck-widget__resizer__handle-${t}`}ue(Lk,re);class Rk extends Kd{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,o)=>"px"===t.unit?`${e}×${n}`:`${o}%`)),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class jk{constructor(t){this._options=t,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"}),this.on("change:isEnabled",(()=>{this.isEnabled&&this.redraw()}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const o=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),t.on("change:isEnabled",((t,e,o)=>{n.style.display=o?"":"none"})),n.style.display=t.isEnabled?"":"none",n}));n.insert(n.createPositionAt(e,"end"),o),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=o}))}begin(t){this.state=new Lk(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",o=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",o,this._options.viewElement)}));const n=this._getHandleHost(),o=new Ea(n);e.handleHostWidth=Math.round(o.width),e.handleHostHeight=Math.round(o.height);const i=new Ea(n);e.width=Math.round(i.width),e.height=Math.round(i.height),this.redraw(o),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const o=e.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(o.isSameNode(i)){const e=t||new Ea(i);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==Oo(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(o=t).pageX,y:o.pageY};var o;const i=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};i&&e.activeHandlePosition.endsWith("-right")&&(r.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),i&&(r.x*=2);const s={width:Math.abs(e.originalWidth+r.x),height:Math.abs(e.originalHeight+r.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)t.appendChild(new $d({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=o,`ck-widget__resizer__handle-${n}`)}}).render());var n}_appendSizeUI(t){this._sizeView=new Rk,this._sizeView.render(),t.appendChild(this._sizeView.element)}}ue(jk,re);var Vk=n(2263),Fk={attributes:{"data-cke":!0}};Fk.setAttributes=os(),Fk.insert=es().bind(null,"head"),Fk.domAPI=Xr(),Fk.insertStyleElement=rs();Qr()(Vk.Z,Fk);Vk.Z&&Vk.Z.locals&&Vk.Z.locals;class Hk extends he{static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=hs.window.document;this.set("visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map,t.view.addObserver(Mm),this._observer=Object.create(Ds),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));const n=()=>{this.visibleResizer&&this.visibleResizer.redraw()};this._redrawFocusedResizerThrottled=_f(n,200),this.on("change:visibleResizer",n),this.editor.ui.on("update",this._redrawFocusedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(hs.window,"resize",this._redrawFocusedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const t=o.getSelectedElement();this.visibleResizer=this.getResizerByViewElement(t)||null}))}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawFocusedResizerThrottled.cancel()}attachTo(t){const e=new jk(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const o=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(o)==e&&(this.visibleResizer=e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;jk.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n),this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}ue(Hk,re);class Uk extends ge{refresh(){const t=this.editor.model,e=t.schema,n=t.document.selection;this.isEnabled=function(t,e,n){const o=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,n);return e.checkChild(o,"horizontalLine")}(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}var Wk=n(2536),Gk={attributes:{"data-cke":!0}};Gk.setAttributes=os(),Gk.insert=es().bind(null,"head"),Gk.domAPI=Xr(),Gk.insertStyleElement=rs();Qr()(Wk.Z,Gk);Wk.Z&&Wk.Z.locals&&Wk.Z.locals;class qk extends he{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"}),o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")}),o.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line"),i=e.createContainerElement("div",null,e.createEmptyElement("hr"));return e.addClass("ck-horizontal-line",i),e.setCustomProperty("hr",!0,i),function(t,e,n){return e.setCustomProperty("horizontalLine",!0,t),$p(t,e,{label:n})}(i,e,o)}}),o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),t.commands.add("horizontalLine",new Uk(t))}}class Zk extends he{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("horizontalLine",(n=>{const o=t.commands.get("horizontalLine"),i=new xu(n);return i.set({label:e("Horizontal line"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("horizontalLine"),t.editing.view.focus()})),i}))}}class Yk extends ge{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}function Kk(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot()])}function $k(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function Qk(t,e){const n=Fa(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Jk extends he{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const o=this.editor,i=o.model,r=i.document.selection;n=Xk(o,e||r,n),t={...Object.fromEntries(r.getAttributes()),...t};for(const e in t)i.schema.checkAttribute(n,e)||delete t[e];return i.change((o=>{const r=o.createElement(n,t);return i.insertObject(r,e,null,{setSelection:"on",findOptimalPosition:!e&&"imageInline"!=n}),r.parent?r:null}))}getClosestSelectedImageWidget(t){const e=t.getSelectedElement();if(e&&this.isImageWidget(e))return e;let n=t.getFirstPosition().parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Xk(t,e)){const n=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return $p(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&Kp(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Xk(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"block"===i?"imageBlock":e.is("selection")?Qk(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class tb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Yk(this.editor))}}var eb=n(6831),nb={attributes:{"data-cke":!0}};nb.setAttributes=os(),nb.insert=es().bind(null,"head"),nb.domAPI=Xr(),nb.insertStyleElement=rs();Qr()(eb.Z,nb);eb.Z&&eb.Z.locals&&eb.Z.locals;var ob=n(1590),ib={attributes:{"data-cke":!0}};ib.setAttributes=os(),ib.insert=es().bind(null,"head"),ib.domAPI=Xr(),ib.insertStyleElement=rs();Qr()(ob.Z,ib);ob.Z&&ob.Z.locals&&ob.Z.locals;class rb extends Kd{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Gd({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Text alternative"),e}}function sb(t){const e=t.editing.view,n=Yh.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.viewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class ab extends he{static get requires(){return[em]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new xu(n);return i.set({label:e("Change image text alternative"),icon:Hd.lowVision,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new rb(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=sb(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Ud({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:sb(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class lb extends he{static get requires(){return[tb,ab]}static get pluginName(){return"ImageTextAlternative"}}function cb(t,e){return t=>{t.on(`attribute:srcset:${e}`,n)};function n(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s),t.width&&i.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(i.setAttribute("srcset",t.data,s),i.setAttribute("sizes","100vw",s),t.width&&i.setAttribute("width",t.width,s))}}}function db(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,o)};function o(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class ub extends Ms{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class hb extends ge{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&c("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&c("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=Mo(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class mb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(ub),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new hb(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class gb extends ge{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(e.document.selection),i=Object.fromEntries(o.getAttributes());return i.src||i.uploadId?e.change((t=>{const r=Array.from(e.markers).filter((t=>t.getRange().containsItem(o))),s=n.insertImage(i,e.createSelection(o,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of r){const n=e.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:o})}return{oldElement:o,newElement:s}})):null}}class pb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new gb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>Kk(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget(Kk(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageBlock","src")).add(db(o,"imageBlock","alt")).add(cb(o,"imageBlock")),n.for("upcast").elementToElement({view:$k(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,o){if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Fa(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageBlock"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}}))}}var fb=n(9048),kb={attributes:{"data-cke":!0}};kb.setAttributes=os(),kb.insert=es().bind(null,"head"),kb.domAPI=Xr(),kb.insertStyleElement=rs();Qr()(fb.Z,kb);fb.Z&&fb.Z.locals&&fb.Z.locals;class bb extends he{static get requires(){return[pb,wf,lb]}static get pluginName(){return"ImageBlock"}}class wb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new gb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageInline","src")).add(db(o,"imageInline","alt")).add(cb(o,"imageInline")),n.for("upcast").elementToElement({view:$k(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageInline"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}}))}}class Ab extends he{static get requires(){return[wb,wf,lb]}static get pluginName(){return"ImageInline"}}class _b extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils").getClosestSelectedImageElement(t.model.document.selection);this.isEnabled=!!e,e&&e.hasAttribute("width")?this.value={width:e.getAttribute("width"),height:null}:this.value=null}execute(t){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(n.document.selection);this.value={width:t.width,height:null},o&&n.change((e=>{e.setAttribute("width",t.width,o)}))}}class Cb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t),t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor,e=new _b(t);this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline"),t.commands.add("resizeImage",e),t.commands.add("imageResize",e)}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:"width"}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:"width"})}_registerConverters(t){const e=this.editor;e.conversion.for("downcast").add((e=>e.on(`attribute:width:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewElement(e.item);null!==e.attributeNewValue?(o.setStyle("width",e.attributeNewValue,i),o.addClass("image_resized",i)):(o.removeStyle("width",i),o.removeClass("image_resized",i))})))),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{width:/.+/}},model:{key:"width",value:t=>t.getStyle("width")}})}}const vb={small:Hd.objectSizeSmall,medium:Hd.objectSizeMedium,large:Hd.objectSizeLarge,original:Hd.objectSizeFull};class yb extends he{static get requires(){return[Cb]}static get pluginName(){return"ImageResizeButtons"}constructor(t){super(t),this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor,e=t.config.get("image.resizeOptions"),n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e)this._registerImageResizeButton(t);this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor,{name:n,value:o,icon:i}=t,r=o?o+this._resizeUnit:null;e.ui.componentFactory.add(n,(n=>{const o=new xu(n),s=e.commands.get("resizeImage"),a=this._getOptionLabelValue(t,!0);if(!vb[i])throw new l("imageresizebuttons-missing-icon",e,t);return o.set({label:a,icon:vb[i],tooltip:a,isToggleable:!0}),o.bind("isEnabled").to(this),o.bind("isOn").to(s,"value",xb(r)),this.listenTo(o,"execute",(()=>{e.execute("resizeImage",{width:r})})),o}))}_registerImageResizeDropdown(t){const e=this.editor,n=e.t,o=t.find((t=>!t.value)),i=i=>{const r=e.commands.get("resizeImage"),s=ph(i,Vu),a=s.buttonView;return a.set({tooltip:n("Resize image"),commandValue:o.value,icon:vb.medium,isToggleable:!0,label:this._getOptionLabelValue(o),withText:!0,class:"ck-resize-image-button"}),a.bind("label").to(r,"value",(t=>t&&t.width?t.width:this._getOptionLabelValue(o))),s.bind("isOn").to(r),s.bind("isEnabled").to(this),kh(s,this._getResizeDropdownListItemDefinitions(t,r)),s.listView.ariaLabel=n("Image resize list"),this.listenTo(s,"execute",(t=>{e.execute(t.source.commandName,{width:t.source.commandValue}),e.editing.view.focus()})),s};e.ui.componentFactory.add("resizeImage",i),e.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(t,e){const n=this.editor.t;return t.label?t.label:e?t.value?n("Resize image to %0",t.value+this._resizeUnit):n("Resize image to the original size"):t.value?t.value+this._resizeUnit:n("Original")}_getResizeDropdownListItemDefinitions(t,e){const n=new So;return t.map((t=>{const o=t.value?t.value+this._resizeUnit:null,i={type:"button",model:new Hh({commandName:"resizeImage",commandValue:o,label:this._getOptionLabelValue(t),withText:!0,icon:null})};i.model.bind("isOn").to(e,"value",xb(o)),n.add(i)})),n}}function xb(t){return e=>null===t&&e===t||e&&e.width===t}const Eb=/(image|image-inline)/,Db="image_resized";class Sb extends he{static get requires(){return[Hk]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t),this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor,e=t.editing.view;e.addObserver(ub),this.listenTo(e.document,"imageLoaded",((n,o)=>{if(!o.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const i=t.editing.view.domConverter,r=i.domToView(o.target).findAncestor({classes:Eb});let s=this.editor.plugins.get(Hk).getResizerByViewElement(r);if(s)return void s.redraw();const a=t.editing.mapper,l=a.toModelElement(r);s=t.plugins.get(Hk).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:l,viewElement:r,editor:t,getHandleHost:t=>t.querySelector("img"),getResizeHost:()=>i.viewToDom(a.toViewElement(l.parent)),isCentered(){const t=l.getAttribute("imageStyle");return!t||"block"==t||"alignCenter"==t},onCommit(n){e.change((t=>{t.removeClass(Db,r)})),t.execute("resizeImage",{width:n})}}),s.on("updateSize",(()=>{r.hasClass(Db)||e.change((t=>{t.addClass(Db,r)}))})),s.bind("isEnabled").to(this)}))}}var Ib=n(1043),Mb={attributes:{"data-cke":!0}};Mb.setAttributes=os(),Mb.insert=es().bind(null,"head"),Mb.domAPI=Xr(),Mb.insertStyleElement=rs();Qr()(Ib.Z,Mb);Ib.Z&&Ib.Z.locals&&Ib.Z.locals;class Tb extends ge{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value;let r=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,r)&&(this.editor.execute(o.isBlockImage(r)?"imageTypeInline":"imageTypeBlock"),r=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",r):e.setAttribute("imageStyle",i,r)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:Bb,objectInline:Nb,objectLeft:zb,objectRight:Pb,objectCenter:Lb,objectBlockLeft:Ob,objectBlockRight:Rb}=Hd,jb={get inline(){return{name:"inline",title:"In line",icon:Nb,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:zb,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Ob,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Lb,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Pb,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Rb,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Lb,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Pb,modelElements:["imageBlock"],className:"image-style-side"}}},Vb={full:Bb,left:Ob,right:Rb,center:Lb,inlineLeft:zb,inlineRight:Pb,inline:Nb},Fb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Hb(t){c("image-style-configuration-definition-invalid",t)}const Ub={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?jb[t]?{...jb[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(jb[t.name],t);"string"==typeof t.icon&&(t.icon=Vb[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Hb({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return c("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Fb]:[]},warnInvalidStyle:Hb,DEFAULT_OPTIONS:jb,DEFAULT_ICONS:Vb,DEFAULT_DROPDOWN_DEFINITIONS:Fb};function Wb(t,e){for(const n of e)if(n.name===t)return n}class Gb extends he{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Jk]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Ub,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Tb(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=Wb(e.attributeNewValue,r),i=Wb(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Fa(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Jk),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var qb=n(4622),Zb={attributes:{"data-cke":!0}};Zb.setAttributes=os(),Zb.insert=es().bind(null,"head"),Zb.domAPI=Xr(),Zb.insertStyleElement=rs();Qr()(qb.Z,Zb);qb.Z&&qb.Z.locals&&qb.Z.locals;class Yb extends he{static get requires(){return[Gb]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Kb(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=Kb([...e.filter(x),...Ub.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,l=s.filter((t=>e.find((({name:e})=>$b(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==l.length&&Ub.warnInvalidStyle({dropdown:t});const c=ph(o,Uu),d=c.buttonView;return fh(c,l),d.set({label:Qb(a,i.label),class:null,tooltip:!0}),d.bind("icon").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return e<0?i.icon:l[e].icon})),d.bind("label").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return Qb(a,e<0?i.label:l[e].label)})),d.bind("isOn").toMany(l,"isOn",((...t)=>t.some(st))),d.bind("class").toMany(l,"isOn",((...t)=>t.some(st)?"ck-splitbutton_flatten":null)),d.on("execute",(()=>{l.some((({isOn:t})=>t))?c.isOpen=!c.isOpen:i.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some(st))),c}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add($b(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new xu(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Kb(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function $b(t){return`imageStyle:${t}`}function Qb(t,e){return(t?t+": ":"")+e}class Jb{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{o("error")},e.onabort=()=>{o("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}ue(Jb,re);class Xb extends he{static get pluginName(){return"FileRepository"}static get requires(){return[Vd]}init(){this.loaders=new So,this.loaders.on("add",(()=>this._updatePendingAction())),this.loaders.on("remove",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return c("filerepository-no-upload-adapter"),null;const e=new tw(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof tw?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(Vd);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}ue(Xb,re);class tw{constructor(t,e){this.id=r(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new Jb,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new l("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new l("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,o)=>{e.rejecter=o,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,o(t)}))})),e}}ue(tw,re);class ew extends Kd{constructor(t){super(t),this.buttonView=new xu(t),this._fileInputView=new nw(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class nw extends Kd{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class ow{constructor(t,e){this.loader=t,this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.options.uploadUrl,!0),t.responseType="json"}_initListeners(t,e,n){const o=this.xhr,i=this.loader,r=`Couldn't upload file: ${n.name}.`;o.addEventListener("error",(()=>e(r))),o.addEventListener("abort",(()=>e())),o.addEventListener("load",(()=>{const n=o.response;if(!n||n.error)return e(n&&n.error&&n.error.message?n.error.message:r);const i=n.url?{default:n.url}:n.urls;t({...n,urls:i})})),o.upload&&o.upload.addEventListener("progress",(t=>{t.lengthComputable&&(i.uploadTotal=t.total,i.uploaded=t.loaded)}))}_sendRequest(t){const e=this.options.headers||{},n=this.options.withCredentials||!1;for(const t of Object.keys(e))this.xhr.setRequestHeader(t,e[t]);this.xhr.withCredentials=n;const o=new FormData;o.append("upload",t),this.xhr.send(o)}}function iw(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function rw(t){return new Promise(((e,n)=>{const o=t.getAttribute("src");fetch(o).then((t=>t.blob())).then((t=>{const n=sw(t,o),i=n.replace("image/",""),r=new File([t],`image.${i}`,{type:n});e(r)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const o=hs.document.createElement("img");o.addEventListener("load",(()=>{const t=hs.document.createElement("canvas");t.width=o.width,t.height=o.height;t.getContext("2d").drawImage(o,0,0),t.toBlob((t=>t?e(t):n()))})),o.addEventListener("error",(()=>n())),o.src=t}))}(t).then((e=>{const n=sw(e,t),o=n.replace("image/","");return new File([e],`image.${o}`,{type:n})}))}(o).then(e).catch(n):n(t)))}))}function sw(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class aw extends he{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const o=new ew(n),i=t.commands.get("uploadImage"),r=t.config.get("image.upload.types"),s=iw(r);return o.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:!0}),o.buttonView.set({label:e("Insert image"),icon:Hd.image,tooltip:!0}),o.buttonView.bind("isEnabled").to(i),o.on("done",((e,n)=>{const o=Array.from(n).filter((t=>s.test(t.type)));o.length&&t.execute("uploadImage",{file:o})})),o};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}var lw=n(5870),cw={attributes:{"data-cke":!0}};cw.setAttributes=os(),cw.insert=es().bind(null,"head"),cw.domAPI=Xr(),cw.insertStyleElement=rs();Qr()(lw.Z,cw);lw.Z&&lw.Z.locals&&lw.Z.locals;var dw=n(9899),uw={attributes:{"data-cke":!0}};uw.setAttributes=os(),uw.insert=es().bind(null,"head"),uw.domAPI=Xr(),uw.insertStyleElement=rs();Qr()(dw.Z,uw);dw.Z&&dw.Z.locals&&dw.Z.locals;var hw=n(9825),mw={attributes:{"data-cke":!0}};mw.setAttributes=os(),mw.insert=es().bind(null,"head"),mw.domAPI=Xr(),mw.insertStyleElement=rs();Qr()(hw.Z,mw);hw.Z&&hw.Z.locals&&hw.Z.locals;class gw extends he{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const o=this.editor,i=e.item,r=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=o.plugins.get("ImageUtils"),a=o.plugins.get(Xb),l=r?e.attributeNewValue:null,c=this.placeholder,d=o.editing.mapper.toViewElement(i),u=n.writer;if("reading"==l)return pw(d,u),void fw(s,c,d,u);if("uploading"==l){const t=a.loaders.get(r);return pw(d,u),void(t?(kw(d,u),function(t,e,n,o){const i=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),i),n.on("change:uploadedPercent",((t,e,n)=>{o.change((t=>{t.setStyle("width",n+"%",i)}))}))}(d,u,t,o.editing.view),function(t,e,n,o){if(o.data){const i=t.findViewImgElement(e);n.setAttribute("src",o.data,i)}}(s,d,u,t)):fw(s,c,d,u))}"complete"==l&&a.loaders.get(r)&&function(t,e,n){const o=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),o),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(o))))}),3e3)}(d,u,o.editing.view),function(t,e){ww(t,e,"progressBar")}(d,u),kw(d,u),function(t,e){e.removeClass("ck-appear",t)}(d,u)}}function pw(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function fw(t,e,n,o){n.hasClass("ck-image-upload-placeholder")||o.addClass("ck-image-upload-placeholder",n);const i=t.findViewImgElement(n);i.getAttribute("src")!==e&&o.setAttribute("src",e,i),bw(n,"placeholder")||o.insert(o.createPositionAfter(i),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(o))}function kw(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),ww(t,e,"placeholder")}function bw(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function ww(t,e,n){const o=bw(t,n);o&&e.remove(e.createRangeOn(o))}class Aw extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=Mo(t.file),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);this._uploadImage(t,i,e)}else this._uploadImage(t,i)}))}_uploadImage(t,e,n){const o=this.editor,i=o.plugins.get(Xb).createLoader(t),r=o.plugins.get("ImageUtils");i&&r.insertImage({...e,uploadId:i.id},n)}}class _w extends he{static get requires(){return[Xb,Fh,Hp,Jk]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,o=t.plugins.get(Xb),i=t.plugins.get("ImageUtils"),r=iw(t.config.get("image.upload.types")),s=new Aw(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(o=n.dataTransfer,Array.from(o.types).includes("text/html")&&""!==o.getData("text/html"))return;var o;const i=Array.from(n.dataTransfer.files).filter((t=>!!t&&r.test(t.type)));i.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange((()=>{t.execute("uploadImage",{file:i})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(i,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:rw(t.item),imageElement:t.item})));if(!r.length)return;const s=new Tm(t.editing.view.document);for(const t of r){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=o.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),i=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,r="$graveyard"==e.position.root.rootName;for(const e of Cw(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=o.loaders.get(t);n&&(r?i.has(t)||n.abort():(i.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const o=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",o.default,e),this._parseAndSetSrcsetAttributeOnImage(o,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,o=e.locale.t,i=e.plugins.get(Xb),r=e.plugins.get(Fh),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const o=t.upload(),i=a.get(t.id);if(sr.isSafari){const t=e.editing.mapper.toViewElement(i),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const o=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=o}))}return n.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","uploading",i)})),o})).then((e=>{n.enqueueChange({isUndoable:!1},(n=>{const o=a.get(t.id);n.setAttribute("uploadStatus","complete",o),this.fire("uploadComplete",{data:e,imageElement:o})})),l()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&r.showWarning(e,{title:o("Upload failed"),namespace:"upload"}),n.enqueueChange({isUndoable:!1},(e=>{e.remove(a.get(t.id))})),l()}));function l(){n.enqueueChange({isUndoable:!1},(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),i.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let o=0;const i=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return o=Math.max(o,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=i&&n.setAttribute("srcset",{data:i,width:o},e)}}function Cw(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class vw extends he{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new fe(t)),t.commands.add("outdent",new fe(t))}}const yw='',xw='';class Ew extends he{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?yw:xw,i="ltr"==e.uiLanguageDirection?xw:yw;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(i=>{const r=o.commands.get(t),s=new xu(i);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(s,"execute",(()=>{o.execute(t),o.editing.view.focus()})),s}))}}class Dw extends ge{constructor(t,e){super(t),this._indentBehavior=e}refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());e&&t.schema.checkAttribute(e,"blockIndent")?this.isEnabled=this._indentBehavior.checkEnabled(e.getAttribute("blockIndent")):this.isEnabled=!1}execute(){const t=this.editor.model,e=function(t){const e=t.document.selection,n=t.schema;return Array.from(e.getSelectedBlocks()).filter((t=>n.checkAttribute(t,"blockIndent")))}(t);t.change((t=>{for(const n of e){const e=n.getAttribute("blockIndent"),o=this._indentBehavior.getNextIndent(e);o?t.setAttribute("blockIndent",o,n):t.removeAttribute("blockIndent",n)}}))}}class Sw{constructor(t){this.isForward="forward"===t.direction,this.offset=t.offset,this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||0);return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||0);if(!(!t||t.endsWith(this.unit)))return this.isForward?this.offset+this.unit:void 0;const n=e+(this.isForward?this.offset:-this.offset);return n>0?n+this.unit:void 0}}class Iw{constructor(t){this.isForward="forward"===t.direction,this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);return this.isForward?e=0}getNextIndent(t){const e=this.classes.indexOf(t),n=this.isForward?1:-1;return this.classes[e+n]}}const Mw=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];const Tw="italic";class Bw extends he{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Tw}),t.model.schema.setAttributeProperties(Tw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Tw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Tw,new Np(t,Tw)),t.keystrokes.set("CTRL+I",Tw)}}const Nw="italic";class zw extends he{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Nw,(n=>{const o=t.commands.get(Nw),i=new xu(n);return i.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Nw),t.editing.view.focus()})),i}))}}class Pw{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;if(!e.item.is("selection")&&!n.schema.isInline(e.item))return;const o=n.writer,i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement("a",t.attributes,{priority:5});t.classes&&o.addClass(t.classes,r);for(const e in t.styles)o.setStyle(e,t.styles[e],r);o.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?o.wrap(i.getFirstRange(),r):o.wrap(n.mapper.toViewRange(e.range),r):o.unwrap(n.mapper.toViewRange(e.range),r)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:o})=>{const i=o.toViewElement(e.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const o=Ho(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o)"class"===t?n.addClass(e,r):n.setAttribute(t,e,r);t.classes&&n.addClass(t.classes,r);for(const e in t.styles)n.setStyle(e,t.styles[e],r)}else{for(const[t,e]of o)"class"===t?n.removeClass(e,r):n.removeAttribute(t,r);t.classes&&n.removeClass(t.classes,r);for(const e in t.styles)n.removeStyle(e,r)}}}))}}}const Lw=function(t,e,n){var o=t.length;return n=void 0===n?o:n,!e&&n>=o?t:ui(t,e,n)};var Ow=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const Rw=function(t){return Ow.test(t)};const jw=function(t){return t.split("")};var Vw="[\\ud800-\\udfff]",Fw="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Hw="\\ud83c[\\udffb-\\udfff]",Uw="[^\\ud800-\\udfff]",Ww="(?:\\ud83c[\\udde6-\\uddff]){2}",Gw="[\\ud800-\\udbff][\\udc00-\\udfff]",qw="(?:"+Fw+"|"+Hw+")"+"?",Zw="[\\ufe0e\\ufe0f]?",Yw=Zw+qw+("(?:\\u200d(?:"+[Uw,Ww,Gw].join("|")+")"+Zw+qw+")*"),Kw="(?:"+[Uw+Fw+"?",Fw,Ww,Gw,Vw].join("|")+")",$w=RegExp(Hw+"(?="+Hw+")|"+Kw+Yw,"g");const Qw=function(t){return t.match($w)||[]};const Jw=function(t){return Rw(t)?Qw(t):jw(t)};const Xw=function(t){return function(e){e=si(e);var n=Rw(e)?Jw(e):void 0,o=n?n[0]:e.charAt(0),i=n?Lw(n,1).join(""):e.slice(1);return o[t]()+i}}("toUpperCase"),tA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,eA=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,nA=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,oA=/^((\w+:(\/{2,})?)|(\W))/i,iA="Ctrl+K";function rA(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function sA(t){return function(t){return t.replace(tA,"").match(eA)}(t=String(t))?t:"#"}function aA(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function lA(t,e){const n=(o=t,nA.test(o)?"mailto:":e);var o;const i=!!n&&!oA.test(t);return t&&i?n+t:t}function cA(t){window.open(t,"_blank","noopener")}class dA extends ge{constructor(t){super(t),this.manualDecorators=new So,this.automaticDecorators=new Pw}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Fa(e.getSelectedBlocks());aA(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,o=n.document.selection,i=[],r=[];for(const t in e)e[t]?i.push(t):r.push(t);n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute("linkHref")){const a=dp(s,"linkHref",o.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),i.forEach((t=>{e.setAttribute(t,!0,a)})),r.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const r=Ho(o.getAttributes());r.set("linkHref",t),i.forEach((t=>{r.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),"linkHref"),a=[];for(const t of o.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const l=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&l.push(t);for(const n of l)e.setAttribute("linkHref",t,n),i.forEach((t=>{e.setAttribute(t,!0,n)})),r.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,o=n.getSelectedElement();return aA(o,e.schema)?o.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class uA extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();aA(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,o=t.commands.get("link");e.change((t=>{const i=n.isCollapsed?[dp(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of i)if(t.removeAttribute("linkHref",e),o)for(const n of o.manualDecorators)t.removeAttribute(n.id,e)}))}}class hA{constructor({id:t,label:e,attributes:n,classes:o,styles:i,defaultValue:r}){this.id=t,this.set("value"),this.defaultValue=r,this.label=e,this.attributes=n,this.classes=o,this.styles=i}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}ue(hA,re);var mA=n(399),gA={attributes:{"data-cke":!0}};gA.setAttributes=os(),gA.insert=es().bind(null,"head"),gA.domAPI=Xr(),gA.insertStyleElement=rs();Qr()(mA.Z,gA);mA.Z&&mA.Z.locals&&mA.Z.locals;const pA="automatic",fA=/^(https?:)?\/\//;class kA extends he{static get pluginName(){return"LinkEditing"}static get requires(){return[Kg,Hg,Hp]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:rA}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>rA(sA(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new dA(t)),t.commands.add("unlink",new uA(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${Xw(n)}`});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===pA))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode)));t.plugins.get(Kg).registerAttribute("linkHref"),function(t,e,n,o){const i=t.editing.view,r=new Set;i.document.registerPostFixer((i=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const l=dp(s.getFirstPosition(),e,s.getAttribute(e),t.model),c=t.editing.mapper.toViewRange(l);for(const t of c.getItems())t.is("element",n)&&!t.hasClass(o)&&(i.addClass(o,t),r.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){i.change((t=>{for(const e of r.values())t.removeClass(o,e),r.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:pA,callback:t=>fA.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new hA(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n,schema:o},{item:i})=>{if(o.isInline(i)&&e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const o in t.styles)n.setStyle(o,t.styles[o],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableLinkOpen(){const t=this.editor,e=t.editing.view.document,n=t.model.document;this.listenTo(e,"click",((t,e)=>{if(!(sr.isMac?e.domEvent.metaKey:e.domEvent.ctrlKey))return;let n=e.domTarget;if("a"!=n.tagName.toLowerCase()&&(n=n.closest("a")),!n)return;const o=n.getAttribute("href");o&&(t.stop(),e.preventDefault(),cA(o))}),{context:"$capture"}),this.listenTo(e,"enter",((t,e)=>{const o=n.selection,i=o.getSelectedElement(),r=i?i.getAttribute("linkHref"):o.getAttribute("linkHref");r&&e.domEvent.altKey&&(t.stop(),cA(r))}),{context:"a"})}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,o=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(o&&o.hasAttribute("linkHref")||t.change((e=>{bA(e,AA(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(Mm);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const o=t.getFirstPosition(),i=dp(o,"linkHref",t.getAttribute("linkHref"),e);(o.isTouching(i.start)||o.isTouching(i.end))&&e.change((t=>{bA(t,AA(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,o;this.listenTo(e.document,"delete",(()=>{o=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(o?o=!1:wA(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),o=e.getLastPosition(),i=n.nodeAfter;if(!i)return!1;if(!i.is("$text"))return!1;if(!i.hasAttribute("linkHref"))return!1;const r=o.textNode||o.nodeBefore;if(i===r)return!0;return dp(n,"linkHref",i.getAttribute("linkHref"),t).containsRange(t.createRange(n,o),!0)}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[i])=>{o=!1,wA(t)&&n&&(t.model.change((t=>{for(const[e,o]of n)t.setAttribute(e,o,i)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,o=t.editing.view;let i=!1,r=!1;this.listenTo(o.document,"delete",((t,e)=>{r=e.domEvent.keyCode===dr.backspace}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{i=!1;const t=n.getFirstPosition(),o=n.getAttribute("linkHref");if(!o)return;const r=dp(t,"linkHref",o,e);i=r.containsPosition(t)||r.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r&&(r=!1,i||t.model.enqueueChange((t=>{bA(t,AA(e.schema))})))}),{priority:"low"})}}function bA(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function wA(t){return t.model.change((t=>t.batch)).isTyping}function AA(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}var _A=n(4827),CA={attributes:{"data-cke":!0}};CA.setAttributes=os(),CA.insert=es().bind(null,"head"),CA.domAPI=Xr(),CA.insertStyleElement=rs();Qr()(_A.Z,CA);_A.Z&&_A.Z.locals&&_A.Z.locals;class vA extends Kd{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const o=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&o.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:o,tabindex:"-1"},children:this.children}),Wd(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),Gd({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Link URL"),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const o=new Su(this.locale);o.set({name:n.id,label:n.label,withText:!0}),o.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),o.on("execute",(()=>{n.set("value",!o.isOn)})),e.add(o)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Kd;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}var yA=n(9465),xA={attributes:{"data-cke":!0}};xA.setAttributes=os(),xA.insert=es().bind(null,"head"),xA.domAPI=Xr(),xA.insertStyleElement=rs();Qr()(yA.Z,xA);yA.Z&&yA.Z.locals&&yA.Z.locals;class EA extends Kd{constructor(t){super(t);const e=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Hd.pencil,"edit"),this.set("href"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const o=new xu(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.delegate("execute").to(this,n),o}_createPreviewButton(){const t=new xu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&sA(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}const DA='',SA="link-ui";class IA extends he{static get requires(){return[em]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(Im),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(em),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:SA,view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:SA,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new EA(t.locale),n=t.commands.get("link"),o=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(o),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set(iA,((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),o=new vA(t.locale,e);return o.urlInputView.fieldView.bind("value").to(e,"value"),o.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),o.saveButtonView.bind("isEnabled").to(e),this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element,i=lA(e,n);t.execute("link",i,o.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(o,"cancel",(()=>{this._closeFormView()})),o.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),o}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set(iA,((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const o=new xu(t);return o.isEnabled=!0,o.label=n("Link"),o.icon=DA,o.keystroke=iA,o.tooltip=!0,o.isToggleable=!0,o.bind("isEnabled").to(e,"isEnabled"),o.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>this._showUI(!0))),o}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),Ud({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),o=r();const i=()=>{const t=this._getSelectedLinkElement(),e=r();n&&!t||!n&&e!==o?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,o=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",i),this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let o=null;if(e.markers.has(SA)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(SA)),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));o=t.domConverter.viewRangeToDom(n)}else o=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:o}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&Kp(n))return MA(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),o=MA(n.start),i=MA(n.end);return o&&o==i&&t.createRangeIn(o).getTrimmed().isEqual(n)?o:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(SA))e.updateMarker(SA,{range:n});else if(n.start.isAtEnd){const o=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:e.createRange(o,n.end)})}else e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has(SA)&&t.change((t=>{t.removeMarker(SA)}))}}function MA(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const TA=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class BA extends he{static get requires(){return[Gg]}static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new Yg(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=NA(t.substr(0,t.length-1));return e?{url:e}:void 0}));e.on("matched:data",((e,n)=>{const{batch:o,range:i,url:r}=n;if(!o.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),l=t.model.createRange(a,s);this._applyAutoLink(r,l)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:o}=Zg(t,e),i=NA(n);if(i){const t=e.createRange(o.end.getShiftedBy(-i.length),o.end);this._applyAutoLink(i,t)}}_applyAutoLink(t,e){const n=this.editor.model,o=this.editor.plugins.get("Delete");this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange((i=>{const r=this.editor.config.get("link.defaultProtocol"),s=lA(t,r);i.setAttribute("linkHref",s,e),n.enqueueChange((()=>{o.requestUndoOnBackspace()}))}))}}function NA(t){const e=TA.exec(t);return e?e[2]:null}class zA extends he{static get requires(){return["ImageEditing","ImageUtils",kA]}static get pluginName(){return"LinkImageEditing"}init(){const t=this.editor,e=t.model.schema;t.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["linkHref"]}),t.conversion.for("upcast").add(function(t){const e=t.plugins.has("ImageInlineEditing"),n=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,o,i)=>{const r=o.viewItem,s=n.findViewImgElement(r);if(!s)return;const a=s.findAncestor((t=>n.isBlockImageView(t)));if(e&&!a)return;const l={attributes:["href"]};if(!i.consumable.consume(r,l))return;const c=r.getAttribute("href");if(!c)return;let d=o.modelCursor.parent;if(!d.is("element","imageBlock")){const t=i.convertItem(s,o.modelCursor);o.modelRange=t.modelRange,o.modelCursor=t.modelCursor,d=o.modelCursor.nodeBefore}d&&d.is("element","imageBlock")&&i.writer.setAttribute("linkHref",c,d)}),{priority:"high"})}}(t)),t.conversion.for("downcast").add(function(t){const e=t.plugins.get("ImageUtils");return t=>{t.on("attribute:linkHref:imageBlock",((t,n,o)=>{if(!o.consumable.consume(n.item,t.name))return;const i=o.mapper.toViewElement(n.item),r=o.writer,s=Array.from(i.getChildren()).find((t=>"a"===t.name)),a=e.findViewImgElement(i),l=a.parent.is("element","picture")?a.parent:a;if(s)n.attributeNewValue?r.setAttribute("href",n.attributeNewValue,s):(r.move(r.createRangeOn(l),r.createPositionAt(i,0)),r.remove(s));else{const t=r.createContainerElement("a",{href:n.attributeNewValue});r.insert(r.createPositionAt(i,0),t),r.move(r.createRangeOn(l),r.createPositionAt(t,0))}}),{priority:"high"})}}(t)),this._enableAutomaticDecorators(),this._enableManualDecorators()}_enableAutomaticDecorators(){const t=this.editor,e=t.commands.get("link").automaticDecorators;e.length&&t.conversion.for("downcast").add(e.getDispatcherForLinkedImage())}_enableManualDecorators(){const t=this.editor,e=t.commands.get("link");for(const n of e.manualDecorators)t.plugins.has("ImageBlockEditing")&&t.model.schema.extend("imageBlock",{allowAttributes:n.id}),t.plugins.has("ImageInlineEditing")&&t.model.schema.extend("imageInline",{allowAttributes:n.id}),t.conversion.for("downcast").add(PA(n)),t.conversion.for("upcast").add(LA(t,n))}}function PA(t){return e=>{e.on(`attribute:${t.id}:imageBlock`,((e,n,o)=>{const i=o.mapper.toViewElement(n.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));if(r){for(const[e,n]of Ho(t.attributes))o.writer.setAttribute(e,n,r);t.classes&&o.writer.addClass(t.classes,r);for(const e in t.styles)o.writer.setStyle(e,t.styles[e],r)}}))}}function LA(t,e){const n=t.plugins.has("ImageInlineEditing"),o=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,i,r)=>{const s=i.viewItem,a=o.findViewImgElement(s);if(!a)return;const l=a.findAncestor((t=>o.isBlockImageView(t)));if(n&&!l)return;const c=new Uo(e._createPattern()).match(s);if(!c)return;if(!r.consumable.consume(s,c.match))return;const d=i.modelCursor.nodeBefore||i.modelCursor.parent;r.writer.setAttribute(e.id,!0,d)}),{priority:"high"})}}class OA extends he{static get requires(){return[kA,IA,"ImageBlockEditing"]}static get pluginName(){return"LinkImageUI"}init(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"click",((e,n)=>{this._isSelectedLinkedImage(t.model.document.selection)&&(n.preventDefault(),e.stop())}),{priority:"high"}),this._createToolbarLinkImageButton()}_createToolbarLinkImageButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("linkImage",(n=>{const o=new xu(n),i=t.plugins.get("LinkUI"),r=t.commands.get("link");return o.set({isEnabled:!0,label:e("Link image"),icon:DA,keystroke:iA,tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(r,"isEnabled"),o.bind("isOn").to(r,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>{this._isSelectedLinkedImage(t.model.document.selection)?i._addActionsView():i._showUI(!0)})),o}))}_isSelectedLinkedImage(t){const e=t.getSelectedElement();return this.editor.plugins.get("ImageUtils").isImage(e)&&e.hasAttribute("linkHref")}}var RA=n(3858),jA={attributes:{"data-cke":!0}};jA.setAttributes=os(),jA.insert=es().bind(null,"head"),jA.domAPI=Xr(),jA.insertStyleElement=rs();Qr()(RA.Z,jA);RA.Z&&RA.Z.locals&&RA.Z.locals;class VA extends ge{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Array.from(n.selection.getSelectedBlocks()).filter((t=>HA(t,e.schema))),i=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(i){let e=o[o.length-1].nextSibling,n=Number.POSITIVE_INFINITY,i=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)r>i.getAttribute("listIndent")&&(r=i.getAttribute("listIndent")),i.getAttribute("listIndent")==r&&t[e?"unshift":"push"](i),i=i[e?"previousSibling":"nextSibling"]}}function HA(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class UA extends ge{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let o=e.nextSibling;for(;o&&"listItem"==o.name&&o.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(o),o=o.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let o=t.previousSibling;for(;o&&o.is("element","listItem")&&o.getAttribute("listIndent")>=e;){if(o.getAttribute("listIndent")==e)return o.getAttribute("listType")==n;o=o.previousSibling}return!1}return!0}}function WA(t,e){const n=e.mapper,o=e.writer,i="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=t_,e}(o),s=o.createContainerElement(i,null);return o.insert(o.createPositionAt(s,0),r),n.bindElements(t,r),r}function GA(t,e,n,o){const i=e.parent,r=n.mapper,s=n.writer;let a=r.toViewPosition(o.createPositionBefore(t));const l=YA(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else if(c&&"listItem"==c.name){a=r.toViewPosition(o.createPositionAt(c,"end"));const t=r.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=r.toViewPosition(o.createPositionBefore(t));if(a=ZA(a),s.insert(a,i),c&&"listItem"==c.name){const t=r.toViewElement(c),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const o=s.breakContainer(s.createPositionBefore(t.item)),i=t.item.parent,r=s.createPositionAt(e,"end");qA(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(i),r),n.position=o}}else{const n=i.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let o=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;o=e}o&&(s.breakContainer(s.createPositionAfter(o)),s.move(s.createRangeOn(o.parent),s.createPositionAt(e,"end")))}}qA(s,i,i.nextSibling),qA(s,i.previousSibling,i)}function qA(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function ZA(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function YA(t,e){const n=!!e.sameIndent,o=!!e.smallerIndent,i=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(n&&i==t||o&&i>t)return r;r="forward"===e.direction?r.nextSibling:r.previousSibling}return null}function KA(t,e,n,o){t.ui.componentFactory.add(e,(i=>{const r=t.commands.get(e),s=new xu(i);return s.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function $A(t,e){const n=[],o=t.parent,i={ignoreElementEnd:!0,startPosition:t,shallow:!0,direction:e},r=o.getAttribute("listIndent"),s=[...new Ja(i)].filter((t=>t.item.is("element"))).map((t=>t.item));for(const t of s){if(!t.is("element","listItem"))break;if(t.getAttribute("listIndent")r)){if(t.getAttribute("listType")!==o.getAttribute("listType"))break;if(t.getAttribute("listStyle")!==o.getAttribute("listStyle"))break;if(t.getAttribute("listReversed")!==o.getAttribute("listReversed"))break;if(t.getAttribute("listStart")!==o.getAttribute("listStart"))break;"backward"===e?n.unshift(t):n.push(t)}}return n}function QA(t){let e=[...t.document.selection.getSelectedBlocks()].filter((t=>t.is("element","listItem"))).map((e=>{const n=t.change((t=>t.createPositionAt(e,0)));return[...$A(n,"backward"),...$A(n,"forward")]})).flat();return e=[...new Set(e)],e}const JA=["disc","circle","square"],XA=["decimal","decimal-leading-zero","lower-roman","upper-roman","lower-latin","upper-latin"];function t_(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Ni.call(this)}function e_(t){return(e,n,o)=>{const i=o.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent"))return;i.consume(n.item,"insert"),i.consume(n.item,"attribute:listType"),i.consume(n.item,"attribute:listIndent");const r=n.item;GA(r,WA(r,o),o,t)}}function n_(t,e,n){if(!n.consumable.test(e.item,t.name))return;const o=n.mapper.toViewElement(e.item),i=n.writer;i.breakContainer(i.createPositionBefore(o)),i.breakContainer(i.createPositionAfter(o));const r=o.parent,s="numbered"==e.attributeNewValue?"ol":"ul";i.rename(s,r)}function o_(t,e,n){n.consumable.consume(e.item,t.name);const o=n.mapper.toViewElement(e.item).parent,i=n.writer;qA(i,o,o.nextSibling),qA(i,o.previousSibling,o)}function i_(t,e,n){if(n.consumable.test(e.item,t.name)&&"listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const o=n.writer,i=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=o.breakContainer(t),"li"==t.parent.name);){const e=t,n=o.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=o.remove(o.createRange(e,n));i.push(t)}t=o.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=qA(o,n,n.nextSibling);e&&e.parent==n&&t.offset--}}qA(o,t.nodeBefore,t.nodeAfter)}}}function r_(t,e,n){const o=n.mapper.toViewPosition(e.position),i=o.nodeBefore,r=o.nodeAfter;qA(n.writer,i,r)}function s_(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,o=t.createElement("listItem"),i=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",i,o);const r=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",r,o),!n.safeInsert(o,e.modelCursor))return;const s=function(t,e,n){const{writer:o,schema:i}=n;let r=o.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)r=n.convertItem(s,r).modelCursor;else{const e=n.convertItem(s,o.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!i.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:u_(e.modelCursor),r=o.createPositionAfter(t))}return r}(o,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(o,e)}}function a_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t){!(e.is("element","li")||m_(e))&&e._remove()}}}function l_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1;for(const e of t)n&&!m_(e)&&e._remove(),m_(e)&&(n=!0)}}function c_(t){return(e,n)=>{if(n.isPhantom)return;const o=n.modelPosition.nodeBefore;if(o&&o.is("element","listItem")){const e=n.mapper.toViewElement(o),i=e.getAncestors().find(m_),r=t.createPositionAt(e,0).getWalker();for(const t of r){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function d_(t,[e,n]){let o,i=e.is("documentFragment")?e.getChild(0):e;if(o=n?this.createSelection(n):this.document.selection,i&&i.is("element","listItem")){const t=o.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;i&&i.is("element","listItem");)i._setAttribute("listIndent",i.getAttribute("listIndent")+t),i=i.nextSibling}}}function u_(t){const e=new Ja({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function h_(t,e,n,o,i,r){const s=YA(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=i.mapper,l=i.writer,c=s?s.getAttribute("listIndent"):null;let d;if(s)if(c==t){const t=a.toViewElement(s).parent;d=l.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}else d=n;d=ZA(d);for(const t of[...o.getChildren()])m_(t)&&(d=l.move(l.createRangeOn(t),d).end,qA(l,t,t.nextSibling),qA(l,t.previousSibling,t))}function m_(t){return t.is("element","ol")||t.is("element","ul")}class g_ extends he{static get pluginName(){return"ListEditing"}static get requires(){return[Ap,Gg]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var o;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),o=new Map;let i=!1;for(const o of n)if("insert"==o.type&&"listItem"==o.name)r(o.position);else if("insert"==o.type&&"listItem"!=o.name){if("$text"!=o.name){const n=o.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),i=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),i=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),i=!0),n.hasAttribute("listReversed")&&(e.removeAttribute("listReversed",n),i=!0),n.hasAttribute("listStart")&&(e.removeAttribute("listStart",n),i=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))r(e.previousPosition)}r(o.position.getShiftedBy(o.length))}else"remove"==o.type&&"listItem"==o.name?r(o.position):("attribute"==o.type&&"listIndent"==o.attributeKey||"attribute"==o.type&&"listType"==o.attributeKey)&&r(o.range.start);for(const t of o.values())s(t),a(t);return i;function r(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(o.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,o.has(t))return;o.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&o.set(e,e)}}function s(t){let n=0,o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(r>n){let s;null===o?(o=r-n,s=n):(o>r&&(o=r),s=r-o),e.setAttribute("listIndent",s,t),i=!0}else o=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(o&&o.getAttribute("listIndent")>r&&(n=n.slice(0,r+1)),0!=r)if(n[r]){const o=n[r];t.getAttribute("listType")!=o&&(e.setAttribute("listType",o,t),i=!0)}else n[r]=t.getAttribute("listType");o=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",p_),e.mapper.registerViewToModelLength("li",p_),n.mapper.on("modelToViewPosition",c_(n.view)),n.mapper.on("viewToModelPosition",(o=t.model,(t,e)=>{const n=e.viewPosition,i=n.parent,r=e.mapper;if("ul"==i.name||"ol"==i.name){if(n.isAtEnd){const t=r.toModelElement(n.nodeBefore),i=r.getModelLength(n.nodeBefore);e.modelPosition=o.createPositionBefore(t).getShiftedBy(i)}else{const t=r.toModelElement(n.nodeAfter);e.modelPosition=o.createPositionBefore(t)}t.stop()}else if("li"==i.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=r.toModelElement(i);let a=1,l=n.nodeBefore;for(;l&&m_(l);)a+=r.getModelLength(l),l=l.previousSibling;e.modelPosition=o.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",c_(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",i_,{priority:"high"}),e.on("insert:listItem",e_(t.model)),e.on("attribute:listType:listItem",n_,{priority:"high"}),e.on("attribute:listType:listItem",o_,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,"attribute:listIndent"))return;const i=o.mapper.toViewElement(n.item),r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s);r.remove(l),a&&a.nextSibling&&qA(r,a,a.nextSibling),h_(n.attributeOldValue+1,n.range.start,l.start,i,o,t),GA(n.item,i,o,t);for(const t of n.item.getChildren())o.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,o)=>{const i=o.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s),c=r.remove(l);a&&a.nextSibling&&qA(r,a,a.nextSibling),h_(o.mapper.toModelElement(i).getAttribute("listIndent")+1,n.position,l.start,i,o,t);for(const t of r.createRangeIn(c).getItems())o.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",r_,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",i_,{priority:"high"}),e.on("insert:listItem",e_(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",a_,{priority:"high"}),t.on("element:ol",a_,{priority:"high"}),t.on("element:li",l_,{priority:"high"}),t.on("element:li",s_)})),t.model.on("insertContent",d_,{priority:"high"}),t.commands.add("numberedList",new VA(t,"numbered")),t.commands.add("bulletedList",new VA(t,"bulleted")),t.commands.add("indentList",new UA(t,"forward")),t.commands.add("outdentList",new UA(t,"backward"));const i=n.view.document;this.listenTo(i,"enter",((t,e)=>{const n=this.editor.model.document,o=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==o.name&&o.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(i,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const o=n.getFirstPosition();if(!o.isAtStart)return;const i=o.parent;if("listItem"!==i.name)return;i.previousSibling&&"listItem"===i.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function p_(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=p_(t);return e}const f_='',k_='';class b_ extends he{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;KA(this.editor,"numberedList",t("Numbered List"),f_),KA(this.editor,"bulletedList",t("Bulleted List"),k_)}}class w_ extends ge{constructor(t,e){super(t),this._defaultType=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){this._tryToConvertItemsToList(t);const e=this.editor.model,n=QA(e);n.length&&e.change((e=>{for(const o of n)e.setAttribute("listStyle",t.type||this._defaultType,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")?t.getAttribute("listStyle"):null}_checkEnabled(){const t=this.editor,e=t.commands.get("numberedList"),n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type)return;const e=(n=t.type,JA.includes(n)?"bulleted":XA.includes(n)?"numbered":null);var n;if(!e)return;const o=this.editor,i=e+"List";o.commands.get(i).value||o.execute(i)}}class A_ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=QA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listReversed",!!t.reversed,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listReversed"):null}}class __ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=QA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listStart",t.startIndex||1,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listStart"):null}}const C_="default";class v_ extends he{static get requires(){return[g_]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t),t.config.define("list",{properties:{styles:!0,startIndex:!1,reversed:!1}})}init(){const t=this.editor,e=t.model,n=function(t){const e=[];t.styles&&e.push({attributeName:"listStyle",defaultValue:C_,addCommand(t){t.commands.add("listStyle",new w_(t,C_))},appliesToListItem:()=>!0,setAttributeOnDowncast(t,e,n){e&&e!==C_?t.setStyle("list-style-type",e,n):t.removeStyle("list-style-type",n)},getAttributeOnUpcast:t=>t.getStyle("list-style-type")||C_});t.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,addCommand(t){t.commands.add("listReversed",new A_(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){e?t.setAttribute("reversed","reversed",n):t.removeAttribute("reversed",n)},getAttributeOnUpcast:t=>t.hasAttribute("reversed")});t.startIndex&&e.push({attributeName:"listStart",defaultValue:1,addCommand(t){t.commands.add("listStart",new __(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){1!=e?t.setAttribute("start",e,n):t.removeAttribute("start",n)},getAttributeOnUpcast:t=>t.getAttribute("start")||1});return e}(t.config.get("list.properties"));e.schema.extend("listItem",{allowAttributes:n.map((t=>t.attributeName))});for(const e of n)e.addCommand(t);var o;this.listenTo(t.commands.get("indentList"),"_executeCleanup",function(t,e){return(n,o)=>{const i=o[0],r=i.getAttribute("listIndent"),s=o.filter((t=>t.getAttribute("listIndent")===r));let a=null;i.previousSibling.getAttribute("listIndent")+1!==r&&(a=YA(i.previousSibling,{sameIndent:!0,direction:"backward",listIndent:r})),t.model.change((t=>{for(const n of s)for(const o of e)if(o.appliesToListItem(n)){const e=null==a?o.defaultValue:a.getAttribute(o.attributeName);t.setAttribute(o.attributeName,e,n)}}))}}(t,n)),this.listenTo(t.commands.get("outdentList"),"_executeCleanup",function(t,e){return(n,o)=>{if(!(o=o.reverse().filter((t=>t.is("element","listItem")))).length)return;const i=o[0].getAttribute("listIndent"),r=o[0].getAttribute("listType");let s=o[0].previousSibling;if(s.is("element","listItem"))for(;s.getAttribute("listIndent")!==i;)s=s.previousSibling;else s=null;s||(s=o[o.length-1].nextSibling),s&&s.is("element","listItem")&&s.getAttribute("listType")===r&&t.model.change((t=>{const n=o.filter((t=>t.getAttribute("listIndent")===i));for(const o of n)for(const n of e)if(n.appliesToListItem(o)){const e=n.attributeName,i=s.getAttribute(e);t.setAttribute(e,i,o)}}))}}(t,n)),this.listenTo(t.commands.get("bulletedList"),"_executeCleanup",E_(t)),this.listenTo(t.commands.get("numberedList"),"_executeCleanup",E_(t)),e.document.registerPostFixer(function(t,e){return n=>{let o=!1;const i=D_(t.model.document.differ.getChanges()).filter((t=>"todo"!==t.getAttribute("listType")));if(!i.length)return o;let r=i[i.length-1].nextSibling;if((!r||!r.is("element","listItem"))&&(r=i[0].previousSibling,r)){const t=i[0].getAttribute("listIndent");for(;r.is("element","listItem")&&r.getAttribute("listIndent")!==t&&(r=r.previousSibling,r););}for(const t of e){const e=t.attributeName;for(const s of i)if(t.appliesToListItem(s))if(s.hasAttribute(e)){const i=s.previousSibling;x_(i,s,t.attributeName)&&(n.setAttribute(e,i.getAttribute(e),s),o=!0)}else y_(r,s,t)?n.setAttribute(e,r.getAttribute(e),s):n.setAttribute(e,t.defaultValue,s),o=!0;else n.removeAttribute(e,s)}return o}}(t,n)),t.conversion.for("upcast").add((o=n,t=>{t.on("element:li",((t,e,n)=>{const i=e.viewItem.parent;if(!i)return;const r=e.modelRange.start.nodeAfter||e.modelRange.end.nodeBefore;for(const t of o)if(t.appliesToListItem(r)){const e=t.getAttributeOnUpcast(i);n.writer.setAttribute(t.attributeName,e,r)}}),{priority:"low"})})),t.conversion.for("downcast").add(function(t){return n=>{for(const o of t)n.on(`attribute:${o.attributeName}:listItem`,((t,n,i)=>{const r=i.writer,s=n.item,a=YA(s.previousSibling,{sameIndent:!0,listIndent:s.getAttribute("listIndent"),direction:"backward"}),l=i.mapper.toViewElement(s);e(s,a)||r.breakContainer(r.createPositionBefore(l)),o.setAttributeOnDowncast(r,n.attributeNewValue,l.parent)}),{priority:"low"})};function e(t,e){return e&&t.getAttribute("listType")===e.getAttribute("listType")&&t.getAttribute("listIndent")===e.getAttribute("listIndent")&&t.getAttribute("listStyle")===e.getAttribute("listStyle")&&t.getAttribute("listReversed")===e.getAttribute("listReversed")&&t.getAttribute("listStart")===e.getAttribute("listStart")}}(n)),this._mergeListAttributesWhileMergingLists(n)}afterInit(){const t=this.editor;t.commands.get("todoList")&&t.model.document.registerPostFixer(function(t){return e=>{const n=D_(t.model.document.differ.getChanges()).filter((t=>"todo"===t.getAttribute("listType")&&(t.hasAttribute("listStyle")||t.hasAttribute("listReversed")||t.hasAttribute("listStart"))));if(!n.length)return!1;for(const t of n)e.removeAttribute("listStyle",t),e.removeAttribute("listReversed",t),e.removeAttribute("listStart",t);return!0}}(t))}_mergeListAttributesWhileMergingLists(t){const e=this.editor.model;let n;this.listenTo(e,"deleteContent",((t,[e])=>{const o=e.getFirstPosition(),i=e.getLastPosition();if(o.parent===i.parent)return;if(!o.parent.is("element","listItem"))return;const r=i.parent.nextSibling;if(!r||!r.is("element","listItem"))return;const s=YA(o.parent,{sameIndent:!0,listIndent:r.getAttribute("listIndent")});s&&s.getAttribute("listType")===r.getAttribute("listType")&&(n=s)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{n&&(e.change((e=>{const o=YA(n.nextSibling,{sameIndent:!0,listIndent:n.getAttribute("listIndent"),direction:"forward"});if(!o)return void(n=null);const i=[o,...$A(e.createPositionAt(o,0),"forward")];for(const o of i)for(const i of t)if(i.appliesToListItem(o)){const t=i.attributeName,r=n.getAttribute(t);e.setAttribute(t,r,o)}})),n=null)}),{priority:"low"})}}function y_(t,e,n){if(!t)return!1;const o=t.getAttribute(n.attributeName);return!!o&&(o!=n.defaultValue&&t.getAttribute("listType")===e.getAttribute("listType"))}function x_(t,e,n){if(!t||!t.is("element","listItem"))return!1;if(e.getAttribute("listType")!==t.getAttribute("listType"))return!1;const o=t.getAttribute("listIndent");if(o<1||o!==e.getAttribute("listIndent"))return!1;const i=t.getAttribute(n);return!(!i||i===e.getAttribute(n))}function E_(t){return(e,n)=>{n=n.filter((t=>t.is("element","listItem"))),t.model.change((t=>{for(const e of n)t.removeAttribute("listStyle",e)}))}}function D_(t){const e=[];for(const n of t){const t=S_(n);t&&t.is("element","listItem")&&e.push(t)}return e}function S_(t){return"attribute"===t.type?t.range.start.nodeAfter:"insert"===t.type?t.position.nodeAfter:null}var I_=n(3195),M_={attributes:{"data-cke":!0}};M_.setAttributes=os(),M_.insert=es().bind(null,"head"),M_.domAPI=Xr(),M_.insertStyleElement=rs();Qr()(I_.Z,M_);I_.Z&&I_.Z.locals&&I_.Z.locals;class T_ extends Kd{constructor(t,e){super(t);const n=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid"),e&&this.children.addMany(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",n.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:n.if("isCollapsed","hidden"),"aria-labelledby":n.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}_createButtonView(){const t=new xu(this.locale),e=t.bindTemplate;return t.set({withText:!0,icon:ju}),t.extendTemplate({attributes:{"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("label").to(this),t.bind("isOn").to(this,"isCollapsed",(t=>!t)),t.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),t}}var B_=n(7133),N_={attributes:{"data-cke":!0}};N_.setAttributes=os(),N_.insert=es().bind(null,"head"),N_.domAPI=Xr(),N_.insertStyleElement=rs();Qr()(B_.Z,N_);B_.Z&&B_.Z.locals&&B_.Z.locals;class z_ extends Kd{constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:o}){super(t);const i=["ck","ck-list-properties"];this.children=this.createCollection(),this.stylesView=null,this.additionalPropertiesCollapsibleView=null,this.startIndexFieldView=null,this.reversedSwitchButtonView=null,this.focusTracker=new Ha,this.keystrokes=new Ua,this.focusables=new qd,this.focusCycler=new zu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),e.styles?(this.stylesView=this._createStylesView(n,o),this.children.add(this.stylesView)):i.push("ck-list-properties_without-styles"),(e.startIndex||e.reversed)&&(this._addNumberedListPropertyViews(e,n),i.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:i},children:this.children})}render(){if(super.render(),this.stylesView){for(const t of this.stylesView.children)this.focusables.add(t),this.focusTracker.add(t.element);(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element))}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element),this.listenTo(this.startIndexFieldView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"});const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(t,e){const n=new Kd(this.locale);return n.children=n.createCollection(this.locale),n.children.addMany(t),n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children}),n.children.delegate("execute").to(this),n}_addNumberedListPropertyViews(t){const e=this.locale.t,n=[];t.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),n.push(this.startIndexFieldView)),t.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),n.push(this.reversedSwitchButtonView)),t.styles?(this.additionalPropertiesCollapsibleView=new T_(this.locale,n),this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t)))),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{n||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)})),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(n)}_createStartIndexField(){const t=this.locale.t,e=new Oh(this.locale,jh);return e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"}),e.fieldView.set({min:1,step:1,value:1,inputMode:"numeric"}),e.fieldView.on("input",(()=>{const n=e.fieldView.element,o=n.valueAsNumber;Number.isNaN(o)||(n.checkValidity()?this.fire("listStart",{startIndex:o}):e.errorText=t("Start index must be greater than 0."))})),e}_createReversedSwitchButton(){const t=this.locale.t,e=new Su(this.locale);return e.set({withText:!0,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),e.delegate("execute").to(this,"listReversed"),e}}var P_=n(4553),L_={attributes:{"data-cke":!0}};L_.setAttributes=os(),L_.insert=es().bind(null,"head"),L_.domAPI=Xr(),L_.insertStyleElement=rs();Qr()(P_.Z,L_);P_.Z&&P_.Z.locals&&P_.Z.locals;class O_ extends he{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor,e=t.locale.t,n=t.config.get("list.properties");n.styles&&t.ui.componentFactory.add("bulletedList",R_({editor:t,parentCommandName:"bulletedList",buttonLabel:e("Bulleted List"),buttonIcon:k_,styleGridAriaLabel:e("Bulleted list styles toolbar"),styleDefinitions:[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:''},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:''},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:''}]})),(n.styles||n.startIndex||n.reversed)&&t.ui.componentFactory.add("numberedList",R_({editor:t,parentCommandName:"numberedList",buttonLabel:e("Numbered List"),buttonIcon:f_,styleGridAriaLabel:e("Numbered list styles toolbar"),styleDefinitions:[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:''},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:''},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:''},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:''},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:''},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:''}]}))}}function R_({editor:t,parentCommandName:e,buttonLabel:n,buttonIcon:o,styleGridAriaLabel:i,styleDefinitions:r}){const s=t.commands.get(e);return a=>{const l=ph(a,Uu),c=l.buttonView;l.bind("isEnabled").to(s),l.class="ck-list-styles-dropdown",c.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),c.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),c.bind("isOn").to(s,"value",(t=>!!t));const d=function({editor:t,dropdownView:e,parentCommandName:n,styleDefinitions:o,styleGridAriaLabel:i}){const r=t.locale,s=t.config.get("list.properties");let a;"numberedList"!=n&&(s.startIndex=!1,s.reversed=!1);if(s.styles){const e=t.commands.get("listStyle"),i=function({editor:t,listStyleCommand:e,parentCommandName:n}){const o=t.locale,i=t.commands.get(n);return({label:n,type:r,icon:s,tooltip:a})=>{const l=new xu(o);return l.set({label:n,icon:s,tooltip:a}),e.on("change:value",(()=>{l.isOn=e.value===r})),l.on("execute",(()=>{i.value?e.value!==r?t.execute("listStyle",{type:r}):t.execute("listStyle",{type:e._defaultType}):t.model.change((()=>{t.execute("listStyle",{type:r})})),t.editing.view.focus()})),l}}({editor:t,parentCommandName:n,listStyleCommand:e}),r="function"==typeof e.isStyleTypeSupported?t=>e.isStyleTypeSupported(t.type):()=>!0;a=o.filter(r).map(i)}const l=new z_(r,{styleGridAriaLabel:i,enabledProperties:s,styleButtonViews:a});if(s.startIndex){const e=t.commands.get("listStart");l.startIndexFieldView.bind("isEnabled").to(e),l.startIndexFieldView.fieldView.bind("value").to(e),l.on("listStart",((e,n)=>t.execute("listStart",n)))}if(s.reversed){const e=t.commands.get("listReversed");l.reversedSwitchButtonView.bind("isEnabled").to(e),l.reversedSwitchButtonView.bind("isOn").to(e,"value"),l.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}return l.delegate("execute").to(e),l}({editor:t,dropdownView:l,parentCommandName:e,styleGridAriaLabel:i,styleDefinitions:r});return l.panelView.children.add(d),l}}function j_(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,o,i){if(!i.consumable.consume(o.item,n.name))return;const r=o.attributeNewValue,s=i.writer,a=i.mapper.toViewElement(o.item),l=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(l);const c=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),c)}}function V_(t,e,n,o){return t.createContainerElement("figure",{class:"media"},[e.getMediaViewElement(t,n,o),t.createSlot()])}function F_(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function H_(t,e,n,o){t.change((i=>{const r=i.createElement("media",{url:e});t.insertObject(r,n,null,{setSelection:"on",findOptimalPosition:o})}))}class U_ extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=F_(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=nf(t,e).start.parent;n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent);return e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,o=F_(n);o?e.change((e=>{e.setAttribute("url",t,o)})):H_(e,t,n,!0)}}class W_{constructor(t,e){const n=e.providers,o=e.extraProviders||[],i=new Set(e.removeProviders),r=n.concat(o).filter((t=>{const e=t.name;return e?!i.has(e):(c("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new G_(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,o=Mo(e.url);for(const e of o){const o=this._getUrlMatches(t,e);if(o)return new G_(this.locale,t,o,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let o=t.replace(/^https?:\/\//,"");return n=o.match(e),n||(o=o.replace(/^www\./,""),n=o.match(e),n||null)}}class G_{constructor(t,e,n,o){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=o}getViewElement(t,e){const n={};let o;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const i=this._getPreviewHtml(e);o=t.createRawElement("div",n,((t,e)=>{e.setContentOf(t,i)}))}else this.url&&(n.url=this.url),o=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,o),o}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Cu,e=new wu;t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42";return new $d({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}var q_=n(952),Z_={attributes:{"data-cke":!0}};Z_.setAttributes=os(),Z_.insert=es().bind(null,"head"),Z_.domAPI=Xr(),Z_.insertStyleElement=rs();Qr()(q_.Z,Z_);q_.Z&&q_.Z.locals&&q_.Z.locals;class Y_ extends he{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
    `},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
    `},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
    `},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
    `},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new W_(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion,i=t.config.get("mediaEmbed.previewsInData"),r=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new U_(t)),e.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]}),o.for("dataDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return V_(e,s,n,{elementName:r,renderMediaPreview:n&&i})}}),o.for("dataDowncast").add(j_(s,{elementName:r,renderMediaPreview:i})),o.for("editingDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const o=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),$p(t,e,{label:n})}(V_(e,s,o,{elementName:r,renderForEditingView:!0}),e,n("media widget"))}}),o.for("editingDowncast").add(j_(s,{elementName:r,renderForEditingView:!0})),o.for("upcast").elementToElement({view:t=>["oembed",r].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).add((t=>{t.on("element:figure",(function(t,e,n){if(!n.consumable.consume(e.viewItem,{name:!0,classes:"media"}))return;const{modelRange:o,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=o,e.modelCursor=i;Fa(o.getItems())||n.consumable.revert(e.viewItem,{name:!0,classes:"media"})}))}))}}const K_=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class $_ extends he{static get requires(){return[Mf,Gg,qf]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=cd.fromPosition(t.start);n.stickiness="toPrevious";const o=cd.fromPosition(t.end);o.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,o),n.detach(),o.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(hs.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,o=n.plugins.get(Y_).registry,i=new fl(t,e),r=i.getWalker({ignoreElementEnd:!0});let s="";for(const t of r)t.item.is("$textProxy")&&(s+=t.item.data);if(s=s.trim(),!s.match(K_))return void i.detach();if(!o.hasMedia(s))return void i.detach();n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=cd.fromPosition(t),this._timeoutId=hs.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(i),i.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),H_(n.model,s,e,!1),this._positionToInsert.detach(),this._positionToInsert=null})),n.plugins.get("Delete").requestUndoOnBackspace()}),100)):i.detach()}}var Q_=n(3525),J_={attributes:{"data-cke":!0}};J_.setAttributes=os(),J_.insert=es().bind(null,"head"),J_.domAPI=Xr(),J_.insertStyleElement=rs();Qr()(Q_.Z,J_);Q_.Z&&Q_.Z.locals&&Q_.Z.locals;class X_ extends Kd{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),Gd({view:this});[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}}class tC extends he{static get requires(){return[Y_]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(Y_).registry;t.ui.componentFactory.add("mediaEmbed",(o=>{const i=ph(o),r=new X_(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(i,r,e,t),this._setUpForm(i,r,e),i}))}_setUpDropdown(t,e,n){const o=this.editor,i=o.t,r=t.buttonView;function s(){o.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),r.set({label:i("Insert media"),icon:'',tooltip:!0}),r.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(o.execute("mediaEmbed",e.url),s())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>s()))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}var eC=n(5777),nC={attributes:{"data-cke":!0}};nC.setAttributes=os(),nC.insert=es().bind(null,"head"),nC.domAPI=Xr(),nC.insertStyleElement=rs();Qr()(eC.Z,nC);eC.Z&&eC.Z.locals&&eC.Z.locals;function oC(t,e){if(!t.childCount)return;const n=new Tm(t.document),o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),i=[];for(const t of n)if("elementStart"===t.type&&o.match(t.item)){const e=sC(t.item);i.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return i}(t,n);if(!o.length)return;let i=null,r=1;o.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;if(!n)return!0;return o=n,!(o.is("element","ol")||o.is("element","ul"));var o}(o[s-1],t),l=a?null:o[s-1],c=(u=t,(d=l)?u.indent-d.indent:u.indent-1);var d,u;if(a&&(i=null,r=1),!i||0!==c){const o=function(t,e){const n=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi"),o=/mso-level-number-format:([^;]{0,100});/gi,i=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,r=n.exec(e);let s="decimal",a="ol",l=null;if(r&&r[1]){const e=o.exec(r[1]);if(e&&e[1]&&(s=e[1].trim(),a="bullet"!==s&&"image"!==s?"ol":"ul"),"bullet"===s){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;if("o"===n)return"circle";if("·"===n)return"disc";if("§"===n)return"square";return null}(t.element);e&&(s=e)}else{const t=i.exec(r[1]);t&&t[1]&&(l=parseInt(t[1]))}}return{type:a,startIndex:l,style:iC(s)}}(t,e);if(i){if(t.indent>r){const t=i.getChild(i.childCount-1),e=t.getChild(t.childCount-1);i=rC(o,e,n),r+=1}else if(t.indent1&&n.setAttribute("start",t.startIndex,i),i}function sC(t){const e={},n=t.getStyle("mso-list");if(n){const t=n.match(/(^|\s{1,100})l(\d+)/i),o=n.match(/\s{0,100}lfo(\d+)/i),i=n.match(/\s{0,100}level(\d+)/i);t&&o&&i&&(e.id=t[2],e.order=o[1],e.indent=i[1])}return e}const aC=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class lC{constructor(t){this.document=t}isActive(t){return aC.test(t)}execute(t){const e=new Tm(this.document),{body:n}=t._parsedData;!function(t,e){for(const n of t.getChildren())if(n.is("element","b")&&"normal"===n.getStyle("font-weight")){const o=t.getChildIndex(n);e.remove(n),e.insertChild(o,n.getChildren(),t)}}(n,e),function(t,e){for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","li")){const n=t.getChild(0);n&&n.is("element","p")&&e.unwrapElement(n)}}}(n,e),t.content=n}}function cC(t,e){if(!t.childCount)return;const n=new Tm,o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n){if("elementStart"!=t.type)continue;const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;o.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&i.push(t.item.getAttribute("id"))}return i}(t,n);!function(t,e,n){const o=n.createRangeIn(e),i=new Uo({name:"img"}),r=[];for(const e of o)if(i.match(e.item)){const n=e.item,o=n.getAttribute("v:shapes")?n.getAttribute("v:shapes").split(" "):[];o.length&&o.every((e=>t.indexOf(e)>-1))?r.push(n):n.getAttribute("src")||r.push(n)}for(const t of r)n.remove(t)}(o,t,n),function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n)"elementStart"==t.type&&o.match(t.item)&&i.push(t.item);for(const t of i)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:"img"}),i=[];for(const t of n)o.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&i.push(t.item);return i}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let o=0;oString.fromCharCode(parseInt(t,16)))).join(""))}const uC=//i,hC=/xmlns:o="urn:schemas-microsoft-com/i;class mC{constructor(t){this.document=t}isActive(t){return uC.test(t)||hC.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;oC(e,n),cC(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function gC(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length)))}function pC(t,e){const n=new DOMParser,o=function(t){return gC(gC(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e="",n="",o=t.indexOf(e);if(o<0)return t;const i=t.indexOf(n,o+e.length);return t.substring(0,o+e.length)+(i>=0?t.substring(i):"")}(t=t.replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||s.includes("
    "))&&(s=`

    ${s}

    `),r=s),r=this.editor.data.htmlProcessor.toView(r));const a=new e(this,"inputTransformation");this.fire(a,{content:r,dataTransfer:i,targetRanges:n.targetRanges,method:n.method}),a.stop.called&&t.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,e)=>{if(e.content.isEmpty)return;const o=this.editor.data.toModel(e.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),n.change((()=>{this.fire("contentInsertion",{content:o,method:e.method,dataTransfer:e.dataTransfer,targetRanges:e.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=n.insertContent(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document;function o(o,i){const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:r,content:s,method:o.name})}this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():o(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Fp(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}class Up{constructor(){this._stack=[]}add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||Wp(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(Wp(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&Gp(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function Wp(t,e){return t&&e&&t.priority==e.priority&&qp(t.classes)==qp(e.classes)}function Gp(t,e){return t.priority>e.priority||!(t.priorityqp(e.classes)}function qp(t){return Array.isArray(t)?t.sort().join(","):t}ue(Up,k);const Zp='',Yp="ck-widget_selected";function Kp(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function $p(t,e,n={}){if(!t.is("containerElement"))throw new l("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=of,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new wu;return n.set("content",Zp),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),Xp(t,e),t}function Qp(t,e,n){if(e.classes&&n.addClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function Jp(t,e,n){if(e.classes&&n.removeClass(Mo(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function Xp(t,e,n=Qp,o=Jp){const i=new Up;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)})),e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function tf(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function ef(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),Xp(t,e),t}function nf(t,e){const n=t.getSelectedElement();if(n){const o=af(t);if(o)return e.createRange(e.createPositionAt(n,o))}return md(t,e)}function of(){return null}const rf="widget-type-around";function sf(t,e,n){return t&&Kp(t)&&!n.isInline(e)}function af(t){return t.getAttribute(rf)}var lf=n(5137),cf={attributes:{"data-cke":!0}};cf.setAttributes=os(),cf.insert=es().bind(null,"head"),cf.domAPI=Xr(),cf.insertStyleElement=rs();Qr()(lf.Z,cf);lf.Z&&lf.Z.locals&&lf.Z.locals;const df=["before","after"],uf=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,hf="ck-widget__type-around_disabled";class mf extends he{static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Ap,Gg]}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(hf,n):t.addClass(hf,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=af(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,i)=>{const r=i.mapper.toViewElement(n.item);sf(r,n.item,e)&&function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of df){const o=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n]},children:[t.ownerDocument.importNode(uf,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new $d({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(i.writer,o,r)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[Kp,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(sf(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(rf)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(df.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!sf(a,s,o))return;const l=af(e.selection);l&&(i.addClass(r(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(rf)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=pr(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;sf(l,n.editing.mapper.toModelElement(l),r)?c=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=af(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(rf,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(rf),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!sf(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(rf,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!sf(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(rf,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:sf(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:Kp})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[dr.enter,dr.delete,dr.backspace];this._listenToIfEnabled(t.document,"keydown",((t,n)=>{e.includes(n.keyCode)||Rg(n)||this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=af(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),l="forward"==s;if("before"===r===l)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:Kp})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=af(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),l=e.insertContent(o,a);return t.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=af(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;af(e)&&t.stop()}),{priority:"high"})}}function gf(t){const e=t.model;return(n,o)=>{const i=o.keyCode==dr.arrowup,r=o.keyCode==dr.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const l=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,l))return;const c=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=pf(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=ff(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=pf(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=ff(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(s)return}(c.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ea.getDomRangeRects(s);let l;for(const t of a)if(void 0!==l){if(Math.round(t.top)>=l)return!1;l=Math.max(l,Math.round(t.bottom))}else l=Math.round(t.bottom);return!0}(t,c,l))&&(e.change((t=>{const n=l?c.end:c.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function pf(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function ff(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var kf=n(6507),bf={attributes:{"data-cke":!0}};bf.setAttributes=os(),bf.insert=es().bind(null,"head"),bf.domAPI=Xr(),bf.insertStyleElement=rs();Qr()(kf.Z,bf);kf.Z&&kf.Z.locals&&kf.Z.locals;class wf extends he{static get pluginName(){return"Widget"}static get requires(){return[mf,Gg]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);Kp(a)&&o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:tf(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;Kp(t)&&!Af(t,r)&&(o.addClass(Yp,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(Mm),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[Kp,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",gf(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,i=o.document;let r=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Kp(t))return!1;t=t.parent}return!1}(r)){if((sr.isSafari||sr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,o=r.is("attributeElement")?r.findAncestor((t=>!t.is("attributeElement"))):r,i=t.toModelElement(o);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(i,"in")}))}return}if(!Kp(r)&&(r=r.findAncestor(Kp),!r))return;sr.isAndroid&&e.preventDefault(),i.isFocused||o.focus();const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=pr(n,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(s&&i.isObject(s)){const n=l?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,l?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,c=s.nodeBefore;return void((a&&i.isObject(a)||c&&i.isObject(c))&&(o.change((t=>{t.setSelection(l?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(l);if(d&&i.isObject(d)){if(i.isInline(d)&&c)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(Yp,e);this._previouslySelected.clear()}}function Af(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}const _f=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return x(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),ga(t,e,{leading:o,maxWait:e,trailing:i})};var Cf=n(390),vf={attributes:{"data-cke":!0}};vf.setAttributes=os(),vf.insert=es().bind(null,"head"),vf.domAPI=Xr(),vf.insertStyleElement=rs();Qr()(Cf.Z,vf);Cf.Z&&Cf.Z.locals&&Cf.Z.locals;class yf extends he{static get pluginName(){return"DragDrop"}static get requires(){return[Hp,wf]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=_f((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=Df((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=Df((()=>this._clearDraggableAttributes()),40),e.addObserver(Vp),e.addObserver(Mm),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),sr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,o=t.editing.view,i=o.document;this.listenTo(i,"dragstart",((o,s)=>{const a=n.selection;if(s.target&&s.target.is("editableElement"))return void s.preventDefault();const l=s.target?If(s.target):null;if(l){const n=t.editing.mapper.toModelElement(l);this._draggedRange=fl.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!i.selection.isCollapsed){const t=i.selection.getSelectedElement();t&&Kp(t)||(this._draggedRange=fl.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void s.preventDefault();this._draggingUid=r(),s.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",s.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const c=e.createSelection(this._draggedRange.toRange()),d=t.data.toView(e.getSelectedContent(c));i.fire("clipboardOutput",{dataTransfer:s.dataTransfer,content:d,method:o.name}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const o=xf(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),sr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),o&&this._updateDropMarkerThrottled(o)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const o=xf(t,n.targetRanges,n.target);if(this._removeDropMarker(),!o)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Ef(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(o,!0))return this._finalizeDragging(!1),void e.stop();n.targetRanges=[t.editing.mapper.toViewRange(o)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(Hp);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==Ef(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,i)=>{if(sr.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let r=If(i.target);if(sr.isBlink&&!t.isReadOnly&&!r&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&Kp(t)||(r=n.selection.editableElement)}r&&(e.change((t=>{t.setAttribute("draggable","true",r)})),this._draggableElement=t.editing.mapper.toModelElement(r))})),this.listenTo(n,"mouseup",(()=>{sr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.innerHTML="⁠⁠",e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function xf(t,e,n){const o=t.model,i=t.editing.mapper;let r=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),r=function(t,e){const n=t.model,o=t.editing.mapper;if(Kp(e))return n.createRangeOn(o.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>Kp(t)||t.is("editableElement")));if(Kp(t))return n.createRangeOn(o.toModelElement(t))}return null}(t,n),r)return r;const a=function(t,e){const n=t.editing.mapper,o=t.editing.view,i=n.toModelElement(e);if(i)return i;const r=o.createPositionBefore(e),s=n.findMappedViewAncestor(r);return n.toModelElement(s)}(t,n),l=s?i.toModelPosition(s):null;return l?(r=function(t,e,n){const o=t.model;if(!o.schema.checkChild(n,"$block"))return null;const i=o.createPositionAt(n,0),r=e.path.slice(0,i.path.length),s=o.createPositionFromPath(e.root,r).nodeAfter;if(s&&o.schema.isObject(s))return o.createRangeOn(s);return null}(t,l,a),r||(r=o.schema.getNearestSelectionRange(l,sr.isGecko?"forward":"backward"),r||function(t,e){const n=t.model;for(;e;){if(n.schema.isObject(e))return n.createRangeOn(e);e=e.parent}}(t,l.parent))):function(t,e){const n=t.model,o=n.schema,i=n.createPositionAt(e,0);return o.getNearestSelectionRange(i,"forward")}(t,a)}function Ef(t){return sr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function Df(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function If(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(Kp);if(Kp(t))return t;const e=t.findAncestor((t=>Kp(t)||t.is("editableElement")));return Kp(e)?e:null}class Sf extends he{static get pluginName(){return"PastePlainText"}static get requires(){return[Hp]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(Vp),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(Hp).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==[...n.getAttributeKeys()].length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class Mf extends he{static get pluginName(){return"Clipboard"}static get requires(){return[Hp,yf,Sf]}}class Tf extends ge{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!Bf(t.schema,n))do{if(n=n.parent,!n)return}while(!Bf(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function Bf(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const Nf=mr("Ctrl+A");class zf extends he{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new Tf(t)),this.listenTo(e,"keydown",((e,n)=>{hr(n)===Nf&&(t.execute("selectAll"),n.preventDefault())}))}}class Pf extends he{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),o=new xu(e),i=e.t;return o.set({label:i("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),o.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(o,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),o}))}}class Lf extends he{static get requires(){return[zf,Pf]}static get pluginName(){return"SelectAll"}}class Of extends ge{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!Vf(t,a)));e.length&&(Rf(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=Cm([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const i of s)e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}function Rf(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class jf extends Of{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,o)})),this.refresh()}}class Ff extends Of{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class Hf extends he{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new jf(t),this._redoCommand=new Ff(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand._createdBatches.has(o),r=this._undoCommand._createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}const Uf='',Wf='';class Gf extends he{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Uf:Wf,i="ltr"==e.uiLanguageDirection?Wf:Uf;this._addButton("undo",n("Undo"),"CTRL+Z",o),this._addButton("redo",n("Redo"),"CTRL+Y",i)}_addButton(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const s=i.commands.get(t),a=new xu(r);return a.set({label:e,icon:o,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{i.execute(t),i.editing.view.focus()})),a}))}}class qf extends he{static get requires(){return[Hf,Gf]}static get pluginName(){return"Undo"}}class Zf extends ge{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute(this.attributeKey),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=t.value;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,o):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}}class Yf extends Io{constructor(t){super(t),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(t,e){this.find((e=>e.color===t.color))||super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}ue(Yf,re);var Kf=n(2585),$f={attributes:{"data-cke":!0}};$f.setAttributes=os(),$f.insert=es().bind(null,"head"),$f.domAPI=Xr(),$f.insertStyleElement=rs();Qr()(Kf.Z,$f);Kf.Z&&Kf.Z.locals&&Kf.Z.locals;class Qf extends Kd{constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){super(t),this.items=this.createCollection(),this.colorDefinitions=e,this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("selectedColor"),this.removeButtonLabel=o,this.columns=n,this.documentColors=new Yf,this.documentColorsCount=r,this._focusCycler=new zu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-table"]},children:this.items}),this.items.add(this._removeColorButton())}updateDocumentColors(t,e){const n=t.document,o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRootNames()){const r=n.getRoot(i),s=t.createRangeIn(r);for(const t of s.getItems())if(t.is("$textProxy")&&t.hasAttribute(e)&&(this._addColorToDocumentColors(t.getAttribute(e)),this.documentColors.length>=o))return}}updateSelectedColors(){const t=this.documentColorsGrid,e=this.staticColorsGrid,n=this.selectedColor;e.selectedColor=n,t&&(t.selectedColor=n)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendGrids(){if(!this.staticColorsGrid&&(this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount)){const t=$d.bind(this.documentColors,this.documentColors),e=new vh(this.locale);e.text=this._documentColorsLabel,e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}}),this.items.add(e),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_removeColorButton(){const t=new xu;return t.set({withText:!0,icon:Hd.eraser,tooltip:!0,label:this.removeButtonLabel}),t.class="ck-color-table__remove-color",t.on("execute",(()=>{this.fire("execute",{value:null})})),t}_createStaticColorsGrid(){const t=new Ru(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return t.delegate("execute").to(this),t}_createDocumentColorsGrid(){const t=$d.bind(this.documentColors,this.documentColors),e=new Ru(this.locale,{columns:this.columns});return e.delegate("execute").to(this),e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}}),e.items.bindTo(this.documentColors).using((t=>{const e=new Bu;return e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder}),t.label&&e.set({label:t.label,tooltip:!0}),e.on("execute",(()=>{this.fire("execute",{value:t.color})})),e})),this.documentColors.on("change:isEmpty",((t,n,o)=>{o&&(e.selectedColor=null)})),e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));e?this.documentColors.add(Object.assign({},e)):this.documentColors.add({color:t,label:t,options:{hasBorder:!1}})}}const Jf="fontSize",Xf="fontFamily",tk="fontColor";function ek(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e)n.model.values.push(t.model),n.view[t.model]=t.view,t.upcastAlso&&(n.upcastAlso[t.model]=t.upcastAlso);return n}function nk(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}class ok extends Zf{constructor(t){super(t,tk)}}class ik extends he{static get pluginName(){return"FontColorEditing"}constructor(t){var e;super(t),t.config.define(tk,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:tk,value:(e="color",t=>t.getStyle(e).replace(/\s/g,""))}}),t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:tk,value:t=>t.getAttribute("color")}}),t.conversion.for("downcast").attributeToElement({model:tk,view:nk("color")}),t.commands.add(tk,new ok(t)),t.model.schema.extend("$text",{allowAttributes:tk}),t.model.schema.setAttributeProperties(tk,{isFormatting:!0,copyOnEnter:!0})}}class rk extends he{constructor(t,{commandName:e,icon:n,componentName:o,dropdownLabel:i}){super(t),this.commandName=e,this.componentName=o,this.icon=n,this.dropdownLabel=i,this.columns=t.config.get(`${this.componentName}.columns`),this.colorTableView=void 0}init(){const t=this.editor,e=t.locale,n=e.t,o=t.commands.get(this.commandName),i=Su(e,Mu(t.config.get(this.componentName).colors)),r=t.config.get(`${this.componentName}.documentColors`);t.ui.componentFactory.add(this.componentName,(e=>{const s=ph(e);return this.colorTableView=function({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){const s=t.locale,a=new Qf(s,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r});return t.colorTableView=a,t.panelView.children.add(a),a.delegate("execute").to(t,"execute"),a}({dropdownView:s,colors:i.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),documentColorsLabel:0!==r?n("Document colors"):void 0,documentColorsCount:void 0===r?this.columns:r}),this.colorTableView.bind("selectedColor").to(o,"value"),s.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:!0}),s.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}}),s.bind("isEnabled").to(o),s.on("execute",((e,n)=>{t.execute(this.commandName,n),t.editing.view.focus()})),s.on("change:isOpen",((e,n,o)=>{s.colorTableView.appendGrids(),o&&(0!==r&&this.colorTableView.updateDocumentColors(t.model,this.componentName),this.colorTableView.updateSelectedColors())})),s}))}}class sk extends rk{constructor(t){const e=t.locale.t;super(t,{commandName:tk,componentName:tk,icon:'',dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class ak extends Zf{constructor(t){super(t,Xf)}}function lk(t){return t.map(ck).filter((t=>!!t))}function ck(t){return"object"==typeof t?t:"default"===t?{title:"Default",model:void 0}:"string"==typeof t?function(t){const e=t.replace(/"|'/g,"").split(","),n=e[0],o=e.map(dk).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}(t):void 0}function dk(t){return(t=t.trim()).indexOf(" ")>0&&(t=`'${t}'`),t}class uk extends he{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t),t.config.define(Xf,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Xf}),t.model.schema.setAttributeProperties(Xf,{isFormatting:!0,copyOnEnter:!0});const e=lk(t.config.get("fontFamily.options")).filter((t=>t.model)),n=ek(Xf,e);t.config.get("fontFamily.supportAllValues")?(this._prepareAnyValueConverters(),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(n),t.commands.add(Xf,new ak(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:Xf,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})}),t.conversion.for("upcast").elementToAttribute({model:{key:Xf,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:Xf,value:t=>t.getAttribute("face")}})}}class hk extends he{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Xf);t.ui.componentFactory.add(Xf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new Io;for(const o of t){const t={type:"button",model:new Hh({commandName:Xf,commandParam:o.model,label:o.title,withText:!0})};t.model.bind("isOn").to(e,"value",(t=>t===o.model||!(!t||!o.model)&&t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase())),o.view&&o.view.styles&&t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Family"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:"ck-font-family-dropdown"}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t;return lk(t.config.get(Xf).options).map((t=>("Default"===t.title&&(t.title=e("Default")),t)))}}class mk extends Zf{constructor(t){super(t,Jf)}}function gk(t){return t.map((t=>function(t){if(e=t,"object"==typeof e&&e.title&&e.model&&e.view)return fk(t);var e;const n=function(t){return pk[t]||pk[t.model]}(t);if(n)return fk(n);if("default"===t)return{model:void 0,title:"Default"};if(function(t){let e;if("object"==typeof t){if(!t.model)throw new l("font-size-invalid-definition",null,t);e=parseFloat(t.model)}else e=parseFloat(t);return isNaN(e)}(t))return;return function(t){"number"!=typeof t&&"string"!=typeof t||(t={title:String(t),model:`${parseFloat(t)}px`});return t.view={name:"span",styles:{"font-size":t.model}},fk(t)}(t)}(t))).filter((t=>!!t))}const pk={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function fk(t){return t.view.priority||(t.view.priority=7),t}const kk=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class bk extends he{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t),t.config.define(Jf,{options:["tiny","small","default","big","huge"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Jf}),t.model.schema.setAttributeProperties(Jf,{isFormatting:!0,copyOnEnter:!0});const e=t.config.get("fontSize.supportAllValues"),n=gk(this.editor.config.get("fontSize.options")).filter((t=>t.model)),o=ek(Jf,n);e?(this._prepareAnyValueConverters(o),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(o),t.commands.add(Jf,new mk(t))}_prepareAnyValueConverters(t){const e=this.editor,n=t.model.values.filter((t=>!Hm(String(t))&&!Wm(String(t))));if(n.length)throw new l("font-size-invalid-use-of-named-presets",null,{presets:n});e.conversion.for("downcast").attributeToElement({model:Jf,view:(t,{writer:e})=>{if(t)return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}}),e.conversion.for("upcast").elementToAttribute({model:{key:Jf,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:Jf,value:t=>{const e=t.getAttribute("size"),n="-"===e[0]||"+"===e[0];let o=parseInt(e,10);n&&(o=3+o);const i=kk.length-1,r=Math.min(Math.max(o,0),i);return kk[r]}}})}}var wk=n(6203),Ak={attributes:{"data-cke":!0}};Ak.setAttributes=os(),Ak.insert=es().bind(null,"head"),Ak.domAPI=Xr(),Ak.insertStyleElement=rs();Qr()(wk.Z,Ak);wk.Z&&wk.Z.locals&&wk.Z.locals;class _k extends he{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(Jf);t.ui.componentFactory.add(Jf,(i=>{const r=ph(i);return kh(r,function(t,e){const n=new Io;for(const o of t){const t={type:"button",model:new Hh({commandName:Jf,commandParam:o.model,label:o.title,class:"ck-fontsize-option",withText:!0})};o.view&&o.view.styles&&t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`),o.view&&o.view.classes&&t.model.set("class",`${t.model.class} ${o.view.classes}`),t.model.bind("isOn").to(e,"value",(t=>t===o.model)),n.add(t)}return n}(n,o)),r.buttonView.set({label:e("Font Size"),icon:'',tooltip:!0}),r.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}}),r.bind("isEnabled").to(o),this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),r}))}_getLocalizedOptions(){const t=this.editor,e=t.t,n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};return gk(t.config.get(Jf).options).map((t=>{const e=n[t.title];return e&&e!=t.title&&(t=Object.assign({},t,{title:e})),t}))}}class Ck extends ge{refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&vk(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((o=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i)!t.is("element","paragraph")&&vk(t,e.schema)&&o.rename(t,"paragraph")}))}}function vk(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class yk extends ge{execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.change((t=>{const i=t.createElement("paragraph");if(n&&e.schema.setAllowedAttributes(i,n,t),!e.schema.checkChild(o.parent,i)){const n=e.schema.findAllowedParent(o,i);if(!n)return;o=t.split(o,n).position}e.insertContent(i,o),t.setSelection(i,"in")}))}}class xk extends he{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Ck(t)),t.commands.add("insertParagraph",new yk(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>xk.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}xk.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class Ek extends ge{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Dk(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Dk(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function Dk(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const Ik="paragraph";class Sk extends he{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[xk]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)o.model!==Ik&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new Ek(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",Ik)&&0===i.childCount&&o.writer.rename(i,Ik)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:s.get("low")+1})}}var Mk=n(3230),Tk={attributes:{"data-cke":!0}};Tk.setAttributes=os(),Tk.insert=es().bind(null,"head"),Tk.domAPI=Xr(),Tk.insertStyleElement=rs();Qr()(Mk.Z,Tk);Mk.Z&&Mk.Z.locals&&Mk.Z.locals;class Bk extends he{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new Io,a=t.commands.get("heading"),l=t.commands.get("paragraph"),c=[a];for(const t of n){const e={type:"button",model:new Hh({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),c.push(l)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=ph(e);return kh(d,s),d.buttonView.set({isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",l,"value",((t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:o})),this.listenTo(d,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),d}))}}class Nk extends he{static get requires(){return[em]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Kp(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void c("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new nh(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new l("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,r.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:o,balloonClassName:i})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?zk(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Pk(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);zk(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function zk(t,e){const n=t.plugins.get("ContextualBalloon"),o=Pk(t,e);n.updatePosition(o)}function Pk(t,e){const n=t.editing.view,o=Yh.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class Lk{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,n){const o=new Ea(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains(Ok(n)))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ea(t),o=e.split("-"),i={x:"right"==o[1]?n.right:n.left,y:"bottom"==o[0]?n.bottom:n.top};return i.x+=t.ownerDocument.defaultView.scrollX,i.y+=t.ownerDocument.defaultView.scrollY,i}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=o.width,this.originalHeight=o.height,this.aspectRatio=o.width/o.height;const i=n.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this.originalWidthPercents=parseFloat(i):this.originalWidthPercents=function(t,e){const n=t.parentElement,o=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);return e.width/o*100}(n,o)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}function Ok(t){return`ck-widget__resizer__handle-${t}`}ue(Lk,re);class Rk extends Kd{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,o)=>"px"===t.unit?`${e}×${n}`:`${o}%`)),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class Vk{constructor(t){this._options=t,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"}),this.on("change:isEnabled",(()=>{this.isEnabled&&this.redraw()}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const o=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),t.on("change:isEnabled",((t,e,o)=>{n.style.display=o?"":"none"})),n.style.display=t.isEnabled?"":"none",n}));n.insert(n.createPositionAt(e,"end"),o),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=o}))}begin(t){this.state=new Lk(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",o=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",o,this._options.viewElement)}));const n=this._getHandleHost(),o=new Ea(n);e.handleHostWidth=Math.round(o.width),e.handleHostHeight=Math.round(o.height);const i=new Ea(n);e.width=Math.round(i.width),e.height=Math.round(i.height),this.redraw(o),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const o=e.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(o.isSameNode(i)){const e=t||new Ea(i);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==Oo(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(o=t).pageX,y:o.pageY};var o;const i=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};i&&e.activeHandlePosition.endsWith("-right")&&(r.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),i&&(r.x*=2);const s={width:Math.abs(e.originalWidth+r.x),height:Math.abs(e.originalHeight+r.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)t.appendChild(new $d({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=o,`ck-widget__resizer__handle-${n}`)}}).render());var n}_appendSizeUI(t){this._sizeView=new Rk,this._sizeView.render(),t.appendChild(this._sizeView.element)}}ue(Vk,re);var jk=n(2263),Fk={attributes:{"data-cke":!0}};Fk.setAttributes=os(),Fk.insert=es().bind(null,"head"),Fk.domAPI=Xr(),Fk.insertStyleElement=rs();Qr()(jk.Z,Fk);jk.Z&&jk.Z.locals&&jk.Z.locals;class Hk extends he{static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=hs.window.document;this.set("visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map,t.view.addObserver(Mm),this._observer=Object.create(Ds),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));const n=()=>{this.visibleResizer&&this.visibleResizer.redraw()};this._redrawFocusedResizerThrottled=_f(n,200),this.on("change:visibleResizer",n),this.editor.ui.on("update",this._redrawFocusedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(hs.window,"resize",this._redrawFocusedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const t=o.getSelectedElement();this.visibleResizer=this.getResizerByViewElement(t)||null}))}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawFocusedResizerThrottled.cancel()}attachTo(t){const e=new Vk(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const o=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(o)==e&&(this.visibleResizer=e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;Vk.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n),this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}ue(Hk,re);class Uk extends ge{refresh(){const t=this.editor.model,e=t.schema,n=t.document.selection;this.isEnabled=function(t,e,n){const o=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,n);return e.checkChild(o,"horizontalLine")}(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}var Wk=n(2536),Gk={attributes:{"data-cke":!0}};Gk.setAttributes=os(),Gk.insert=es().bind(null,"head"),Gk.domAPI=Xr(),Gk.insertStyleElement=rs();Qr()(Wk.Z,Gk);Wk.Z&&Wk.Z.locals&&Wk.Z.locals;class qk extends he{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"}),o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")}),o.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line"),i=e.createContainerElement("div",null,e.createEmptyElement("hr"));return e.addClass("ck-horizontal-line",i),e.setCustomProperty("hr",!0,i),function(t,e,n){return e.setCustomProperty("horizontalLine",!0,t),$p(t,e,{label:n})}(i,e,o)}}),o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),t.commands.add("horizontalLine",new Uk(t))}}class Zk extends he{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("horizontalLine",(n=>{const o=t.commands.get("horizontalLine"),i=new xu(n);return i.set({label:e("Horizontal line"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("horizontalLine"),t.editing.view.focus()})),i}))}}class Yk extends ge{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}function Kk(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot()])}function $k(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function Qk(t,e){const n=Fa(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Jk extends he{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const o=this.editor,i=o.model,r=i.document.selection;n=Xk(o,e||r,n),t={...Object.fromEntries(r.getAttributes()),...t};for(const e in t)i.schema.checkAttribute(n,e)||delete t[e];return i.change((o=>{const r=o.createElement(n,t);return i.insertObject(r,e,null,{setSelection:"on",findOptimalPosition:!e&&"imageInline"!=n}),r.parent?r:null}))}getClosestSelectedImageWidget(t){const e=t.getSelectedElement();if(e&&this.isImageWidget(e))return e;let n=t.getFirstPosition().parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Xk(t,e)){const n=function(t,e){const n=nf(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return $p(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&Kp(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Xk(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"block"===i?"imageBlock":e.is("selection")?Qk(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class tb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Yk(this.editor))}}var eb=n(6831),nb={attributes:{"data-cke":!0}};nb.setAttributes=os(),nb.insert=es().bind(null,"head"),nb.domAPI=Xr(),nb.insertStyleElement=rs();Qr()(eb.Z,nb);eb.Z&&eb.Z.locals&&eb.Z.locals;var ob=n(1590),ib={attributes:{"data-cke":!0}};ib.setAttributes=os(),ib.insert=es().bind(null,"head"),ib.domAPI=Xr(),ib.insertStyleElement=rs();Qr()(ob.Z,ib);ob.Z&&ob.Z.locals&&ob.Z.locals;class rb extends Kd{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Gd({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Text alternative"),e}}function sb(t){const e=t.editing.view,n=Yh.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.viewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class ab extends he{static get requires(){return[em]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new xu(n);return i.set({label:e("Change image text alternative"),icon:Hd.lowVision,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new rb(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=sb(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Ud({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:sb(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class lb extends he{static get requires(){return[tb,ab]}static get pluginName(){return"ImageTextAlternative"}}function cb(t,e){return t=>{t.on(`attribute:srcset:${e}`,n)};function n(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s),t.width&&i.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(i.setAttribute("srcset",t.data,s),i.setAttribute("sizes","100vw",s),t.width&&i.setAttribute("width",t.width,s))}}}function db(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,o)};function o(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class ub extends Ms{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class hb extends ge{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&c("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&c("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=Mo(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class mb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(ub),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new hb(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class gb extends ge{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(e.document.selection),i=Object.fromEntries(o.getAttributes());return i.src||i.uploadId?e.change((t=>{const r=Array.from(e.markers).filter((t=>t.getRange().containsItem(o))),s=n.insertImage(i,e.createSelection(o,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of r){const n=e.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:o})}return{oldElement:o,newElement:s}})):null}}class pb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new gb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>Kk(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget(Kk(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageBlock","src")).add(db(o,"imageBlock","alt")).add(cb(o,"imageBlock")),n.for("upcast").elementToElement({view:$k(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,o){if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Fa(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageBlock"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}}))}}var fb=n(9048),kb={attributes:{"data-cke":!0}};kb.setAttributes=os(),kb.insert=es().bind(null,"head"),kb.domAPI=Xr(),kb.insertStyleElement=rs();Qr()(fb.Z,kb);fb.Z&&fb.Z.locals&&fb.Z.locals;class bb extends he{static get requires(){return[pb,wf,lb]}static get pluginName(){return"ImageBlock"}}class wb extends he{static get requires(){return[mb,Jk,Hp]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new gb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(db(o,"imageInline","src")).add(db(o,"imageInline","alt")).add(cb(o,"imageInline")),n.for("upcast").elementToElement({view:$k(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageInline"===Qk(e.schema,l)){const t=new Tm(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}}))}}class Ab extends he{static get requires(){return[wb,wf,lb]}static get pluginName(){return"ImageInline"}}class _b extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils").getClosestSelectedImageElement(t.model.document.selection);this.isEnabled=!!e,e&&e.hasAttribute("width")?this.value={width:e.getAttribute("width"),height:null}:this.value=null}execute(t){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(n.document.selection);this.value={width:t.width,height:null},o&&n.change((e=>{e.setAttribute("width",t.width,o)}))}}class Cb extends he{static get requires(){return[Jk]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t),t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor,e=new _b(t);this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline"),t.commands.add("resizeImage",e),t.commands.add("imageResize",e)}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:"width"}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:"width"})}_registerConverters(t){const e=this.editor;e.conversion.for("downcast").add((e=>e.on(`attribute:width:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewElement(e.item);null!==e.attributeNewValue?(o.setStyle("width",e.attributeNewValue,i),o.addClass("image_resized",i)):(o.removeStyle("width",i),o.removeClass("image_resized",i))})))),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{width:/.+/}},model:{key:"width",value:t=>t.getStyle("width")}})}}const vb={small:Hd.objectSizeSmall,medium:Hd.objectSizeMedium,large:Hd.objectSizeLarge,original:Hd.objectSizeFull};class yb extends he{static get requires(){return[Cb]}static get pluginName(){return"ImageResizeButtons"}constructor(t){super(t),this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor,e=t.config.get("image.resizeOptions"),n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e)this._registerImageResizeButton(t);this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor,{name:n,value:o,icon:i}=t,r=o?o+this._resizeUnit:null;e.ui.componentFactory.add(n,(n=>{const o=new xu(n),s=e.commands.get("resizeImage"),a=this._getOptionLabelValue(t,!0);if(!vb[i])throw new l("imageresizebuttons-missing-icon",e,t);return o.set({label:a,icon:vb[i],tooltip:a,isToggleable:!0}),o.bind("isEnabled").to(this),o.bind("isOn").to(s,"value",xb(r)),this.listenTo(o,"execute",(()=>{e.execute("resizeImage",{width:r})})),o}))}_registerImageResizeDropdown(t){const e=this.editor,n=e.t,o=t.find((t=>!t.value)),i=i=>{const r=e.commands.get("resizeImage"),s=ph(i,ju),a=s.buttonView;return a.set({tooltip:n("Resize image"),commandValue:o.value,icon:vb.medium,isToggleable:!0,label:this._getOptionLabelValue(o),withText:!0,class:"ck-resize-image-button"}),a.bind("label").to(r,"value",(t=>t&&t.width?t.width:this._getOptionLabelValue(o))),s.bind("isOn").to(r),s.bind("isEnabled").to(this),kh(s,this._getResizeDropdownListItemDefinitions(t,r)),s.listView.ariaLabel=n("Image resize list"),this.listenTo(s,"execute",(t=>{e.execute(t.source.commandName,{width:t.source.commandValue}),e.editing.view.focus()})),s};e.ui.componentFactory.add("resizeImage",i),e.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(t,e){const n=this.editor.t;return t.label?t.label:e?t.value?n("Resize image to %0",t.value+this._resizeUnit):n("Resize image to the original size"):t.value?t.value+this._resizeUnit:n("Original")}_getResizeDropdownListItemDefinitions(t,e){const n=new Io;return t.map((t=>{const o=t.value?t.value+this._resizeUnit:null,i={type:"button",model:new Hh({commandName:"resizeImage",commandValue:o,label:this._getOptionLabelValue(t),withText:!0,icon:null})};i.model.bind("isOn").to(e,"value",xb(o)),n.add(i)})),n}}function xb(t){return e=>null===t&&e===t||e&&e.width===t}const Eb=/(image|image-inline)/,Db="image_resized";class Ib extends he{static get requires(){return[Hk]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t),this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor,e=t.editing.view;e.addObserver(ub),this.listenTo(e.document,"imageLoaded",((n,o)=>{if(!o.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const i=t.editing.view.domConverter,r=i.domToView(o.target).findAncestor({classes:Eb});let s=this.editor.plugins.get(Hk).getResizerByViewElement(r);if(s)return void s.redraw();const a=t.editing.mapper,l=a.toModelElement(r);s=t.plugins.get(Hk).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:l,viewElement:r,editor:t,getHandleHost:t=>t.querySelector("img"),getResizeHost:()=>i.viewToDom(a.toViewElement(l.parent)),isCentered(){const t=l.getAttribute("imageStyle");return!t||"block"==t||"alignCenter"==t},onCommit(n){e.change((t=>{t.removeClass(Db,r)})),t.execute("resizeImage",{width:n})}}),s.on("updateSize",(()=>{r.hasClass(Db)||e.change((t=>{t.addClass(Db,r)}))})),s.bind("isEnabled").to(this)}))}}var Sb=n(1043),Mb={attributes:{"data-cke":!0}};Mb.setAttributes=os(),Mb.insert=es().bind(null,"head"),Mb.domAPI=Xr(),Mb.insertStyleElement=rs();Qr()(Sb.Z,Mb);Sb.Z&&Sb.Z.locals&&Sb.Z.locals;class Tb extends ge{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value;let r=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,r)&&(this.editor.execute(o.isBlockImage(r)?"imageTypeInline":"imageTypeBlock"),r=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",r):e.setAttribute("imageStyle",i,r)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:Bb,objectInline:Nb,objectLeft:zb,objectRight:Pb,objectCenter:Lb,objectBlockLeft:Ob,objectBlockRight:Rb}=Hd,Vb={get inline(){return{name:"inline",title:"In line",icon:Nb,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:zb,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Ob,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Lb,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Pb,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Rb,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Lb,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Pb,modelElements:["imageBlock"],className:"image-style-side"}}},jb={full:Bb,left:Ob,right:Rb,center:Lb,inlineLeft:zb,inlineRight:Pb,inline:Nb},Fb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Hb(t){c("image-style-configuration-definition-invalid",t)}const Ub={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?Vb[t]?{...Vb[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(Vb[t.name],t);"string"==typeof t.icon&&(t.icon=jb[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Hb({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return c("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Fb]:[]},warnInvalidStyle:Hb,DEFAULT_OPTIONS:Vb,DEFAULT_ICONS:jb,DEFAULT_DROPDOWN_DEFINITIONS:Fb};function Wb(t,e){for(const n of e)if(n.name===t)return n}class Gb extends he{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Jk]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Ub,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Tb(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=Wb(e.attributeNewValue,r),i=Wb(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Fa(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Jk),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var qb=n(4622),Zb={attributes:{"data-cke":!0}};Zb.setAttributes=os(),Zb.insert=es().bind(null,"head"),Zb.domAPI=Xr(),Zb.insertStyleElement=rs();Qr()(qb.Z,Zb);qb.Z&&qb.Z.locals&&qb.Z.locals;class Yb extends he{static get requires(){return[Gb]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Kb(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=Kb([...e.filter(x),...Ub.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,l=s.filter((t=>e.find((({name:e})=>$b(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==l.length&&Ub.warnInvalidStyle({dropdown:t});const c=ph(o,Uu),d=c.buttonView;return fh(c,l),d.set({label:Qb(a,i.label),class:null,tooltip:!0}),d.bind("icon").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return e<0?i.icon:l[e].icon})),d.bind("label").toMany(l,"isOn",((...t)=>{const e=t.findIndex(st);return Qb(a,e<0?i.label:l[e].label)})),d.bind("isOn").toMany(l,"isOn",((...t)=>t.some(st))),d.bind("class").toMany(l,"isOn",((...t)=>t.some(st)?"ck-splitbutton_flatten":null)),d.on("execute",(()=>{l.some((({isOn:t})=>t))?c.isOpen=!c.isOpen:i.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some(st))),c}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add($b(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new xu(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Kb(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function $b(t){return`imageStyle:${t}`}function Qb(t,e){return(t?t+": ":"")+e}class Jb{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{o("error")},e.onabort=()=>{o("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}ue(Jb,re);class Xb extends he{static get pluginName(){return"FileRepository"}static get requires(){return[jd]}init(){this.loaders=new Io,this.loaders.on("add",(()=>this._updatePendingAction())),this.loaders.on("remove",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return c("filerepository-no-upload-adapter"),null;const e=new tw(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof tw?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(jd);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}ue(Xb,re);class tw{constructor(t,e){this.id=r(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new Jb,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new l("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new l("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,o)=>{e.rejecter=o,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,o(t)}))})),e}}ue(tw,re);class ew extends Kd{constructor(t){super(t),this.buttonView=new xu(t),this._fileInputView=new nw(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class nw extends Kd{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class ow{constructor(t,e){this.loader=t,this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.options.uploadUrl,!0),t.responseType="json"}_initListeners(t,e,n){const o=this.xhr,i=this.loader,r=`Couldn't upload file: ${n.name}.`;o.addEventListener("error",(()=>e(r))),o.addEventListener("abort",(()=>e())),o.addEventListener("load",(()=>{const n=o.response;if(!n||n.error)return e(n&&n.error&&n.error.message?n.error.message:r);const i=n.url?{default:n.url}:n.urls;t({...n,urls:i})})),o.upload&&o.upload.addEventListener("progress",(t=>{t.lengthComputable&&(i.uploadTotal=t.total,i.uploaded=t.loaded)}))}_sendRequest(t){const e=this.options.headers||{},n=this.options.withCredentials||!1;for(const t of Object.keys(e))this.xhr.setRequestHeader(t,e[t]);this.xhr.withCredentials=n;const o=new FormData;o.append("upload",t),this.xhr.send(o)}}function iw(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function rw(t){return new Promise(((e,n)=>{const o=t.getAttribute("src");fetch(o).then((t=>t.blob())).then((t=>{const n=sw(t,o),i=n.replace("image/",""),r=new File([t],`image.${i}`,{type:n});e(r)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const o=hs.document.createElement("img");o.addEventListener("load",(()=>{const t=hs.document.createElement("canvas");t.width=o.width,t.height=o.height;t.getContext("2d").drawImage(o,0,0),t.toBlob((t=>t?e(t):n()))})),o.addEventListener("error",(()=>n())),o.src=t}))}(t).then((e=>{const n=sw(e,t),o=n.replace("image/","");return new File([e],`image.${o}`,{type:n})}))}(o).then(e).catch(n):n(t)))}))}function sw(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class aw extends he{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const o=new ew(n),i=t.commands.get("uploadImage"),r=t.config.get("image.upload.types"),s=iw(r);return o.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:!0}),o.buttonView.set({label:e("Insert image"),icon:Hd.image,tooltip:!0}),o.buttonView.bind("isEnabled").to(i),o.on("done",((e,n)=>{const o=Array.from(n).filter((t=>s.test(t.type)));o.length&&t.execute("uploadImage",{file:o})})),o};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}var lw=n(5870),cw={attributes:{"data-cke":!0}};cw.setAttributes=os(),cw.insert=es().bind(null,"head"),cw.domAPI=Xr(),cw.insertStyleElement=rs();Qr()(lw.Z,cw);lw.Z&&lw.Z.locals&&lw.Z.locals;var dw=n(9899),uw={attributes:{"data-cke":!0}};uw.setAttributes=os(),uw.insert=es().bind(null,"head"),uw.domAPI=Xr(),uw.insertStyleElement=rs();Qr()(dw.Z,uw);dw.Z&&dw.Z.locals&&dw.Z.locals;var hw=n(9825),mw={attributes:{"data-cke":!0}};mw.setAttributes=os(),mw.insert=es().bind(null,"head"),mw.domAPI=Xr(),mw.insertStyleElement=rs();Qr()(hw.Z,mw);hw.Z&&hw.Z.locals&&hw.Z.locals;class gw extends he{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const o=this.editor,i=e.item,r=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=o.plugins.get("ImageUtils"),a=o.plugins.get(Xb),l=r?e.attributeNewValue:null,c=this.placeholder,d=o.editing.mapper.toViewElement(i),u=n.writer;if("reading"==l)return pw(d,u),void fw(s,c,d,u);if("uploading"==l){const t=a.loaders.get(r);return pw(d,u),void(t?(kw(d,u),function(t,e,n,o){const i=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),i),n.on("change:uploadedPercent",((t,e,n)=>{o.change((t=>{t.setStyle("width",n+"%",i)}))}))}(d,u,t,o.editing.view),function(t,e,n,o){if(o.data){const i=t.findViewImgElement(e);n.setAttribute("src",o.data,i)}}(s,d,u,t)):fw(s,c,d,u))}"complete"==l&&a.loaders.get(r)&&function(t,e,n){const o=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),o),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(o))))}),3e3)}(d,u,o.editing.view),function(t,e){ww(t,e,"progressBar")}(d,u),kw(d,u),function(t,e){e.removeClass("ck-appear",t)}(d,u)}}function pw(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function fw(t,e,n,o){n.hasClass("ck-image-upload-placeholder")||o.addClass("ck-image-upload-placeholder",n);const i=t.findViewImgElement(n);i.getAttribute("src")!==e&&o.setAttribute("src",e,i),bw(n,"placeholder")||o.insert(o.createPositionAfter(i),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(o))}function kw(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),ww(t,e,"placeholder")}function bw(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function ww(t,e,n){const o=bw(t,n);o&&e.remove(e.createRangeOn(o))}class Aw extends ge{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=Mo(t.file),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);this._uploadImage(t,i,e)}else this._uploadImage(t,i)}))}_uploadImage(t,e,n){const o=this.editor,i=o.plugins.get(Xb).createLoader(t),r=o.plugins.get("ImageUtils");i&&r.insertImage({...e,uploadId:i.id},n)}}class _w extends he{static get requires(){return[Xb,Fh,Hp,Jk]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,o=t.plugins.get(Xb),i=t.plugins.get("ImageUtils"),r=iw(t.config.get("image.upload.types")),s=new Aw(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(o=n.dataTransfer,Array.from(o.types).includes("text/html")&&""!==o.getData("text/html"))return;var o;const i=Array.from(n.dataTransfer.files).filter((t=>!!t&&r.test(t.type)));i.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange((()=>{t.execute("uploadImage",{file:i})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(i,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:rw(t.item),imageElement:t.item})));if(!r.length)return;const s=new Tm(t.editing.view.document);for(const t of r){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=o.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),i=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,r="$graveyard"==e.position.root.rootName;for(const e of Cw(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=o.loaders.get(t);n&&(r?i.has(t)||n.abort():(i.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const o=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",o.default,e),this._parseAndSetSrcsetAttributeOnImage(o,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,o=e.locale.t,i=e.plugins.get(Xb),r=e.plugins.get(Fh),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const o=t.upload(),i=a.get(t.id);if(sr.isSafari){const t=e.editing.mapper.toViewElement(i),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const o=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=o}))}return n.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","uploading",i)})),o})).then((e=>{n.enqueueChange({isUndoable:!1},(n=>{const o=a.get(t.id);n.setAttribute("uploadStatus","complete",o),this.fire("uploadComplete",{data:e,imageElement:o})})),l()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&r.showWarning(e,{title:o("Upload failed"),namespace:"upload"}),n.enqueueChange({isUndoable:!1},(e=>{e.remove(a.get(t.id))})),l()}));function l(){n.enqueueChange({isUndoable:!1},(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),i.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let o=0;const i=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return o=Math.max(o,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=i&&n.setAttribute("srcset",{data:i,width:o},e)}}function Cw(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class vw extends he{static get pluginName(){return"ImageUpload"}static get requires(){return[_w,aw,gw]}}class yw extends he{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new fe(t)),t.commands.add("outdent",new fe(t))}}const xw='',Ew='';class Dw extends he{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?xw:Ew,i="ltr"==e.uiLanguageDirection?Ew:xw;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(i=>{const r=o.commands.get(t),s=new xu(i);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(s,"execute",(()=>{o.execute(t),o.editing.view.focus()})),s}))}}class Iw extends ge{constructor(t,e){super(t),this._indentBehavior=e}refresh(){const t=this.editor.model,e=Fa(t.document.selection.getSelectedBlocks());e&&t.schema.checkAttribute(e,"blockIndent")?this.isEnabled=this._indentBehavior.checkEnabled(e.getAttribute("blockIndent")):this.isEnabled=!1}execute(){const t=this.editor.model,e=function(t){const e=t.document.selection,n=t.schema;return Array.from(e.getSelectedBlocks()).filter((t=>n.checkAttribute(t,"blockIndent")))}(t);t.change((t=>{for(const n of e){const e=n.getAttribute("blockIndent"),o=this._indentBehavior.getNextIndent(e);o?t.setAttribute("blockIndent",o,n):t.removeAttribute("blockIndent",n)}}))}}class Sw{constructor(t){this.isForward="forward"===t.direction,this.offset=t.offset,this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||0);return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||0);if(!(!t||t.endsWith(this.unit)))return this.isForward?this.offset+this.unit:void 0;const n=e+(this.isForward?this.offset:-this.offset);return n>0?n+this.unit:void 0}}class Mw{constructor(t){this.isForward="forward"===t.direction,this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);return this.isForward?e=0}getNextIndent(t){const e=this.classes.indexOf(t),n=this.isForward?1:-1;return this.classes[e+n]}}const Tw=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];const Bw="italic";class Nw extends he{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Bw}),t.model.schema.setAttributeProperties(Bw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Bw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Bw,new Np(t,Bw)),t.keystrokes.set("CTRL+I",Bw)}}const zw="italic";class Pw extends he{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(zw,(n=>{const o=t.commands.get(zw),i=new xu(n);return i.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(zw),t.editing.view.focus()})),i}))}}class Lw{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;if(!e.item.is("selection")&&!n.schema.isInline(e.item))return;const o=n.writer,i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement("a",t.attributes,{priority:5});t.classes&&o.addClass(t.classes,r);for(const e in t.styles)o.setStyle(e,t.styles[e],r);o.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?o.wrap(i.getFirstRange(),r):o.wrap(n.mapper.toViewRange(e.range),r):o.unwrap(n.mapper.toViewRange(e.range),r)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:o})=>{const i=o.toViewElement(e.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const o=Ho(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o)"class"===t?n.addClass(e,r):n.setAttribute(t,e,r);t.classes&&n.addClass(t.classes,r);for(const e in t.styles)n.setStyle(e,t.styles[e],r)}else{for(const[t,e]of o)"class"===t?n.removeClass(e,r):n.removeAttribute(t,r);t.classes&&n.removeClass(t.classes,r);for(const e in t.styles)n.removeStyle(e,r)}}}))}}}const Ow=function(t,e,n){var o=t.length;return n=void 0===n?o:n,!e&&n>=o?t:ui(t,e,n)};var Rw=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const Vw=function(t){return Rw.test(t)};const jw=function(t){return t.split("")};var Fw="[\\ud800-\\udfff]",Hw="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Uw="\\ud83c[\\udffb-\\udfff]",Ww="[^\\ud800-\\udfff]",Gw="(?:\\ud83c[\\udde6-\\uddff]){2}",qw="[\\ud800-\\udbff][\\udc00-\\udfff]",Zw="(?:"+Hw+"|"+Uw+")"+"?",Yw="[\\ufe0e\\ufe0f]?",Kw=Yw+Zw+("(?:\\u200d(?:"+[Ww,Gw,qw].join("|")+")"+Yw+Zw+")*"),$w="(?:"+[Ww+Hw+"?",Hw,Gw,qw,Fw].join("|")+")",Qw=RegExp(Uw+"(?="+Uw+")|"+$w+Kw,"g");const Jw=function(t){return t.match(Qw)||[]};const Xw=function(t){return Vw(t)?Jw(t):jw(t)};const tA=function(t){return function(e){e=si(e);var n=Vw(e)?Xw(e):void 0,o=n?n[0]:e.charAt(0),i=n?Ow(n,1).join(""):e.slice(1);return o[t]()+i}}("toUpperCase"),eA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,nA=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,oA=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,iA=/^((\w+:(\/{2,})?)|(\W))/i,rA="Ctrl+K";function sA(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function aA(t){return function(t){return t.replace(eA,"").match(nA)}(t=String(t))?t:"#"}function lA(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function cA(t,e){const n=(o=t,oA.test(o)?"mailto:":e);var o;const i=!!n&&!iA.test(t);return t&&i?n+t:t}function dA(t){window.open(t,"_blank","noopener")}class uA extends ge{constructor(t){super(t),this.manualDecorators=new Io,this.automaticDecorators=new Lw}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Fa(e.getSelectedBlocks());lA(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,o=n.document.selection,i=[],r=[];for(const t in e)e[t]?i.push(t):r.push(t);n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute("linkHref")){const a=dp(s,"linkHref",o.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),i.forEach((t=>{e.setAttribute(t,!0,a)})),r.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const r=Ho(o.getAttributes());r.set("linkHref",t),i.forEach((t=>{r.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),"linkHref"),a=[];for(const t of o.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const l=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&l.push(t);for(const n of l)e.setAttribute("linkHref",t,n),i.forEach((t=>{e.setAttribute(t,!0,n)})),r.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,o=n.getSelectedElement();return lA(o,e.schema)?o.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class hA extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();lA(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,o=t.commands.get("link");e.change((t=>{const i=n.isCollapsed?[dp(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of i)if(t.removeAttribute("linkHref",e),o)for(const n of o.manualDecorators)t.removeAttribute(n.id,e)}))}}class mA{constructor({id:t,label:e,attributes:n,classes:o,styles:i,defaultValue:r}){this.id=t,this.set("value"),this.defaultValue=r,this.label=e,this.attributes=n,this.classes=o,this.styles=i}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}ue(mA,re);var gA=n(399),pA={attributes:{"data-cke":!0}};pA.setAttributes=os(),pA.insert=es().bind(null,"head"),pA.domAPI=Xr(),pA.insertStyleElement=rs();Qr()(gA.Z,pA);gA.Z&&gA.Z.locals&&gA.Z.locals;const fA="automatic",kA=/^(https?:)?\/\//;class bA extends he{static get pluginName(){return"LinkEditing"}static get requires(){return[Kg,Hg,Hp]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:sA}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>sA(aA(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new uA(t)),t.commands.add("unlink",new hA(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${tA(n)}`});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===fA))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode)));t.plugins.get(Kg).registerAttribute("linkHref"),function(t,e,n,o){const i=t.editing.view,r=new Set;i.document.registerPostFixer((i=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const l=dp(s.getFirstPosition(),e,s.getAttribute(e),t.model),c=t.editing.mapper.toViewRange(l);for(const t of c.getItems())t.is("element",n)&&!t.hasClass(o)&&(i.addClass(o,t),r.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){i.change((t=>{for(const e of r.values())t.removeClass(o,e),r.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:fA,callback:t=>kA.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new mA(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n,schema:o},{item:i})=>{if(o.isInline(i)&&e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const o in t.styles)n.setStyle(o,t.styles[o],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableLinkOpen(){const t=this.editor,e=t.editing.view.document,n=t.model.document;this.listenTo(e,"click",((t,e)=>{if(!(sr.isMac?e.domEvent.metaKey:e.domEvent.ctrlKey))return;let n=e.domTarget;if("a"!=n.tagName.toLowerCase()&&(n=n.closest("a")),!n)return;const o=n.getAttribute("href");o&&(t.stop(),e.preventDefault(),dA(o))}),{context:"$capture"}),this.listenTo(e,"enter",((t,e)=>{const o=n.selection,i=o.getSelectedElement(),r=i?i.getAttribute("linkHref"):o.getAttribute("linkHref");r&&e.domEvent.altKey&&(t.stop(),dA(r))}),{context:"a"})}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,o=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(o&&o.hasAttribute("linkHref")||t.change((e=>{wA(e,_A(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(Mm);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const o=t.getFirstPosition(),i=dp(o,"linkHref",t.getAttribute("linkHref"),e);(o.isTouching(i.start)||o.isTouching(i.end))&&e.change((t=>{wA(t,_A(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,o;this.listenTo(e.document,"delete",(()=>{o=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(o?o=!1:AA(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),o=e.getLastPosition(),i=n.nodeAfter;if(!i)return!1;if(!i.is("$text"))return!1;if(!i.hasAttribute("linkHref"))return!1;const r=o.textNode||o.nodeBefore;if(i===r)return!0;return dp(n,"linkHref",i.getAttribute("linkHref"),t).containsRange(t.createRange(n,o),!0)}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[i])=>{o=!1,AA(t)&&n&&(t.model.change((t=>{for(const[e,o]of n)t.setAttribute(e,o,i)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,o=t.editing.view;let i=!1,r=!1;this.listenTo(o.document,"delete",((t,e)=>{r=e.domEvent.keyCode===dr.backspace}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{i=!1;const t=n.getFirstPosition(),o=n.getAttribute("linkHref");if(!o)return;const r=dp(t,"linkHref",o,e);i=r.containsPosition(t)||r.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r&&(r=!1,i||t.model.enqueueChange((t=>{wA(t,_A(e.schema))})))}),{priority:"low"})}}function wA(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function AA(t){return t.model.change((t=>t.batch)).isTyping}function _A(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}var CA=n(4827),vA={attributes:{"data-cke":!0}};vA.setAttributes=os(),vA.insert=es().bind(null,"head"),vA.domAPI=Xr(),vA.insertStyleElement=rs();Qr()(CA.Z,vA);CA.Z&&CA.Z.locals&&CA.Z.locals;class yA extends Kd{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const o=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&o.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:o,tabindex:"-1"},children:this.children}),Wd(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),Gd({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh);return e.label=t("Link URL"),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const o=new Iu(this.locale);o.set({name:n.id,label:n.label,withText:!0}),o.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),o.on("execute",(()=>{n.set("value",!o.isOn)})),e.add(o)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Kd;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}var xA=n(9465),EA={attributes:{"data-cke":!0}};EA.setAttributes=os(),EA.insert=es().bind(null,"head"),EA.domAPI=Xr(),EA.insertStyleElement=rs();Qr()(xA.Z,EA);xA.Z&&xA.Z.locals&&xA.Z.locals;class DA extends Kd{constructor(t){super(t);const e=t.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Hd.pencil,"edit"),this.set("href"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const o=new xu(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.delegate("execute").to(this,n),o}_createPreviewButton(){const t=new xu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&aA(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}const IA='',SA="link-ui";class MA extends he{static get requires(){return[em]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(Sm),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(em),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:SA,view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:SA,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new DA(t.locale),n=t.commands.get("link"),o=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(o),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set(rA,((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),o=new yA(t.locale,e);return o.urlInputView.fieldView.bind("value").to(e,"value"),o.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),o.saveButtonView.bind("isEnabled").to(e),this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element,i=cA(e,n);t.execute("link",i,o.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(o,"cancel",(()=>{this._closeFormView()})),o.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),o}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set(rA,((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const o=new xu(t);return o.isEnabled=!0,o.label=n("Link"),o.icon=IA,o.keystroke=rA,o.tooltip=!0,o.isToggleable=!0,o.bind("isEnabled").to(e,"isEnabled"),o.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>this._showUI(!0))),o}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),Ud({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),o=r();const i=()=>{const t=this._getSelectedLinkElement(),e=r();n&&!t||!n&&e!==o?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,o=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",i),this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let o=null;if(e.markers.has(SA)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(SA)),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));o=t.domConverter.viewRangeToDom(n)}else o=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:o}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&Kp(n))return TA(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),o=TA(n.start),i=TA(n.end);return o&&o==i&&t.createRangeIn(o).getTrimmed().isEqual(n)?o:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(SA))e.updateMarker(SA,{range:n});else if(n.start.isAtEnd){const o=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:e.createRange(o,n.end)})}else e.addMarker(SA,{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has(SA)&&t.change((t=>{t.removeMarker(SA)}))}}function TA(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const BA=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class NA extends he{static get requires(){return[Gg]}static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new Yg(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=zA(t.substr(0,t.length-1));return e?{url:e}:void 0}));e.on("matched:data",((e,n)=>{const{batch:o,range:i,url:r}=n;if(!o.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),l=t.model.createRange(a,s);this._applyAutoLink(r,l)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:o}=Zg(t,e),i=zA(n);if(i){const t=e.createRange(o.end.getShiftedBy(-i.length),o.end);this._applyAutoLink(i,t)}}_applyAutoLink(t,e){const n=this.editor.model,o=this.editor.plugins.get("Delete");this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange((i=>{const r=this.editor.config.get("link.defaultProtocol"),s=cA(t,r);i.setAttribute("linkHref",s,e),n.enqueueChange((()=>{o.requestUndoOnBackspace()}))}))}}function zA(t){const e=BA.exec(t);return e?e[2]:null}class PA extends he{static get requires(){return["ImageEditing","ImageUtils",bA]}static get pluginName(){return"LinkImageEditing"}init(){const t=this.editor,e=t.model.schema;t.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["linkHref"]}),t.conversion.for("upcast").add(function(t){const e=t.plugins.has("ImageInlineEditing"),n=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,o,i)=>{const r=o.viewItem,s=n.findViewImgElement(r);if(!s)return;const a=s.findAncestor((t=>n.isBlockImageView(t)));if(e&&!a)return;const l={attributes:["href"]};if(!i.consumable.consume(r,l))return;const c=r.getAttribute("href");if(!c)return;let d=o.modelCursor.parent;if(!d.is("element","imageBlock")){const t=i.convertItem(s,o.modelCursor);o.modelRange=t.modelRange,o.modelCursor=t.modelCursor,d=o.modelCursor.nodeBefore}d&&d.is("element","imageBlock")&&i.writer.setAttribute("linkHref",c,d)}),{priority:"high"})}}(t)),t.conversion.for("downcast").add(function(t){const e=t.plugins.get("ImageUtils");return t=>{t.on("attribute:linkHref:imageBlock",((t,n,o)=>{if(!o.consumable.consume(n.item,t.name))return;const i=o.mapper.toViewElement(n.item),r=o.writer,s=Array.from(i.getChildren()).find((t=>"a"===t.name)),a=e.findViewImgElement(i),l=a.parent.is("element","picture")?a.parent:a;if(s)n.attributeNewValue?r.setAttribute("href",n.attributeNewValue,s):(r.move(r.createRangeOn(l),r.createPositionAt(i,0)),r.remove(s));else{const t=r.createContainerElement("a",{href:n.attributeNewValue});r.insert(r.createPositionAt(i,0),t),r.move(r.createRangeOn(l),r.createPositionAt(t,0))}}),{priority:"high"})}}(t)),this._enableAutomaticDecorators(),this._enableManualDecorators()}_enableAutomaticDecorators(){const t=this.editor,e=t.commands.get("link").automaticDecorators;e.length&&t.conversion.for("downcast").add(e.getDispatcherForLinkedImage())}_enableManualDecorators(){const t=this.editor,e=t.commands.get("link");for(const n of e.manualDecorators)t.plugins.has("ImageBlockEditing")&&t.model.schema.extend("imageBlock",{allowAttributes:n.id}),t.plugins.has("ImageInlineEditing")&&t.model.schema.extend("imageInline",{allowAttributes:n.id}),t.conversion.for("downcast").add(LA(n)),t.conversion.for("upcast").add(OA(t,n))}}function LA(t){return e=>{e.on(`attribute:${t.id}:imageBlock`,((e,n,o)=>{const i=o.mapper.toViewElement(n.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));if(r){for(const[e,n]of Ho(t.attributes))o.writer.setAttribute(e,n,r);t.classes&&o.writer.addClass(t.classes,r);for(const e in t.styles)o.writer.setStyle(e,t.styles[e],r)}}))}}function OA(t,e){const n=t.plugins.has("ImageInlineEditing"),o=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,i,r)=>{const s=i.viewItem,a=o.findViewImgElement(s);if(!a)return;const l=a.findAncestor((t=>o.isBlockImageView(t)));if(n&&!l)return;const c=new Uo(e._createPattern()).match(s);if(!c)return;if(!r.consumable.consume(s,c.match))return;const d=i.modelCursor.nodeBefore||i.modelCursor.parent;r.writer.setAttribute(e.id,!0,d)}),{priority:"high"})}}class RA extends he{static get requires(){return[bA,MA,"ImageBlockEditing"]}static get pluginName(){return"LinkImageUI"}init(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"click",((e,n)=>{this._isSelectedLinkedImage(t.model.document.selection)&&(n.preventDefault(),e.stop())}),{priority:"high"}),this._createToolbarLinkImageButton()}_createToolbarLinkImageButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("linkImage",(n=>{const o=new xu(n),i=t.plugins.get("LinkUI"),r=t.commands.get("link");return o.set({isEnabled:!0,label:e("Link image"),icon:IA,keystroke:rA,tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(r,"isEnabled"),o.bind("isOn").to(r,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>{this._isSelectedLinkedImage(t.model.document.selection)?i._addActionsView():i._showUI(!0)})),o}))}_isSelectedLinkedImage(t){const e=t.getSelectedElement();return this.editor.plugins.get("ImageUtils").isImage(e)&&e.hasAttribute("linkHref")}}var VA=n(3858),jA={attributes:{"data-cke":!0}};jA.setAttributes=os(),jA.insert=es().bind(null,"head"),jA.domAPI=Xr(),jA.insertStyleElement=rs();Qr()(VA.Z,jA);VA.Z&&VA.Z.locals&&VA.Z.locals;class FA extends ge{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Array.from(n.selection.getSelectedBlocks()).filter((t=>UA(t,e.schema))),i=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(i){let e=o[o.length-1].nextSibling,n=Number.POSITIVE_INFINITY,i=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)r>i.getAttribute("listIndent")&&(r=i.getAttribute("listIndent")),i.getAttribute("listIndent")==r&&t[e?"unshift":"push"](i),i=i[e?"previousSibling":"nextSibling"]}}function UA(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class WA extends ge{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let o=e.nextSibling;for(;o&&"listItem"==o.name&&o.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(o),o=o.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Fa(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let o=t.previousSibling;for(;o&&o.is("element","listItem")&&o.getAttribute("listIndent")>=e;){if(o.getAttribute("listIndent")==e)return o.getAttribute("listType")==n;o=o.previousSibling}return!1}return!0}}function GA(t,e){const n=e.mapper,o=e.writer,i="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=e_,e}(o),s=o.createContainerElement(i,null);return o.insert(o.createPositionAt(s,0),r),n.bindElements(t,r),r}function qA(t,e,n,o){const i=e.parent,r=n.mapper,s=n.writer;let a=r.toViewPosition(o.createPositionBefore(t));const l=KA(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else if(c&&"listItem"==c.name){a=r.toViewPosition(o.createPositionAt(c,"end"));const t=r.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=r.toViewPosition(o.createPositionBefore(t));if(a=YA(a),s.insert(a,i),c&&"listItem"==c.name){const t=r.toViewElement(c),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const o=s.breakContainer(s.createPositionBefore(t.item)),i=t.item.parent,r=s.createPositionAt(e,"end");ZA(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(i),r),n.position=o}}else{const n=i.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let o=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;o=e}o&&(s.breakContainer(s.createPositionAfter(o)),s.move(s.createRangeOn(o.parent),s.createPositionAt(e,"end")))}}ZA(s,i,i.nextSibling),ZA(s,i.previousSibling,i)}function ZA(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function YA(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function KA(t,e){const n=!!e.sameIndent,o=!!e.smallerIndent,i=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(n&&i==t||o&&i>t)return r;r="forward"===e.direction?r.nextSibling:r.previousSibling}return null}function $A(t,e,n,o){t.ui.componentFactory.add(e,(i=>{const r=t.commands.get(e),s=new xu(i);return s.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function QA(t,e){const n=[],o=t.parent,i={ignoreElementEnd:!0,startPosition:t,shallow:!0,direction:e},r=o.getAttribute("listIndent"),s=[...new Ja(i)].filter((t=>t.item.is("element"))).map((t=>t.item));for(const t of s){if(!t.is("element","listItem"))break;if(t.getAttribute("listIndent")r)){if(t.getAttribute("listType")!==o.getAttribute("listType"))break;if(t.getAttribute("listStyle")!==o.getAttribute("listStyle"))break;if(t.getAttribute("listReversed")!==o.getAttribute("listReversed"))break;if(t.getAttribute("listStart")!==o.getAttribute("listStart"))break;"backward"===e?n.unshift(t):n.push(t)}}return n}function JA(t){let e=[...t.document.selection.getSelectedBlocks()].filter((t=>t.is("element","listItem"))).map((e=>{const n=t.change((t=>t.createPositionAt(e,0)));return[...QA(n,"backward"),...QA(n,"forward")]})).flat();return e=[...new Set(e)],e}const XA=["disc","circle","square"],t_=["decimal","decimal-leading-zero","lower-roman","upper-roman","lower-latin","upper-latin"];function e_(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Ni.call(this)}function n_(t){return(e,n,o)=>{const i=o.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent"))return;i.consume(n.item,"insert"),i.consume(n.item,"attribute:listType"),i.consume(n.item,"attribute:listIndent");const r=n.item;qA(r,GA(r,o),o,t)}}function o_(t,e,n){if(!n.consumable.test(e.item,t.name))return;const o=n.mapper.toViewElement(e.item),i=n.writer;i.breakContainer(i.createPositionBefore(o)),i.breakContainer(i.createPositionAfter(o));const r=o.parent,s="numbered"==e.attributeNewValue?"ol":"ul";i.rename(s,r)}function i_(t,e,n){n.consumable.consume(e.item,t.name);const o=n.mapper.toViewElement(e.item).parent,i=n.writer;ZA(i,o,o.nextSibling),ZA(i,o.previousSibling,o)}function r_(t,e,n){if(n.consumable.test(e.item,t.name)&&"listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const o=n.writer,i=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=o.breakContainer(t),"li"==t.parent.name);){const e=t,n=o.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=o.remove(o.createRange(e,n));i.push(t)}t=o.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=ZA(o,n,n.nextSibling);e&&e.parent==n&&t.offset--}}ZA(o,t.nodeBefore,t.nodeAfter)}}}function s_(t,e,n){const o=n.mapper.toViewPosition(e.position),i=o.nodeBefore,r=o.nodeAfter;ZA(n.writer,i,r)}function a_(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,o=t.createElement("listItem"),i=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",i,o);const r=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",r,o),!n.safeInsert(o,e.modelCursor))return;const s=function(t,e,n){const{writer:o,schema:i}=n;let r=o.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)r=n.convertItem(s,r).modelCursor;else{const e=n.convertItem(s,o.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!i.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:h_(e.modelCursor),r=o.createPositionAfter(t))}return r}(o,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(o,e)}}function l_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t){!(e.is("element","li")||g_(e))&&e._remove()}}}function c_(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1;for(const e of t)n&&!g_(e)&&e._remove(),g_(e)&&(n=!0)}}function d_(t){return(e,n)=>{if(n.isPhantom)return;const o=n.modelPosition.nodeBefore;if(o&&o.is("element","listItem")){const e=n.mapper.toViewElement(o),i=e.getAncestors().find(g_),r=t.createPositionAt(e,0).getWalker();for(const t of r){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function u_(t,[e,n]){let o,i=e.is("documentFragment")?e.getChild(0):e;if(o=n?this.createSelection(n):this.document.selection,i&&i.is("element","listItem")){const t=o.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;i&&i.is("element","listItem");)i._setAttribute("listIndent",i.getAttribute("listIndent")+t),i=i.nextSibling}}}function h_(t){const e=new Ja({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function m_(t,e,n,o,i,r){const s=KA(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=i.mapper,l=i.writer,c=s?s.getAttribute("listIndent"):null;let d;if(s)if(c==t){const t=a.toViewElement(s).parent;d=l.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}else d=n;d=YA(d);for(const t of[...o.getChildren()])g_(t)&&(d=l.move(l.createRangeOn(t),d).end,ZA(l,t,t.nextSibling),ZA(l,t.previousSibling,t))}function g_(t){return t.is("element","ol")||t.is("element","ul")}class p_ extends he{static get pluginName(){return"ListEditing"}static get requires(){return[Ap,Gg]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var o;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),o=new Map;let i=!1;for(const o of n)if("insert"==o.type&&"listItem"==o.name)r(o.position);else if("insert"==o.type&&"listItem"!=o.name){if("$text"!=o.name){const n=o.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),i=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),i=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),i=!0),n.hasAttribute("listReversed")&&(e.removeAttribute("listReversed",n),i=!0),n.hasAttribute("listStart")&&(e.removeAttribute("listStart",n),i=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))r(e.previousPosition)}r(o.position.getShiftedBy(o.length))}else"remove"==o.type&&"listItem"==o.name?r(o.position):("attribute"==o.type&&"listIndent"==o.attributeKey||"attribute"==o.type&&"listType"==o.attributeKey)&&r(o.range.start);for(const t of o.values())s(t),a(t);return i;function r(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(o.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,o.has(t))return;o.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&o.set(e,e)}}function s(t){let n=0,o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(r>n){let s;null===o?(o=r-n,s=n):(o>r&&(o=r),s=r-o),e.setAttribute("listIndent",s,t),i=!0}else o=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(o&&o.getAttribute("listIndent")>r&&(n=n.slice(0,r+1)),0!=r)if(n[r]){const o=n[r];t.getAttribute("listType")!=o&&(e.setAttribute("listType",o,t),i=!0)}else n[r]=t.getAttribute("listType");o=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",f_),e.mapper.registerViewToModelLength("li",f_),n.mapper.on("modelToViewPosition",d_(n.view)),n.mapper.on("viewToModelPosition",(o=t.model,(t,e)=>{const n=e.viewPosition,i=n.parent,r=e.mapper;if("ul"==i.name||"ol"==i.name){if(n.isAtEnd){const t=r.toModelElement(n.nodeBefore),i=r.getModelLength(n.nodeBefore);e.modelPosition=o.createPositionBefore(t).getShiftedBy(i)}else{const t=r.toModelElement(n.nodeAfter);e.modelPosition=o.createPositionBefore(t)}t.stop()}else if("li"==i.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=r.toModelElement(i);let a=1,l=n.nodeBefore;for(;l&&g_(l);)a+=r.getModelLength(l),l=l.previousSibling;e.modelPosition=o.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",d_(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",r_,{priority:"high"}),e.on("insert:listItem",n_(t.model)),e.on("attribute:listType:listItem",o_,{priority:"high"}),e.on("attribute:listType:listItem",i_,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,"attribute:listIndent"))return;const i=o.mapper.toViewElement(n.item),r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s);r.remove(l),a&&a.nextSibling&&ZA(r,a,a.nextSibling),m_(n.attributeOldValue+1,n.range.start,l.start,i,o,t),qA(n.item,i,o,t);for(const t of n.item.getChildren())o.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,o)=>{const i=o.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=r.createRangeOn(s),c=r.remove(l);a&&a.nextSibling&&ZA(r,a,a.nextSibling),m_(o.mapper.toModelElement(i).getAttribute("listIndent")+1,n.position,l.start,i,o,t);for(const t of r.createRangeIn(c).getItems())o.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",s_,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",r_,{priority:"high"}),e.on("insert:listItem",n_(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",l_,{priority:"high"}),t.on("element:ol",l_,{priority:"high"}),t.on("element:li",c_,{priority:"high"}),t.on("element:li",a_)})),t.model.on("insertContent",u_,{priority:"high"}),t.commands.add("numberedList",new FA(t,"numbered")),t.commands.add("bulletedList",new FA(t,"bulleted")),t.commands.add("indentList",new WA(t,"forward")),t.commands.add("outdentList",new WA(t,"backward"));const i=n.view.document;this.listenTo(i,"enter",((t,e)=>{const n=this.editor.model.document,o=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==o.name&&o.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(i,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const o=n.getFirstPosition();if(!o.isAtStart)return;const i=o.parent;if("listItem"!==i.name)return;i.previousSibling&&"listItem"===i.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function f_(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=f_(t);return e}const k_='',b_='';class w_ extends he{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;$A(this.editor,"numberedList",t("Numbered List"),k_),$A(this.editor,"bulletedList",t("Bulleted List"),b_)}}class A_ extends ge{constructor(t,e){super(t),this._defaultType=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){this._tryToConvertItemsToList(t);const e=this.editor.model,n=JA(e);n.length&&e.change((e=>{for(const o of n)e.setAttribute("listStyle",t.type||this._defaultType,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")?t.getAttribute("listStyle"):null}_checkEnabled(){const t=this.editor,e=t.commands.get("numberedList"),n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type)return;const e=(n=t.type,XA.includes(n)?"bulleted":t_.includes(n)?"numbered":null);var n;if(!e)return;const o=this.editor,i=e+"List";o.commands.get(i).value||o.execute(i)}}class __ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=JA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listReversed",!!t.reversed,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listReversed"):null}}class C_ extends ge{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=JA(e).filter((t=>"numbered"==t.getAttribute("listType")));e.change((e=>{for(const o of n)e.setAttribute("listStart",t.startIndex||1,o)}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;return t&&t.is("element","listItem")&&"numbered"==t.getAttribute("listType")?t.getAttribute("listStart"):null}}const v_="default";class y_ extends he{static get requires(){return[p_]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t),t.config.define("list",{properties:{styles:!0,startIndex:!1,reversed:!1}})}init(){const t=this.editor,e=t.model,n=function(t){const e=[];t.styles&&e.push({attributeName:"listStyle",defaultValue:v_,addCommand(t){t.commands.add("listStyle",new A_(t,v_))},appliesToListItem:()=>!0,setAttributeOnDowncast(t,e,n){e&&e!==v_?t.setStyle("list-style-type",e,n):t.removeStyle("list-style-type",n)},getAttributeOnUpcast:t=>t.getStyle("list-style-type")||v_});t.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,addCommand(t){t.commands.add("listReversed",new __(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){e?t.setAttribute("reversed","reversed",n):t.removeAttribute("reversed",n)},getAttributeOnUpcast:t=>t.hasAttribute("reversed")});t.startIndex&&e.push({attributeName:"listStart",defaultValue:1,addCommand(t){t.commands.add("listStart",new C_(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),setAttributeOnDowncast(t,e,n){1!=e?t.setAttribute("start",e,n):t.removeAttribute("start",n)},getAttributeOnUpcast:t=>t.getAttribute("start")||1});return e}(t.config.get("list.properties"));e.schema.extend("listItem",{allowAttributes:n.map((t=>t.attributeName))});for(const e of n)e.addCommand(t);var o;this.listenTo(t.commands.get("indentList"),"_executeCleanup",function(t,e){return(n,o)=>{const i=o[0],r=i.getAttribute("listIndent"),s=o.filter((t=>t.getAttribute("listIndent")===r));let a=null;i.previousSibling.getAttribute("listIndent")+1!==r&&(a=KA(i.previousSibling,{sameIndent:!0,direction:"backward",listIndent:r})),t.model.change((t=>{for(const n of s)for(const o of e)if(o.appliesToListItem(n)){const e=null==a?o.defaultValue:a.getAttribute(o.attributeName);t.setAttribute(o.attributeName,e,n)}}))}}(t,n)),this.listenTo(t.commands.get("outdentList"),"_executeCleanup",function(t,e){return(n,o)=>{if(!(o=o.reverse().filter((t=>t.is("element","listItem")))).length)return;const i=o[0].getAttribute("listIndent"),r=o[0].getAttribute("listType");let s=o[0].previousSibling;if(s.is("element","listItem"))for(;s.getAttribute("listIndent")!==i;)s=s.previousSibling;else s=null;s||(s=o[o.length-1].nextSibling),s&&s.is("element","listItem")&&s.getAttribute("listType")===r&&t.model.change((t=>{const n=o.filter((t=>t.getAttribute("listIndent")===i));for(const o of n)for(const n of e)if(n.appliesToListItem(o)){const e=n.attributeName,i=s.getAttribute(e);t.setAttribute(e,i,o)}}))}}(t,n)),this.listenTo(t.commands.get("bulletedList"),"_executeCleanup",D_(t)),this.listenTo(t.commands.get("numberedList"),"_executeCleanup",D_(t)),e.document.registerPostFixer(function(t,e){return n=>{let o=!1;const i=I_(t.model.document.differ.getChanges()).filter((t=>"todo"!==t.getAttribute("listType")));if(!i.length)return o;let r=i[i.length-1].nextSibling;if((!r||!r.is("element","listItem"))&&(r=i[0].previousSibling,r)){const t=i[0].getAttribute("listIndent");for(;r.is("element","listItem")&&r.getAttribute("listIndent")!==t&&(r=r.previousSibling,r););}for(const t of e){const e=t.attributeName;for(const s of i)if(t.appliesToListItem(s))if(s.hasAttribute(e)){const i=s.previousSibling;E_(i,s,t.attributeName)&&(n.setAttribute(e,i.getAttribute(e),s),o=!0)}else x_(r,s,t)?n.setAttribute(e,r.getAttribute(e),s):n.setAttribute(e,t.defaultValue,s),o=!0;else n.removeAttribute(e,s)}return o}}(t,n)),t.conversion.for("upcast").add((o=n,t=>{t.on("element:li",((t,e,n)=>{const i=e.viewItem.parent;if(!i)return;const r=e.modelRange.start.nodeAfter||e.modelRange.end.nodeBefore;for(const t of o)if(t.appliesToListItem(r)){const e=t.getAttributeOnUpcast(i);n.writer.setAttribute(t.attributeName,e,r)}}),{priority:"low"})})),t.conversion.for("downcast").add(function(t){return n=>{for(const o of t)n.on(`attribute:${o.attributeName}:listItem`,((t,n,i)=>{const r=i.writer,s=n.item,a=KA(s.previousSibling,{sameIndent:!0,listIndent:s.getAttribute("listIndent"),direction:"backward"}),l=i.mapper.toViewElement(s);e(s,a)||r.breakContainer(r.createPositionBefore(l)),o.setAttributeOnDowncast(r,n.attributeNewValue,l.parent)}),{priority:"low"})};function e(t,e){return e&&t.getAttribute("listType")===e.getAttribute("listType")&&t.getAttribute("listIndent")===e.getAttribute("listIndent")&&t.getAttribute("listStyle")===e.getAttribute("listStyle")&&t.getAttribute("listReversed")===e.getAttribute("listReversed")&&t.getAttribute("listStart")===e.getAttribute("listStart")}}(n)),this._mergeListAttributesWhileMergingLists(n)}afterInit(){const t=this.editor;t.commands.get("todoList")&&t.model.document.registerPostFixer(function(t){return e=>{const n=I_(t.model.document.differ.getChanges()).filter((t=>"todo"===t.getAttribute("listType")&&(t.hasAttribute("listStyle")||t.hasAttribute("listReversed")||t.hasAttribute("listStart"))));if(!n.length)return!1;for(const t of n)e.removeAttribute("listStyle",t),e.removeAttribute("listReversed",t),e.removeAttribute("listStart",t);return!0}}(t))}_mergeListAttributesWhileMergingLists(t){const e=this.editor.model;let n;this.listenTo(e,"deleteContent",((t,[e])=>{const o=e.getFirstPosition(),i=e.getLastPosition();if(o.parent===i.parent)return;if(!o.parent.is("element","listItem"))return;const r=i.parent.nextSibling;if(!r||!r.is("element","listItem"))return;const s=KA(o.parent,{sameIndent:!0,listIndent:r.getAttribute("listIndent")});s&&s.getAttribute("listType")===r.getAttribute("listType")&&(n=s)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{n&&(e.change((e=>{const o=KA(n.nextSibling,{sameIndent:!0,listIndent:n.getAttribute("listIndent"),direction:"forward"});if(!o)return void(n=null);const i=[o,...QA(e.createPositionAt(o,0),"forward")];for(const o of i)for(const i of t)if(i.appliesToListItem(o)){const t=i.attributeName,r=n.getAttribute(t);e.setAttribute(t,r,o)}})),n=null)}),{priority:"low"})}}function x_(t,e,n){if(!t)return!1;const o=t.getAttribute(n.attributeName);return!!o&&(o!=n.defaultValue&&t.getAttribute("listType")===e.getAttribute("listType"))}function E_(t,e,n){if(!t||!t.is("element","listItem"))return!1;if(e.getAttribute("listType")!==t.getAttribute("listType"))return!1;const o=t.getAttribute("listIndent");if(o<1||o!==e.getAttribute("listIndent"))return!1;const i=t.getAttribute(n);return!(!i||i===e.getAttribute(n))}function D_(t){return(e,n)=>{n=n.filter((t=>t.is("element","listItem"))),t.model.change((t=>{for(const e of n)t.removeAttribute("listStyle",e)}))}}function I_(t){const e=[];for(const n of t){const t=S_(n);t&&t.is("element","listItem")&&e.push(t)}return e}function S_(t){return"attribute"===t.type?t.range.start.nodeAfter:"insert"===t.type?t.position.nodeAfter:null}var M_=n(3195),T_={attributes:{"data-cke":!0}};T_.setAttributes=os(),T_.insert=es().bind(null,"head"),T_.domAPI=Xr(),T_.insertStyleElement=rs();Qr()(M_.Z,T_);M_.Z&&M_.Z.locals&&M_.Z.locals;class B_ extends Kd{constructor(t,e){super(t);const n=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid"),e&&this.children.addMany(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",n.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:n.if("isCollapsed","hidden"),"aria-labelledby":n.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}_createButtonView(){const t=new xu(this.locale),e=t.bindTemplate;return t.set({withText:!0,icon:Vu}),t.extendTemplate({attributes:{"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("label").to(this),t.bind("isOn").to(this,"isCollapsed",(t=>!t)),t.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),t}}var N_=n(7133),z_={attributes:{"data-cke":!0}};z_.setAttributes=os(),z_.insert=es().bind(null,"head"),z_.domAPI=Xr(),z_.insertStyleElement=rs();Qr()(N_.Z,z_);N_.Z&&N_.Z.locals&&N_.Z.locals;class P_ extends Kd{constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:o}){super(t);const i=["ck","ck-list-properties"];this.children=this.createCollection(),this.stylesView=null,this.additionalPropertiesCollapsibleView=null,this.startIndexFieldView=null,this.reversedSwitchButtonView=null,this.focusTracker=new Ha,this.keystrokes=new Ua,this.focusables=new qd,this.focusCycler=new zu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),e.styles?(this.stylesView=this._createStylesView(n,o),this.children.add(this.stylesView)):i.push("ck-list-properties_without-styles"),(e.startIndex||e.reversed)&&(this._addNumberedListPropertyViews(e,n),i.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:i},children:this.children})}render(){if(super.render(),this.stylesView){for(const t of this.stylesView.children)this.focusables.add(t),this.focusTracker.add(t.element);(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element))}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element),this.listenTo(this.startIndexFieldView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"});const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(t,e){const n=new Kd(this.locale);return n.children=n.createCollection(this.locale),n.children.addMany(t),n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children}),n.children.delegate("execute").to(this),n}_addNumberedListPropertyViews(t){const e=this.locale.t,n=[];t.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),n.push(this.startIndexFieldView)),t.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),n.push(this.reversedSwitchButtonView)),t.styles?(this.additionalPropertiesCollapsibleView=new B_(this.locale,n),this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t)))),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{n||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)})),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(n)}_createStartIndexField(){const t=this.locale.t,e=new Oh(this.locale,Vh);return e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"}),e.fieldView.set({min:1,step:1,value:1,inputMode:"numeric"}),e.fieldView.on("input",(()=>{const n=e.fieldView.element,o=n.valueAsNumber;Number.isNaN(o)||(n.checkValidity()?this.fire("listStart",{startIndex:o}):e.errorText=t("Start index must be greater than 0."))})),e}_createReversedSwitchButton(){const t=this.locale.t,e=new Iu(this.locale);return e.set({withText:!0,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),e.delegate("execute").to(this,"listReversed"),e}}var L_=n(4553),O_={attributes:{"data-cke":!0}};O_.setAttributes=os(),O_.insert=es().bind(null,"head"),O_.domAPI=Xr(),O_.insertStyleElement=rs();Qr()(L_.Z,O_);L_.Z&&L_.Z.locals&&L_.Z.locals;class R_ extends he{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor,e=t.locale.t,n=t.config.get("list.properties");n.styles&&t.ui.componentFactory.add("bulletedList",V_({editor:t,parentCommandName:"bulletedList",buttonLabel:e("Bulleted List"),buttonIcon:b_,styleGridAriaLabel:e("Bulleted list styles toolbar"),styleDefinitions:[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:''},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:''},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:''}]})),(n.styles||n.startIndex||n.reversed)&&t.ui.componentFactory.add("numberedList",V_({editor:t,parentCommandName:"numberedList",buttonLabel:e("Numbered List"),buttonIcon:k_,styleGridAriaLabel:e("Numbered list styles toolbar"),styleDefinitions:[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:''},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:''},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:''},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:''},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:''},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:''}]}))}}function V_({editor:t,parentCommandName:e,buttonLabel:n,buttonIcon:o,styleGridAriaLabel:i,styleDefinitions:r}){const s=t.commands.get(e);return a=>{const l=ph(a,Uu),c=l.buttonView;l.bind("isEnabled").to(s),l.class="ck-list-styles-dropdown",c.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),c.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),c.bind("isOn").to(s,"value",(t=>!!t));const d=function({editor:t,dropdownView:e,parentCommandName:n,styleDefinitions:o,styleGridAriaLabel:i}){const r=t.locale,s=t.config.get("list.properties");let a;"numberedList"!=n&&(s.startIndex=!1,s.reversed=!1);if(s.styles){const e=t.commands.get("listStyle"),i=function({editor:t,listStyleCommand:e,parentCommandName:n}){const o=t.locale,i=t.commands.get(n);return({label:n,type:r,icon:s,tooltip:a})=>{const l=new xu(o);return l.set({label:n,icon:s,tooltip:a}),e.on("change:value",(()=>{l.isOn=e.value===r})),l.on("execute",(()=>{i.value?e.value!==r?t.execute("listStyle",{type:r}):t.execute("listStyle",{type:e._defaultType}):t.model.change((()=>{t.execute("listStyle",{type:r})})),t.editing.view.focus()})),l}}({editor:t,parentCommandName:n,listStyleCommand:e}),r="function"==typeof e.isStyleTypeSupported?t=>e.isStyleTypeSupported(t.type):()=>!0;a=o.filter(r).map(i)}const l=new P_(r,{styleGridAriaLabel:i,enabledProperties:s,styleButtonViews:a});if(s.startIndex){const e=t.commands.get("listStart");l.startIndexFieldView.bind("isEnabled").to(e),l.startIndexFieldView.fieldView.bind("value").to(e),l.on("listStart",((e,n)=>t.execute("listStart",n)))}if(s.reversed){const e=t.commands.get("listReversed");l.reversedSwitchButtonView.bind("isEnabled").to(e),l.reversedSwitchButtonView.bind("isOn").to(e,"value"),l.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}return l.delegate("execute").to(e),l}({editor:t,dropdownView:l,parentCommandName:e,styleGridAriaLabel:i,styleDefinitions:r});return l.panelView.children.add(d),l}}function j_(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,o,i){if(!i.consumable.consume(o.item,n.name))return;const r=o.attributeNewValue,s=i.writer,a=i.mapper.toViewElement(o.item),l=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(l);const c=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),c)}}function F_(t,e,n,o){return t.createContainerElement("figure",{class:"media"},[e.getMediaViewElement(t,n,o),t.createSlot()])}function H_(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function U_(t,e,n,o){t.change((i=>{const r=i.createElement("media",{url:e});t.insertObject(r,n,null,{setSelection:"on",findOptimalPosition:o})}))}class W_ extends ge{refresh(){const t=this.editor.model,e=t.document.selection,n=H_(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=nf(t,e).start.parent;n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent);return e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,o=H_(n);o?e.change((e=>{e.setAttribute("url",t,o)})):U_(e,t,n,!0)}}class G_{constructor(t,e){const n=e.providers,o=e.extraProviders||[],i=new Set(e.removeProviders),r=n.concat(o).filter((t=>{const e=t.name;return e?!i.has(e):(c("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new q_(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,o=Mo(e.url);for(const e of o){const o=this._getUrlMatches(t,e);if(o)return new q_(this.locale,t,o,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let o=t.replace(/^https?:\/\//,"");return n=o.match(e),n||(o=o.replace(/^www\./,""),n=o.match(e),n||null)}}class q_{constructor(t,e,n,o){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=o}getViewElement(t,e){const n={};let o;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const i=this._getPreviewHtml(e);o=t.createRawElement("div",n,((t,e)=>{e.setContentOf(t,i)}))}else this.url&&(n.url=this.url),o=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,o),o}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Cu,e=new wu;t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42";return new $d({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}var Z_=n(952),Y_={attributes:{"data-cke":!0}};Y_.setAttributes=os(),Y_.insert=es().bind(null,"head"),Y_.domAPI=Xr(),Y_.insertStyleElement=rs();Qr()(Z_.Z,Y_);Z_.Z&&Z_.Z.locals&&Z_.Z.locals;class K_ extends he{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
    `},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
    `},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
    `},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
    `},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new G_(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion,i=t.config.get("mediaEmbed.previewsInData"),r=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new W_(t)),e.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]}),o.for("dataDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return F_(e,s,n,{elementName:r,renderMediaPreview:n&&i})}}),o.for("dataDowncast").add(j_(s,{elementName:r,renderMediaPreview:i})),o.for("editingDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const o=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),$p(t,e,{label:n})}(F_(e,s,o,{elementName:r,renderForEditingView:!0}),e,n("media widget"))}}),o.for("editingDowncast").add(j_(s,{elementName:r,renderForEditingView:!0})),o.for("upcast").elementToElement({view:t=>["oembed",r].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).add((t=>{t.on("element:figure",(function(t,e,n){if(!n.consumable.consume(e.viewItem,{name:!0,classes:"media"}))return;const{modelRange:o,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=o,e.modelCursor=i;Fa(o.getItems())||n.consumable.revert(e.viewItem,{name:!0,classes:"media"})}))}))}}const $_=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class Q_ extends he{static get requires(){return[Mf,Gg,qf]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=cd.fromPosition(t.start);n.stickiness="toPrevious";const o=cd.fromPosition(t.end);o.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,o),n.detach(),o.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(hs.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,o=n.plugins.get(K_).registry,i=new fl(t,e),r=i.getWalker({ignoreElementEnd:!0});let s="";for(const t of r)t.item.is("$textProxy")&&(s+=t.item.data);if(s=s.trim(),!s.match($_))return void i.detach();if(!o.hasMedia(s))return void i.detach();n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=cd.fromPosition(t),this._timeoutId=hs.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(i),i.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),U_(n.model,s,e,!1),this._positionToInsert.detach(),this._positionToInsert=null})),n.plugins.get("Delete").requestUndoOnBackspace()}),100)):i.detach()}}var J_=n(3525),X_={attributes:{"data-cke":!0}};X_.setAttributes=os(),X_.insert=es().bind(null,"head"),X_.domAPI=Xr(),X_.insertStyleElement=rs();Qr()(J_.Z,X_);J_.Z&&J_.Z.locals&&J_.Z.locals;class tC extends Kd{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Ha,this.keystrokes=new Ua,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Hd.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Hd.cancel,"ck-button-cancel","cancel"),this._focusables=new qd,this._focusCycler=new zu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Wd(this)}render(){super.render(),Gd({view:this});[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Rh),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,o){const i=new xu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}}class eC extends he{static get requires(){return[K_]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(K_).registry;t.ui.componentFactory.add("mediaEmbed",(o=>{const i=ph(o),r=new tC(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(i,r,e,t),this._setUpForm(i,r,e),i}))}_setUpDropdown(t,e,n){const o=this.editor,i=o.t,r=t.buttonView;function s(){o.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),r.set({label:i("Insert media"),icon:'',tooltip:!0}),r.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(o.execute("mediaEmbed",e.url),s())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>s()))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}var nC=n(5777),oC={attributes:{"data-cke":!0}};oC.setAttributes=os(),oC.insert=es().bind(null,"head"),oC.domAPI=Xr(),oC.insertStyleElement=rs();Qr()(nC.Z,oC);nC.Z&&nC.Z.locals&&nC.Z.locals;function iC(t,e){if(!t.childCount)return;const n=new Tm(t.document),o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),i=[];for(const t of n)if("elementStart"===t.type&&o.match(t.item)){const e=aC(t.item);i.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return i}(t,n);if(!o.length)return;let i=null,r=1;o.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;if(!n)return!0;return o=n,!(o.is("element","ol")||o.is("element","ul"));var o}(o[s-1],t),l=a?null:o[s-1],c=(u=t,(d=l)?u.indent-d.indent:u.indent-1);var d,u;if(a&&(i=null,r=1),!i||0!==c){const o=function(t,e){const n=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi"),o=/mso-level-number-format:([^;]{0,100});/gi,i=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,r=n.exec(e);let s="decimal",a="ol",l=null;if(r&&r[1]){const e=o.exec(r[1]);if(e&&e[1]&&(s=e[1].trim(),a="bullet"!==s&&"image"!==s?"ol":"ul"),"bullet"===s){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;if("o"===n)return"circle";if("·"===n)return"disc";if("§"===n)return"square";return null}(t.element);e&&(s=e)}else{const t=i.exec(r[1]);t&&t[1]&&(l=parseInt(t[1]))}}return{type:a,startIndex:l,style:rC(s)}}(t,e);if(i){if(t.indent>r){const t=i.getChild(i.childCount-1),e=t.getChild(t.childCount-1);i=sC(o,e,n),r+=1}else if(t.indent1&&n.setAttribute("start",t.startIndex,i),i}function aC(t){const e={},n=t.getStyle("mso-list");if(n){const t=n.match(/(^|\s{1,100})l(\d+)/i),o=n.match(/\s{0,100}lfo(\d+)/i),i=n.match(/\s{0,100}level(\d+)/i);t&&o&&i&&(e.id=t[2],e.order=o[1],e.indent=i[1])}return e}const lC=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class cC{constructor(t){this.document=t}isActive(t){return lC.test(t)}execute(t){const e=new Tm(this.document),{body:n}=t._parsedData;!function(t,e){for(const n of t.getChildren())if(n.is("element","b")&&"normal"===n.getStyle("font-weight")){const o=t.getChildIndex(n);e.remove(n),e.insertChild(o,n.getChildren(),t)}}(n,e),function(t,e){for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","li")){const n=t.getChild(0);n&&n.is("element","p")&&e.unwrapElement(n)}}}(n,e),t.content=n}}function dC(t,e){if(!t.childCount)return;const n=new Tm,o=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n){if("elementStart"!=t.type)continue;const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;o.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&i.push(t.item.getAttribute("id"))}return i}(t,n);!function(t,e,n){const o=n.createRangeIn(e),i=new Uo({name:"img"}),r=[];for(const e of o)if(i.match(e.item)){const n=e.item,o=n.getAttribute("v:shapes")?n.getAttribute("v:shapes").split(" "):[];o.length&&o.every((e=>t.indexOf(e)>-1))?r.push(n):n.getAttribute("src")||r.push(n)}for(const t of r)n.remove(t)}(o,t,n),function(t,e){const n=e.createRangeIn(t),o=new Uo({name:/v:(.+)/}),i=[];for(const t of n)"elementStart"==t.type&&o.match(t.item)&&i.push(t.item);for(const t of i)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),o=new Uo({name:"img"}),i=[];for(const t of n)o.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&i.push(t.item);return i}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let o=0;oString.fromCharCode(parseInt(t,16)))).join(""))}const hC=//i,mC=/xmlns:o="urn:schemas-microsoft-com/i;class gC{constructor(t){this.document=t}isActive(t){return hC.test(t)||mC.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;iC(e,n),dC(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function pC(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length)))}function fC(t,e){const n=new DOMParser,o=function(t){return pC(pC(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e="",n="",o=t.indexOf(e);if(o<0)return t;const i=t.indexOf(n,o+e.length);return t.substring(0,o+e.length)+(i>=0?t.substring(i):"")}(t=t.replace(/

    abc

    \n\t\t\t//\n\t\t\tif ( isAttribute && this._wrapAttributeElement( wrapElement, child ) ) {\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// Wrap the child if it is not an attribute element or if it is an attribute element that should be inside\n\t\t\t// `wrapElement` (due to priority).\n\t\t\t//\n\t\t\t//

    abc

    -->

    abc

    \n\t\t\t//

    abc

    -->

    abc

    \n\t\t\telse if ( isText || !isAttribute || shouldABeOutsideB( wrapElement, child ) ) {\n\t\t\t\t// Clone attribute.\n\t\t\t\tconst newAttribute = wrapElement._clone();\n\n\t\t\t\t// Wrap current node with new attribute.\n\t\t\t\tchild._remove();\n\t\t\t\tnewAttribute._appendChild( child );\n\n\t\t\t\tparent._insertChild( i, newAttribute );\n\t\t\t\tthis._addToClonedElementsGroup( newAttribute );\n\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// If other nested attribute is found and it wasn't wrapped (see above), continue wrapping inside it.\n\t\t\t//\n\t\t\t//

    abc

    -->

    abc

    \n\t\t\t//\n\t\t\telse /* if ( isAttribute ) */ {\n\t\t\t\tthis._wrapChildren( child, 0, child.childCount, wrapElement );\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each wrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of wrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Unwraps children from provided `unwrapElement`. Only children contained in `parent` element between\n\t * `startOffset` and `endOffset` will be unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} parent\n\t * @param {Number} startOffset\n\t * @param {Number} endOffset\n\t * @param {module:engine/view/element~Element} unwrapElement\n\t */\n\t_unwrapChildren( parent, startOffset, endOffset, unwrapElement ) {\n\t\tlet i = startOffset;\n\t\tconst unwrapPositions = [];\n\n\t\t// Iterate over each element between provided offsets inside parent.\n\t\t// We don't use tree walker or range iterator because we will be removing and merging potentially multiple nodes,\n\t\t// so it could get messy. It is safer to it manually in this case.\n\t\twhile ( i < endOffset ) {\n\t\t\tconst child = parent.getChild( i );\n\n\t\t\t// Skip all text nodes. There should be no container element's here either.\n\t\t\tif ( !child.is( 'attributeElement' ) ) {\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// (In all examples, assume that `unwrapElement` is `` element.)\n\t\t\t//\n\t\t\t// If the child is similar to the given attribute element, unwrap it - it will be completely removed.\n\t\t\t//\n\t\t\t//

    abcxyz

    -->

    abcxyz

    \n\t\t\t//\n\t\t\tif ( child.isSimilar( unwrapElement ) ) {\n\t\t\t\tconst unwrapped = child.getChildren();\n\t\t\t\tconst count = child.childCount;\n\n\t\t\t\t// Replace wrapper element with its children\n\t\t\t\tchild._remove();\n\t\t\t\tparent._insertChild( i, unwrapped );\n\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\n\t\t\t\t// Save start and end position of moved items.\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + count )\n\t\t\t\t);\n\n\t\t\t\t// Skip elements that were unwrapped. Assuming there won't be another element to unwrap in child elements.\n\t\t\t\ti += count;\n\t\t\t\tendOffset += count - 1;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If the child is not similar but is an attribute element, try partial unwrapping - remove the same attributes/styles/classes.\n\t\t\t// Partial unwrapping will happen only if the elements have the same name.\n\t\t\t//\n\t\t\t//

    abcxyz

    -->

    abcxyz

    \n\t\t\t//

    abcxyz

    -->

    abcxyz

    \n\t\t\t//\n\t\t\tif ( this._unwrapAttributeElement( unwrapElement, child ) ) {\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + 1 )\n\t\t\t\t);\n\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If other nested attribute is found, look through it's children for elements to unwrap.\n\t\t\t//\n\t\t\t//

    abc

    -->

    abc

    \n\t\t\t//\n\t\t\tthis._unwrapChildren( child, 0, child.childCount, unwrapElement );\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each unwrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of unwrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset || position.offset == endOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Helper function for `view.writer.wrap`. Wraps range with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/range~Range} New range after wrapping, spanning over wrapping attribute element.\n\t */\n\t_wrapRange( range, attribute ) {\n\t\t// Break attributes at range start and end.\n\t\tconst { start: breakStart, end: breakEnd } = this._breakAttributesRange( range, true );\n\t\tconst parentContainer = breakStart.parent;\n\n\t\t// Wrap all children with attribute.\n\t\tconst newRange = this._wrapChildren( parentContainer, breakStart.offset, breakEnd.offset, attribute );\n\n\t\t// Merge attributes at the both ends and return a new range.\n\t\tconst start = this.mergeAttributes( newRange.start );\n\n\t\t// If start position was merged - move end position back.\n\t\tif ( !start.isEqual( newRange.start ) ) {\n\t\t\tnewRange.end.offset--;\n\t\t}\n\t\tconst end = this.mergeAttributes( newRange.end );\n\n\t\treturn new Range( start, end );\n\t}\n\n\t/**\n\t * Helper function for {@link #wrap}. Wraps position with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/position~Position} New position after wrapping.\n\t */\n\t_wrapPosition( position, attribute ) {\n\t\t// Return same position when trying to wrap with attribute similar to position parent.\n\t\tif ( attribute.isSimilar( position.parent ) ) {\n\t\t\treturn movePositionToTextNode( position.clone() );\n\t\t}\n\n\t\t// When position is inside text node - break it and place new position between two text nodes.\n\t\tif ( position.parent.is( '$text' ) ) {\n\t\t\tposition = breakTextNode( position );\n\t\t}\n\n\t\t// Create fake element that will represent position, and will not be merged with other attributes.\n\t\tconst fakePosition = this.createAttributeElement();\n\t\tfakePosition._priority = Number.POSITIVE_INFINITY;\n\t\tfakePosition.isSimilar = () => false;\n\n\t\t// Insert fake element in position location.\n\t\tposition.parent._insertChild( position.offset, fakePosition );\n\n\t\t// Range around inserted fake attribute element.\n\t\tconst wrapRange = new Range( position, position.getShiftedBy( 1 ) );\n\n\t\t// Wrap fake element with attribute (it will also merge if possible).\n\t\tthis.wrap( wrapRange, attribute );\n\n\t\t// Remove fake element and place new position there.\n\t\tconst newPosition = new Position( fakePosition.parent, fakePosition.index );\n\t\tfakePosition._remove();\n\n\t\t// If position is placed between text nodes - merge them and return position inside.\n\t\tconst nodeBefore = newPosition.nodeBefore;\n\t\tconst nodeAfter = newPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof Text && nodeAfter instanceof Text ) {\n\t\t\treturn mergeTextNodes( nodeBefore, nodeAfter );\n\t\t}\n\n\t\t// If position is next to text node - move position inside.\n\t\treturn movePositionToTextNode( newPosition );\n\t}\n\n\t/**\n\t * \tWraps one {@link module:engine/view/attributeelement~AttributeElement AttributeElement} into another by\n\t * \tmerging them if possible. When merging is possible - all attributes, styles and classes are moved from wrapper\n\t * \telement to element being wrapped.\n\t *\n\t * \t@private\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} toWrap AttributeElement to wrap using wrapper element.\n\t * \t@returns {Boolean} Returns `true` if elements are merged.\n\t */\n\t_wrapAttributeElement( wrapper, toWrap ) {\n\t\tif ( !canBeJoined( wrapper, toWrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't merge if name or priority differs.\n\t\tif ( wrapper.name !== toWrap.name || wrapper.priority !== toWrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if attributes can be merged.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are different we cannot wrap.\n\t\t\tif ( toWrap.hasAttribute( key ) && toWrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if styles can be merged.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( toWrap.hasStyle( key ) && toWrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Move all attributes/classes/styles from wrapper to wrapped AttributeElement.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Move only these attributes that are not present - other are similar.\n\t\t\tif ( !toWrap.hasAttribute( key ) ) {\n\t\t\t\tthis.setAttribute( key, wrapper.getAttribute( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( !toWrap.hasStyle( key ) ) {\n\t\t\t\tthis.setStyle( key, wrapper.getStyle( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getClassNames() ) {\n\t\t\tif ( !toWrap.hasClass( key ) ) {\n\t\t\t\tthis.addClass( key, toWrap );\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Unwraps {@link module:engine/view/attributeelement~AttributeElement AttributeElement} from another by removing\n\t * corresponding attributes, classes and styles. All attributes, classes and styles from wrapper should be present\n\t * inside element being unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * @param {module:engine/view/attributeelement~AttributeElement} toUnwrap AttributeElement to unwrap using wrapper element.\n\t * @returns {Boolean} Returns `true` if elements are unwrapped.\n\t **/\n\t_unwrapAttributeElement( wrapper, toUnwrap ) {\n\t\tif ( !canBeJoined( wrapper, toUnwrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't unwrap if name or priority differs.\n\t\tif ( wrapper.name !== toUnwrap.name || wrapper.priority !== toUnwrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper attributes.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasAttribute( key ) || toUnwrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper classes.\n\t\tif ( !toUnwrap.hasClass( ...wrapper.getClassNames() ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper styles.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\t// If some styles are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasStyle( key ) || toUnwrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Remove all wrapper's attributes from unwrapped element.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.removeAttribute( key, toUnwrap );\n\t\t}\n\n\t\t// Remove all wrapper's classes from unwrapped element.\n\t\tthis.removeClass( Array.from( wrapper.getClassNames() ), toUnwrap );\n\n\t\t// Remove all wrapper's styles from unwrapped element.\n\t\tthis.removeStyle( Array.from( wrapper.getStyleNames() ), toUnwrap );\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at the boundaries of given range.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/range~Range} New range with located at break positions.\n\t */\n\t_breakAttributesRange( range, forceSplitText = false ) {\n\t\tconst rangeStart = range.start;\n\t\tconst rangeEnd = range.end;\n\n\t\tvalidateRangeContainer( range, this.document );\n\n\t\t// Break at the collapsed position. Return new collapsed range.\n\t\tif ( range.isCollapsed ) {\n\t\t\tconst position = this._breakAttributes( range.start, forceSplitText );\n\n\t\t\treturn new Range( position, position );\n\t\t}\n\n\t\tconst breakEnd = this._breakAttributes( rangeEnd, forceSplitText );\n\t\tconst count = breakEnd.parent.childCount;\n\t\tconst breakStart = this._breakAttributes( rangeStart, forceSplitText );\n\n\t\t// Calculate new break end offset.\n\t\tbreakEnd.offset += breakEnd.parent.childCount - count;\n\n\t\treturn new Range( breakStart, breakEnd );\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at given position.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position\n\t * is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element` when break position\n\t * is placed inside {@link module:engine/view/uielement~UIElement UIElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position Position where to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/position~Position} New position after breaking the attributes.\n\t */\n\t_breakAttributes( position, forceSplitText = false ) {\n\t\tconst positionOffset = position.offset;\n\t\tconst positionParent = position.parent;\n\n\t\t// If position is placed inside EmptyElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'emptyElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break an `EmptyElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-empty-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-empty-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside UIElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'uiElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `UIElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-ui-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-ui-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside RawElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'rawElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `RawElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-raw-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-raw-element', this.document );\n\t\t}\n\n\t\t// There are no attributes to break and text nodes breaking is not forced.\n\t\tif ( !forceSplitText && positionParent.is( '$text' ) && isContainerOrFragment( positionParent.parent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Position's parent is container, so no attributes to break.\n\t\tif ( isContainerOrFragment( positionParent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Break text and start again in new position.\n\t\tif ( positionParent.is( '$text' ) ) {\n\t\t\treturn this._breakAttributes( breakTextNode( position ), forceSplitText );\n\t\t}\n\n\t\tconst length = positionParent.childCount;\n\n\t\t//

    foobar{}

    \n\t\t//

    foobar[]

    \n\t\t//

    foobar[]

    \n\t\tif ( positionOffset == length ) {\n\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index + 1 );\n\n\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t} else {\n\t\t\t//

    foo{}bar

    \n\t\t\t//

    foo[]bar

    \n\t\t\t//

    foo{}bar

    \n\t\t\tif ( positionOffset === 0 ) {\n\t\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t\t//

    foob{}ar

    \n\t\t\t//

    foob[]ar

    \n\t\t\t//

    foob[]ar

    \n\t\t\t//

    foob[]ar

    \n\t\t\telse {\n\t\t\t\tconst offsetAfter = positionParent.index + 1;\n\n\t\t\t\t// Break element.\n\t\t\t\tconst clonedNode = positionParent._clone();\n\n\t\t\t\t// Insert cloned node to position's parent node.\n\t\t\t\tpositionParent.parent._insertChild( offsetAfter, clonedNode );\n\t\t\t\tthis._addToClonedElementsGroup( clonedNode );\n\n\t\t\t\t// Get nodes to move.\n\t\t\t\tconst count = positionParent.childCount - positionOffset;\n\t\t\t\tconst nodesToMove = positionParent._removeChildren( positionOffset, count );\n\n\t\t\t\t// Move nodes to cloned node.\n\t\t\t\tclonedNode._appendChild( nodesToMove );\n\n\t\t\t\t// Create new position to work on.\n\t\t\t\tconst newPosition = new Position( positionParent.parent, offsetAfter );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Stores the information that an {@link module:engine/view/attributeelement~AttributeElement attribute element} was\n\t * added to the tree. Saves the reference to the group in the given element and updates the group, so other elements\n\t * from the group now keep a reference to the given attribute element.\n\t *\n\t * The clones group can be obtained using {@link module:engine/view/attributeelement~AttributeElement#getElementsWithSameId}.\n\t *\n\t * Does nothing if added element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to save.\n\t */\n\t_addToClonedElementsGroup( element ) {\n\t\t// Add only if the element is in document tree.\n\t\tif ( !element.root.is( 'rootElement' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Traverse the element's children recursively to find other attribute elements that also might got inserted.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._addToClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\tgroup = new Set();\n\t\t\tthis._cloneGroups.set( id, group );\n\t\t}\n\n\t\tgroup.add( element );\n\t\telement._clonesGroup = group;\n\t}\n\n\t/**\n\t * Removes all the information about the given {@link module:engine/view/attributeelement~AttributeElement attribute element}\n\t * from its clones group.\n\t *\n\t * Keep in mind, that the element will still keep a reference to the group (but the group will not keep a reference to it).\n\t * This allows to reference the whole group even if the element was already removed from the tree.\n\t *\n\t * Does nothing if the element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to remove.\n\t */\n\t_removeFromClonedElementsGroup( element ) {\n\t\t// Traverse the element's children recursively to find other attribute elements that also got removed.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.delete( element );\n\t\t// Not removing group from element on purpose!\n\t\t// If other parts of code have reference to this element, they will be able to get references to other elements from the group.\n\t}\n}\n\n// Helper function for `view.writer.wrap`. Checks if given element has any children that are not ui elements.\nfunction _hasNonUiChildren( parent ) {\n\treturn Array.from( parent.getChildren() ).some( child => !child.is( 'uiElement' ) );\n}\n\n/**\n * The `attribute` passed to {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`}\n * must be an instance of {@link module:engine/view/attributeelement~AttributeElement `AttributeElement`}.\n *\n * @error view-writer-wrap-invalid-attribute\n */\n\n// Returns first parent container of specified {@link module:engine/view/position~Position Position}.\n// Position's parent node is checked as first, then next parents are checked.\n// Note that {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n//\n// @param {module:engine/view/position~Position} position Position used as a start point to locate parent container.\n// @returns {module:engine/view/containerelement~ContainerElement|module:engine/view/documentfragment~DocumentFragment|undefined}\n// Parent container element or `undefined` if container is not found.\nfunction getParentContainer( position ) {\n\tlet parent = position.parent;\n\n\twhile ( !isContainerOrFragment( parent ) ) {\n\t\tif ( !parent ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\n\treturn parent;\n}\n\n// Checks if first {@link module:engine/view/attributeelement~AttributeElement AttributeElement} provided to the function\n// can be wrapped outside second element. It is done by comparing elements'\n// {@link module:engine/view/attributeelement~AttributeElement#priority priorities}, if both have same priority\n// {@link module:engine/view/element~Element#getIdentity identities} are compared.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} a\n// @param {module:engine/view/attributeelement~AttributeElement} b\n// @returns {Boolean}\nfunction shouldABeOutsideB( a, b ) {\n\tif ( a.priority < b.priority ) {\n\t\treturn true;\n\t} else if ( a.priority > b.priority ) {\n\t\treturn false;\n\t}\n\n\t// When priorities are equal and names are different - use identities.\n\treturn a.getIdentity() < b.getIdentity();\n}\n\n// Returns new position that is moved to near text node. Returns same position if there is no text node before of after\n// specified position.\n//\n//\t\t

    foo[]

    ->

    foo{}

    \n//\t\t

    []foo

    ->

    {}foo

    \n//\n// @param {module:engine/view/position~Position} position\n// @returns {module:engine/view/position~Position} Position located inside text node or same position if there is no text nodes\n// before or after position location.\nfunction movePositionToTextNode( position ) {\n\tconst nodeBefore = position.nodeBefore;\n\n\tif ( nodeBefore && nodeBefore.is( '$text' ) ) {\n\t\treturn new Position( nodeBefore, nodeBefore.data.length );\n\t}\n\n\tconst nodeAfter = position.nodeAfter;\n\n\tif ( nodeAfter && nodeAfter.is( '$text' ) ) {\n\t\treturn new Position( nodeAfter, 0 );\n\t}\n\n\treturn position;\n}\n\n// Breaks text node into two text nodes when possible.\n//\n//\t\t

    foo{}bar

    ->

    foo[]bar

    \n//\t\t

    {}foobar

    ->

    []foobar

    \n//\t\t

    foobar{}

    ->

    foobar[]

    \n//\n// @param {module:engine/view/position~Position} position Position that need to be placed inside text node.\n// @returns {module:engine/view/position~Position} New position after breaking text node.\nfunction breakTextNode( position ) {\n\tif ( position.offset == position.parent.data.length ) {\n\t\treturn new Position( position.parent.parent, position.parent.index + 1 );\n\t}\n\n\tif ( position.offset === 0 ) {\n\t\treturn new Position( position.parent.parent, position.parent.index );\n\t}\n\n\t// Get part of the text that need to be moved.\n\tconst textToMove = position.parent.data.slice( position.offset );\n\n\t// Leave rest of the text in position's parent.\n\tposition.parent._data = position.parent.data.slice( 0, position.offset );\n\n\t// Insert new text node after position's parent text node.\n\tposition.parent.parent._insertChild( position.parent.index + 1, new Text( position.root.document, textToMove ) );\n\n\t// Return new position between two newly created text nodes.\n\treturn new Position( position.parent.parent, position.parent.index + 1 );\n}\n\n// Merges two text nodes into first node. Removes second node and returns merge position.\n//\n// @param {module:engine/view/text~Text} t1 First text node to merge. Data from second text node will be moved at the end of\n// this text node.\n// @param {module:engine/view/text~Text} t2 Second text node to merge. This node will be removed after merging.\n// @returns {module:engine/view/position~Position} Position after merging text nodes.\nfunction mergeTextNodes( t1, t2 ) {\n\t// Merge text data into first text node and remove second one.\n\tconst nodeBeforeLength = t1.data.length;\n\tt1._data += t2.data;\n\tt2._remove();\n\n\treturn new Position( t1, nodeBeforeLength );\n}\n\n// Checks if provided nodes are valid to insert.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n// contains instances that are not supported ones (see error description for valid ones.\n//\n// @param Iterable. nodes\n// @param {Object} errorContext\nfunction validateNodesToInsert( nodes, errorContext ) {\n\tfor ( const node of nodes ) {\n\t\tif ( !validNodesToInsert.some( ( validNode => node instanceof validNode ) ) ) { // eslint-disable-line no-use-before-define\n\t\t\t/**\n\t\t\t * One of the nodes to be inserted is of an invalid type.\n\t\t\t *\n\t\t\t * Nodes to be inserted with {@link module:engine/view/downcastwriter~DowncastWriter#insert `DowncastWriter#insert()`} should be\n\t\t\t * of the following types:\n\t\t\t *\n\t\t\t * * {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n\t\t\t * * {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n\t\t\t * * {@link module:engine/view/emptyelement~EmptyElement EmptyElement},\n\t\t\t * * {@link module:engine/view/uielement~UIElement UIElement},\n\t\t\t * * {@link module:engine/view/rawelement~RawElement RawElement},\n\t\t\t * * {@link module:engine/view/text~Text Text}.\n\t\t\t *\n\t\t\t * @error view-writer-insert-invalid-node-type\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-insert-invalid-node-type', errorContext );\n\t\t}\n\n\t\tif ( !node.is( '$text' ) ) {\n\t\t\tvalidateNodesToInsert( node.getChildren(), errorContext );\n\t\t}\n\t}\n}\n\nconst validNodesToInsert = [ Text, AttributeElement, ContainerElement, EmptyElement, RawElement, UIElement ];\n\n// Checks if node is ContainerElement or DocumentFragment, because in most cases they should be treated the same way.\n//\n// @param {module:engine/view/node~Node} node\n// @returns {Boolean} Returns `true` if node is instance of ContainerElement or DocumentFragment.\nfunction isContainerOrFragment( node ) {\n\treturn node && ( node.is( 'containerElement' ) || node.is( 'documentFragment' ) );\n}\n\n// Checks if {@link module:engine/view/range~Range#start range start} and {@link module:engine/view/range~Range#end range end} are placed\n// inside same {@link module:engine/view/containerelement~ContainerElement container element}.\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when validation fails.\n//\n// @param {module:engine/view/range~Range} range\n// @param {Object} errorContext\nfunction validateRangeContainer( range, errorContext ) {\n\tconst startContainer = getParentContainer( range.start );\n\tconst endContainer = getParentContainer( range.end );\n\n\tif ( !startContainer || !endContainer || startContainer !== endContainer ) {\n\t\t/**\n\t\t * The container of the given range is invalid.\n\t\t *\n\t\t * This may happen if {@link module:engine/view/range~Range#start range start} and\n\t\t * {@link module:engine/view/range~Range#end range end} positions are not placed inside the same container element or\n\t\t * a parent container for these positions cannot be found.\n\t\t *\n\t\t * Methods like {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#remove()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#clean()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#unwrap()`} need to be called\n\t\t * on a range that has its start and end positions located in the same container element. Both positions can be\n\t\t * nested within other elements (e.g. an attribute element) but the closest container ancestor must be the same.\n\t\t *\n\t\t * @error view-writer-invalid-range-container\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-invalid-range-container', errorContext );\n\t}\n}\n\n// Checks if two attribute elements can be joined together. Elements can be joined together if, and only if\n// they do not have ids specified.\n//\n// @private\n// @param {module:engine/view/element~Element} a\n// @param {module:engine/view/element~Element} b\n// @returns {Boolean}\nfunction canBeJoined( a, b ) {\n\treturn a.id === null && b.id === null;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/istext\n */\n\n/**\n * Checks if the object is a native DOM Text node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isText( obj ) {\n\treturn Object.prototype.toString.call( obj ) == '[object Text]';\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\n\n/**\n * Set of utilities related to handling block and inline fillers.\n *\n * Browsers do not allow to put caret in elements which does not have height. Because of it, we need to fill all\n * empty elements which should be selectable with elements or characters called \"fillers\". Unfortunately there is no one\n * universal filler, this is why two types are uses:\n *\n * * Block filler is an element which fill block elements, like `

    `. CKEditor uses `
    ` as a block filler during the editing,\n * as browsers do natively. So instead of an empty `

    ` there will be `


    `. The advantage of block filler is that\n * it is transparent for the selection, so when the caret is before the `
    ` and user presses right arrow he will be\n * moved to the next paragraph, not after the `
    `. The disadvantage is that it breaks a block, so it can not be used\n * in the middle of a line of text. The {@link module:engine/view/filler~BR_FILLER `
    ` filler} can be replaced with any other\n * character in the data output, for instance {@link module:engine/view/filler~NBSP_FILLER non-breaking space} or\n * {@link module:engine/view/filler~MARKED_NBSP_FILLER marked non-breaking space}.\n *\n * * Inline filler is a filler which does not break a line of text, so it can be used inside the text, for instance in the empty\n * `` surrendered by text: `foobar`, if we want to put the caret there. CKEditor uses a sequence of the zero-width\n * spaces as an {@link module:engine/view/filler~INLINE_FILLER inline filler} having the predetermined\n * {@link module:engine/view/filler~INLINE_FILLER_LENGTH length}. A sequence is used, instead of a single character to\n * avoid treating random zero-width spaces as the inline filler. Disadvantage of the inline filler is that it is not\n * transparent for the selection. The arrow key moves the caret between zero-width spaces characters, so the additional\n * code is needed to handle the caret.\n *\n * Both inline and block fillers are handled by the {@link module:engine/view/renderer~Renderer renderer} and are not present in the\n * view.\n *\n * @module engine/view/filler\n */\n\n/**\n * Non-breaking space filler creator. This function creates the ` ` text node.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~MARKED_NBSP_FILLER\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\nexport const NBSP_FILLER = domDocument => domDocument.createTextNode( '\\u00A0' );\n\n/**\n * Marked non-breaking space filler creator. This function creates the ` ` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\nexport const MARKED_NBSP_FILLER = domDocument => {\n\tconst span = domDocument.createElement( 'span' );\n\tspan.dataset.ckeFiller = true;\n\tspan.innerHTML = '\\u00A0';\n\n\treturn span;\n};\n\n/**\n * `
    ` filler creator. This function creates the `
    ` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @see module:engine/view/filler~MARKED_NBSP_FILLER\n * @function\n */\nexport const BR_FILLER = domDocument => {\n\tconst fillerBr = domDocument.createElement( 'br' );\n\tfillerBr.dataset.ckeFiller = true;\n\n\treturn fillerBr;\n};\n\n/**\n * Length of the {@link module:engine/view/filler~INLINE_FILLER INLINE_FILLER}.\n */\nexport const INLINE_FILLER_LENGTH = 7;\n\n/**\n * Inline filler which is a sequence of the word joiners.\n *\n * @type {String}\n */\nexport const INLINE_FILLER = '\\u2060'.repeat( INLINE_FILLER_LENGTH );\n\n/**\n * Checks if the node is a text node which starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( 'foo' ) ); // false\n *\t\tstartsWithFiller( document.createElement( 'p' ) ); // false\n *\n * @param {Node} domNode DOM node.\n * @returns {Boolean} True if the text node starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function startsWithFiller( domNode ) {\n\treturn isText( domNode ) && ( domNode.data.substr( 0, INLINE_FILLER_LENGTH ) === INLINE_FILLER );\n}\n\n/**\n * Checks if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // false\n *\n * @param {Text} domText DOM text node.\n * @returns {Boolean} True if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function isInlineFiller( domText ) {\n\treturn domText.data.length == INLINE_FILLER_LENGTH && startsWithFiller( domText );\n}\n\n/**\n * Get string data from the text node, removing an {@link module:engine/view/filler~INLINE_FILLER inline filler} from it,\n * if text node contains it.\n *\n *\t\tgetDataWithoutFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ) == 'foo' // true\n *\t\tgetDataWithoutFiller( document.createTextNode( 'foo' ) ) == 'foo' // true\n *\n * @param {Text} domText DOM text node, possible with inline filler.\n * @returns {String} Data without filler.\n */\nexport function getDataWithoutFiller( domText ) {\n\tif ( startsWithFiller( domText ) ) {\n\t\treturn domText.data.slice( INLINE_FILLER_LENGTH );\n\t} else {\n\t\treturn domText.data;\n\t}\n}\n\n/**\n * Assign key observer which move cursor from the end of the inline filler to the beginning of it when\n * the left arrow is pressed, so the filler does not break navigation.\n *\n * @param {module:engine/view/view~View} view View controller instance we should inject quirks handling on.\n */\nexport function injectQuirksHandling( view ) {\n\tview.document.on( 'arrowKey', jumpOverInlineFiller, { priority: 'low' } );\n}\n\n// Move cursor from the end of the inline filler to the beginning of it when, so the filler does not break navigation.\nfunction jumpOverInlineFiller( evt, data ) {\n\tif ( data.keyCode == keyCodes.arrowleft ) {\n\t\tconst domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n\n\t\tif ( domSelection.rangeCount == 1 && domSelection.getRangeAt( 0 ).collapsed ) {\n\t\t\tconst domParent = domSelection.getRangeAt( 0 ).startContainer;\n\t\t\tconst domOffset = domSelection.getRangeAt( 0 ).startOffset;\n\n\t\t\tif ( startsWithFiller( domParent ) && domOffset <= INLINE_FILLER_LENGTH ) {\n\t\t\t\tdomSelection.collapse( domParent, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/fastdiff\n */\n\n/**\n * Finds positions of the first and last change in the given string/array and generates a set of changes:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ { index: 2, type: 'insert', values: [ 'x', 'y', 'z' ] } ]\n *\n *\t\tfastDiff( '12a', '12aa' );\n *\t\t// [ { index: 3, type: 'insert', values: [ 'a' ] } ]\n *\n *\t\tfastDiff( '12xyza', '12a' );\n *\t\t// [ { index: 2, type: 'delete', howMany: 3 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'a' ], [ '1', '2', 'a' ] );\n *\t\t// [ { index: 3, type: 'delete', howMany: 1 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'b', 'c', '3' ], [ '2', 'a', 'b' ] );\n *\t\t// [ { index: 0, type: 'insert', values: [ '2', 'a', 'b' ] }, { index: 3, type: 'delete', howMany: 6 } ]\n *\n * Passed arrays can contain any type of data, however to compare them correctly custom comparator function\n * should be passed as a third parameter:\n *\n *\t\tfastDiff( [ { value: 1 }, { value: 2 } ], [ { value: 1 }, { value: 3 } ], ( a, b ) => {\n *\t\t\treturn a.value === b.value;\n *\t\t} );\n *\t\t// [ { index: 1, type: 'insert', values: [ { value: 3 } ] }, { index: 2, type: 'delete', howMany: 1 } ]\n *\n * The resulted set of changes can be applied to the input in order to transform it into the output, for example:\n *\n *\t\tlet input = '12abc3';\n *\t\tconst output = '2ab';\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + change.values.join( '' ) + input.substring( change.index );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + input.substring( change.index + change.howMany );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * or in case of arrays:\n *\n *\t\tlet input = [ '1', '2', 'a', 'b', 'c', '3' ];\n *\t\tconst output = [ '2', 'a', 'b' ];\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( change.values, input.slice( change.index ) );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( input.slice( change.index + change.howMany ) );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * By passing `true` as the fourth parameter (`atomicChanges`) the output of this function will become compatible with\n * the {@link module:utils/diff~diff `diff()`} function:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ 'equal', 'equal', 'insert', 'insert', 'insert', 'equal' ]\n *\n * The default output format of this function is compatible with the output format of\n * {@link module:utils/difftochanges~diffToChanges `diffToChanges()`}. The `diffToChanges()` input format is, in turn,\n * compatible with the output of {@link module:utils/diff~diff `diff()`}:\n *\n *\t\tconst a = '1234';\n *\t\tconst b = '12xyz34';\n *\n *\t\t// Both calls will return the same results (grouped changes format).\n *\t\tfastDiff( a, b );\n *\t\tdiffToChanges( diff( a, b ) );\n *\n *\t\t// Again, both calls will return the same results (atomic changes format).\n *\t\tfastDiff( a, b, null, true );\n *\t\tdiff( a, b );\n *\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Input array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default `===` (strict equal operator) is used.\n * @param {Boolean} [atomicChanges=false] Whether an array of `inset|delete|equal` operations should\n * be returned instead of changes set. This makes this function compatible with {@link module:utils/diff~diff `diff()`}.\n * @returns {Array} Array of changes.\n */\nexport default function fastDiff( a, b, cmp, atomicChanges = false ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\t// Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because,\n\t// unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string.\n\t// One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units.\n\t// See ckeditor/ckeditor5#3147.\n\t//\n\t// We need to make sure here that fastDiff() works identical to diff().\n\tif ( !Array.isArray( a ) ) {\n\t\ta = Array.prototype.slice.call( a );\n\t}\n\n\tif ( !Array.isArray( b ) ) {\n\t\tb = Array.prototype.slice.call( b );\n\t}\n\n\t// Find first and last change.\n\tconst changeIndexes = findChangeBoundaryIndexes( a, b, cmp );\n\n\t// Transform into changes array.\n\treturn atomicChanges ? changeIndexesToAtomicChanges( changeIndexes, b.length ) : changeIndexesToChanges( b, changeIndexes );\n}\n\n// Finds position of the first and last change in the given arrays. For example:\n//\n//\t\tconst indexes = findChangeBoundaryIndexes( [ '1', '2', '3', '4' ], [ '1', '3', '4', '2', '4' ] );\n//\t\tconsole.log( indexes ); // { firstIndex: 1, lastIndexOld: 3, lastIndexNew: 4 }\n//\n// The above indexes means that in the first array the modified part is `1[23]4` and in the second array it is `1[342]4`.\n// Based on such indexes, array with `insert`/`delete` operations which allows transforming first value into the second one\n// can be generated.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Object}\n// @returns {Number} return.firstIndex Index of the first change in both values (always the same for both).\n// @returns {Number} result.lastIndexOld Index of the last common value in `arr1`.\n// @returns {Number} result.lastIndexNew Index of the last common value in `arr2`.\nfunction findChangeBoundaryIndexes( arr1, arr2, cmp ) {\n\t// Find the first difference between passed values.\n\tconst firstIndex = findFirstDifferenceIndex( arr1, arr2, cmp );\n\n\t// If arrays are equal return -1 indexes object.\n\tif ( firstIndex === -1 ) {\n\t\treturn { firstIndex: -1, lastIndexOld: -1, lastIndexNew: -1 };\n\t}\n\n\t// Remove the common part of each value and reverse them to make it simpler to find the last difference between them.\n\tconst oldArrayReversed = cutAndReverse( arr1, firstIndex );\n\tconst newArrayReversed = cutAndReverse( arr2, firstIndex );\n\n\t// Find the first difference between reversed values.\n\t// It should be treated as \"how many elements from the end the last difference occurred\".\n\t//\n\t// For example:\n\t//\n\t// \t\t\t\tinitial\t->\tafter cut\t-> reversed:\n\t// oldValue:\t'321ba'\t->\t'21ba'\t\t-> 'ab12'\n\t// newValue:\t'31xba'\t->\t'1xba'\t\t-> 'abx1'\n\t// lastIndex:\t\t\t\t\t\t\t-> 2\n\t//\n\t// So the last change occurred two characters from the end of the arrays.\n\tconst lastIndex = findFirstDifferenceIndex( oldArrayReversed, newArrayReversed, cmp );\n\n\t// Use `lastIndex` to calculate proper offset, starting from the beginning (`lastIndex` kind of starts from the end).\n\tconst lastIndexOld = arr1.length - lastIndex;\n\tconst lastIndexNew = arr2.length - lastIndex;\n\n\treturn { firstIndex, lastIndexOld, lastIndexNew };\n}\n\n// Returns a first index on which given arrays differ. If both arrays are the same, -1 is returned.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Number}\nfunction findFirstDifferenceIndex( arr1, arr2, cmp ) {\n\tfor ( let i = 0; i < Math.max( arr1.length, arr2.length ); i++ ) {\n\t\tif ( arr1[ i ] === undefined || arr2[ i ] === undefined || !cmp( arr1[ i ], arr2[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1; // Return -1 if arrays are equal.\n}\n\n// Returns a copy of the given array with `howMany` elements removed starting from the beginning and in reversed order.\n//\n// @param {Array} arr Array to be processed.\n// @param {Number} howMany How many elements from array beginning to remove.\n// @returns {Array} Shortened and reversed array.\nfunction cutAndReverse( arr, howMany ) {\n\treturn arr.slice( howMany ).reverse();\n}\n\n// Generates changes array based on change indexes from `findChangeBoundaryIndexes` function. This function will\n// generate array with 0 (no changes), 1 (deletion or insertion) or 2 records (insertion and deletion).\n//\n// @param {Array} newArray New array for which change indexes were calculated.\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @returns {Array.} Array of changes compatible with {@link module:utils/difftochanges~diffToChanges} format.\nfunction changeIndexesToChanges( newArray, changeIndexes ) {\n\tconst result = [];\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// Order operations as 'insert', 'delete' array to keep compatibility with {@link module:utils/difftochanges~diffToChanges}\n\t// in most cases. However, 'diffToChanges' does not stick to any order so in some cases\n\t// (for example replacing '12345' with 'abcd') it will generate 'delete', 'insert' order.\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex,\n\t\t\ttype: 'insert',\n\t\t\tvalues: newArray.slice( firstIndex, lastIndexNew )\n\t\t} );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex + ( lastIndexNew - firstIndex ), // Increase index of what was inserted.\n\t\t\ttype: 'delete',\n\t\t\thowMany: lastIndexOld - firstIndex\n\t\t} );\n\t}\n\n\treturn result;\n}\n\n// Generates array with set `equal|insert|delete` operations based on change indexes from `findChangeBoundaryIndexes` function.\n//\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @param {Number} newLength Length of the new array on which `findChangeBoundaryIndexes` calculated change indexes.\n// @returns {Array.} Array of changes compatible with {@link module:utils/diff~diff} format.\nfunction changeIndexesToAtomicChanges( changeIndexes, newLength ) {\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// No changes.\n\tif ( firstIndex === -1 ) {\n\t\treturn Array( newLength ).fill( 'equal' );\n\t}\n\n\tlet result = [];\n\tif ( firstIndex > 0 ) {\n\t\tresult = result.concat( Array( firstIndex ).fill( 'equal' ) );\n\t}\n\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexNew - firstIndex ).fill( 'insert' ) );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexOld - firstIndex ).fill( 'delete' ) );\n\t}\n\n\tif ( lastIndexNew < newLength ) {\n\t\tresult = result.concat( Array( newLength - lastIndexNew ).fill( 'equal' ) );\n\t}\n\n\treturn result;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/diff\n */\n\nimport fastDiff from '../src/fastdiff';\n\n// The following code is based on the \"O(NP) Sequence Comparison Algorithm\"\n// by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n\n/**\n * Calculates the difference between two arrays or strings producing an array containing a list of changes\n * necessary to transform input into output.\n *\n *\t\tdiff( 'aba', 'acca' ); // [ 'equal', 'insert', 'insert', 'delete', 'equal' ]\n *\n * This function is based on the \"O(NP) Sequence Comparison Algorithm\" by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n * Unfortunately, while it gives the most precise results, its to complex for longer strings/arrow (above 200 items).\n * Therefore, `diff()` automatically switches to {@link module:utils/fastdiff~fastDiff `fastDiff()`} when detecting\n * such a scenario. The return formats of both functions are identical.\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Output array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default === is used.\n * @returns {Array} Array of changes.\n */\nexport default function diff( a, b, cmp ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\tconst aLength = a.length;\n\tconst bLength = b.length;\n\n\t// Perform `fastDiff` for longer strings/arrays (see #269).\n\tif ( aLength > 200 || bLength > 200 || aLength + bLength > 300 ) {\n\t\treturn diff.fastDiff( a, b, cmp, true );\n\t}\n\n\t// Temporary action type statics.\n\tlet _insert, _delete;\n\n\t// Swapped the arrays to use the shorter one as the first one.\n\tif ( bLength < aLength ) {\n\t\tconst tmp = a;\n\n\t\ta = b;\n\t\tb = tmp;\n\n\t\t// We swap the action types as well.\n\t\t_insert = 'delete';\n\t\t_delete = 'insert';\n\t} else {\n\t\t_insert = 'insert';\n\t\t_delete = 'delete';\n\t}\n\n\tconst m = a.length;\n\tconst n = b.length;\n\tconst delta = n - m;\n\n\t// Edit scripts, for each diagonal.\n\tconst es = {};\n\t// Furthest points, the furthest y we can get on each diagonal.\n\tconst fp = {};\n\n\tfunction snake( k ) {\n\t\t// We use -1 as an alternative below to handle initial values ( instead of filling the fp with -1 first ).\n\t\t// Furthest points (y) on the diagonal below k.\n\t\tconst y1 = ( fp[ k - 1 ] !== undefined ? fp[ k - 1 ] : -1 ) + 1;\n\t\t// Furthest points (y) on the diagonal above k.\n\t\tconst y2 = fp[ k + 1 ] !== undefined ? fp[ k + 1 ] : -1;\n\t\t// The way we should go to get further.\n\t\tconst dir = y1 > y2 ? -1 : 1;\n\n\t\t// Clone previous changes array (if any).\n\t\tif ( es[ k + dir ] ) {\n\t\t\tes[ k ] = es[ k + dir ].slice( 0 );\n\t\t}\n\n\t\t// Create changes array.\n\t\tif ( !es[ k ] ) {\n\t\t\tes[ k ] = [];\n\t\t}\n\n\t\t// Push the action.\n\t\tes[ k ].push( y1 > y2 ? _insert : _delete );\n\n\t\t// Set the beginning coordinates.\n\t\tlet y = Math.max( y1, y2 );\n\t\tlet x = y - k;\n\n\t\t// Traverse the diagonal as long as the values match.\n\t\twhile ( x < m && y < n && cmp( a[ x ], b[ y ] ) ) {\n\t\t\tx++;\n\t\t\ty++;\n\t\t\t// Push no change action.\n\t\t\tes[ k ].push( 'equal' );\n\t\t}\n\n\t\treturn y;\n\t}\n\n\tlet p = 0;\n\tlet k;\n\n\t// Traverse the graph until we reach the end of the longer string.\n\tdo {\n\t\t// Updates furthest points and edit scripts for diagonals below delta.\n\t\tfor ( k = -p; k < delta; k++ ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest points and edit scripts for diagonals above delta.\n\t\tfor ( k = delta + p; k > delta; k-- ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest point and edit script for the delta diagonal.\n\t\t// note that the delta diagonal is the one which goes through the sink (m, n).\n\t\tfp[ delta ] = snake( delta );\n\n\t\tp++;\n\t} while ( fp[ delta ] !== n );\n\n\t// Return the final list of edit changes.\n\t// We remove the first item that represents the action for the injected nulls.\n\treturn es[ delta ].slice( 1 );\n}\n\n// Store the API in static property to easily overwrite it in tests.\n// Too bad dependency injection does not work in Webpack + ES 6 (const) + Babel.\ndiff.fastDiff = fastDiff;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/insertat\n */\n\n/**\n * Inserts node to the parent at given index.\n *\n * @param {Element} parentElement Parent element.\n * @param {Number} index Insertions index.\n * @param {Node} nodeToInsert Node to insert.\n */\nexport default function insertAt( parentElement, index, nodeToInsert ) {\n\tparentElement.insertBefore( nodeToInsert, parentElement.childNodes[ index ] || null );\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/remove\n */\n\n/**\n * Removes given node from parent.\n *\n * @param {Node} node Node to remove.\n */\nexport default function remove( node ) {\n\tconst parent = node.parentNode;\n\n\tif ( parent ) {\n\t\tparent.removeChild( node );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module utils/dom/iscomment\n */\n\n/**\n * Checks whether the object is a native DOM Comment node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isComment( obj ) {\n\treturn obj && obj.nodeType === Node.COMMENT_NODE;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/isnode\n */\n\n/**\n * Checks if the object is a native DOM Node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isNode( obj ) {\n\tif ( obj ) {\n\t\tif ( obj.defaultView ) {\n\t\t\treturn obj instanceof obj.defaultView.Document;\n\t\t} else if ( obj.ownerDocument && obj.ownerDocument.defaultView ) {\n\t\t\treturn obj instanceof obj.ownerDocument.defaultView.Node;\n\t\t}\n\t}\n\n\treturn false;\n}\n","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./renderer.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./renderer.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module engine/view/renderer\n */\n\nimport ViewText from './text';\nimport ViewPosition from './position';\nimport { INLINE_FILLER, INLINE_FILLER_LENGTH, startsWithFiller, isInlineFiller } from './filler';\n\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport insertAt from '@ckeditor/ckeditor5-utils/src/dom/insertat';\nimport remove from '@ckeditor/ckeditor5-utils/src/dom/remove';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isComment from '@ckeditor/ckeditor5-utils/src/dom/iscomment';\nimport isNode from '@ckeditor/ckeditor5-utils/src/dom/isnode';\nimport fastDiff from '@ckeditor/ckeditor5-utils/src/fastdiff';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n\nimport '../../theme/renderer.css';\n\n/**\n * Renderer is responsible for updating the DOM structure and the DOM selection based on\n * the {@link module:engine/view/renderer~Renderer#markToSync information about updated view nodes}.\n * In other words, it renders the view to the DOM.\n *\n * Its main responsibility is to make only the necessary, minimal changes to the DOM. However, unlike in many\n * virtual DOM implementations, the primary reason for doing minimal changes is not the performance but ensuring\n * that native editing features such as text composition, autocompletion, spell checking, selection's x-index are\n * affected as little as possible.\n *\n * Renderer uses {@link module:engine/view/domconverter~DomConverter} to transform view nodes and positions\n * to and from the DOM.\n */\nexport default class Renderer {\n\t/**\n\t * Creates a renderer instance.\n\t *\n\t * @param {module:engine/view/domconverter~DomConverter} domConverter Converter instance.\n\t * @param {module:engine/view/documentselection~DocumentSelection} selection View selection.\n\t */\n\tconstructor( domConverter, selection ) {\n\t\t/**\n\t\t * Set of DOM Documents instances.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.domDocuments = new Set();\n\n\t\t/**\n\t\t * Converter instance.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/domconverter~DomConverter}\n\t\t */\n\t\tthis.domConverter = domConverter;\n\n\t\t/**\n\t\t * Set of nodes which attributes changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedAttributes = new Set();\n\n\t\t/**\n\t\t * Set of elements which child lists changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedChildren = new Set();\n\n\t\t/**\n\t\t * Set of text nodes which text data changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedTexts = new Set();\n\n\t\t/**\n\t\t * View selection. Renderer updates DOM selection based on the view selection.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/documentselection~DocumentSelection}\n\t\t */\n\t\tthis.selection = selection;\n\n\t\t/**\n\t\t * Indicates if the view document is focused and selection can be rendered. Selection will not be rendered if\n\t\t * this is set to `false`.\n\t\t *\n\t\t * @member {Boolean}\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'isFocused', false );\n\n\t\t/**\n\t\t * Indicates whether the user is making a selection in the document (e.g. holding the mouse button and moving the cursor).\n\t\t * When they stop selecting, the property goes back to `false`.\n\t\t *\n\t\t * Note: In some browsers, the renderer will stop rendering the selection and inline fillers while the user is making\n\t\t * a selection to avoid glitches in DOM selection\n\t\t * (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\t *\n\t\t * @member {Boolean}\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'isSelecting', false );\n\n\t\t// Rendering the selection and inline filler manipulation should be postponed in (non-Android) Blink until the user finishes\n\t\t// creating the selection in DOM to avoid accidental selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\t// When the user stops selecting, all pending changes should be rendered ASAP, though.\n\t\tif ( env.isBlink && !env.isAndroid ) {\n\t\t\tthis.on( 'change:isSelecting', () => {\n\t\t\t\tif ( !this.isSelecting ) {\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * The text node in which the inline filler was rendered.\n\t\t *\n\t\t * @private\n\t\t * @member {Text}\n\t\t */\n\t\tthis._inlineFiller = null;\n\n\t\t/**\n\t\t * DOM element containing fake selection.\n\t\t *\n\t\t * @private\n\t\t * @type {null|HTMLElement}\n\t\t */\n\t\tthis._fakeSelectionContainer = null;\n\t}\n\n\t/**\n\t * Marks a view node to be updated in the DOM by {@link #render `render()`}.\n\t *\n\t * Note that only view nodes whose parents have corresponding DOM elements need to be marked to be synchronized.\n\t *\n\t * @see #markedAttributes\n\t * @see #markedChildren\n\t * @see #markedTexts\n\t *\n\t * @param {module:engine/view/document~ChangeType} type Type of the change.\n\t * @param {module:engine/view/node~Node} node Node to be marked.\n\t */\n\tmarkToSync( type, node ) {\n\t\tif ( type === 'text' ) {\n\t\t\tif ( this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis.markedTexts.add( node );\n\t\t\t}\n\t\t} else {\n\t\t\t// If the node has no DOM element it is not rendered yet,\n\t\t\t// its children/attributes do not need to be marked to be sync.\n\t\t\tif ( !this.domConverter.mapViewToDom( node ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( type === 'attributes' ) {\n\t\t\t\tthis.markedAttributes.add( node );\n\t\t\t} else if ( type === 'children' ) {\n\t\t\t\tthis.markedChildren.add( node );\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Unknown type passed to Renderer.markToSync.\n\t\t\t\t *\n\t\t\t\t * @error view-renderer-unknown-type\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'view-renderer-unknown-type', this );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Renders all buffered changes ({@link #markedAttributes}, {@link #markedChildren} and {@link #markedTexts}) and\n\t * the current view selection (if needed) to the DOM by applying a minimal set of changes to it.\n\t *\n\t * Renderer tries not to break the text composition (e.g. IME) and x-index of the selection,\n\t * so it does as little as it is needed to update the DOM.\n\t *\n\t * Renderer also handles {@link module:engine/view/filler fillers}. Especially, it checks if the inline filler is needed\n\t * at the selection position and adds or removes it. To prevent breaking text composition inline filler will not be\n\t * removed as long as the selection is in the text node which needed it at first.\n\t */\n\trender() {\n\t\tlet inlineFillerPosition;\n\t\tconst isInlineFillerRenderingPossible = env.isBlink && !env.isAndroid ? !this.isSelecting : true;\n\n\t\t// Refresh mappings.\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildrenMappings( element );\n\t\t}\n\n\t\t// Don't manipulate inline fillers while the selection is being made in (non-Android) Blink to prevent accidental\n\t\t// DOM selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\tif ( isInlineFillerRenderingPossible ) {\n\t\t\t// There was inline filler rendered in the DOM but it's not\n\t\t\t// at the selection position any more, so we can remove it\n\t\t\t// (cause even if it's needed, it must be placed in another location).\n\t\t\tif ( this._inlineFiller && !this._isSelectionInInlineFiller() ) {\n\t\t\t\tthis._removeInlineFiller();\n\t\t\t}\n\n\t\t\t// If we've got the filler, let's try to guess its position in the view.\n\t\t\tif ( this._inlineFiller ) {\n\t\t\t\tinlineFillerPosition = this._getInlineFillerPosition();\n\t\t\t}\n\t\t\t// Otherwise, if it's needed, create it at the selection position.\n\t\t\telse if ( this._needsInlineFillerAtSelection() ) {\n\t\t\t\tinlineFillerPosition = this.selection.getFirstPosition();\n\n\t\t\t\t// Do not use `markToSync` so it will be added even if the parent is already added.\n\t\t\t\tthis.markedChildren.add( inlineFillerPosition.parent );\n\t\t\t}\n\t\t}\n\t\t// Paranoid check: we make sure the inline filler has any parent so it can be mapped to view position\n\t\t// by DomConverter.\n\t\telse if ( this._inlineFiller && this._inlineFiller.parentNode ) {\n\t\t\t// While the user is making selection, preserve the inline filler at its original position.\n\t\t\tinlineFillerPosition = this.domConverter.domPositionToView( this._inlineFiller );\n\t\t}\n\n\t\tfor ( const element of this.markedAttributes ) {\n\t\t\tthis._updateAttrs( element );\n\t\t}\n\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildren( element, { inlineFillerPosition } );\n\t\t}\n\n\t\tfor ( const node of this.markedTexts ) {\n\t\t\tif ( !this.markedChildren.has( node.parent ) && this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis._updateText( node, { inlineFillerPosition } );\n\t\t\t}\n\t\t}\n\n\t\t// * Check whether the inline filler is required and where it really is in the DOM.\n\t\t// At this point in most cases it will be in the DOM, but there are exceptions.\n\t\t// For example, if the inline filler was deep in the created DOM structure, it will not be created.\n\t\t// Similarly, if it was removed at the beginning of this function and then neither text nor children were updated,\n\t\t// it will not be present. Fix those and similar scenarios.\n\t\t// * Don't manipulate inline fillers while the selection is being made in (non-Android) Blink to prevent accidental\n\t\t// DOM selection collapsing\n\t\t// (https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723).\n\t\tif ( isInlineFillerRenderingPossible ) {\n\t\t\tif ( inlineFillerPosition ) {\n\t\t\t\tconst fillerDomPosition = this.domConverter.viewPositionToDom( inlineFillerPosition );\n\t\t\t\tconst domDocument = fillerDomPosition.parent.ownerDocument;\n\n\t\t\t\tif ( !startsWithFiller( fillerDomPosition.parent ) ) {\n\t\t\t\t\t// Filler has not been created at filler position. Create it now.\n\t\t\t\t\tthis._inlineFiller = addInlineFiller( domDocument, fillerDomPosition.parent, fillerDomPosition.offset );\n\t\t\t\t} else {\n\t\t\t\t\t// Filler has been found, save it.\n\t\t\t\t\tthis._inlineFiller = fillerDomPosition.parent;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// There is no filler needed.\n\t\t\t\tthis._inlineFiller = null;\n\t\t\t}\n\t\t}\n\n\t\t// First focus the new editing host, then update the selection.\n\t\t// Otherwise, FF may throw an error (https://github.com/ckeditor/ckeditor5/issues/721).\n\t\tthis._updateFocus();\n\t\tthis._updateSelection();\n\n\t\tthis.markedTexts.clear();\n\t\tthis.markedAttributes.clear();\n\t\tthis.markedChildren.clear();\n\t}\n\n\t/**\n\t * Updates mappings of view element's children.\n\t *\n\t * Children that were replaced in the view structure by similar elements (same tag name) are treated as 'replaced'.\n\t * This means that their mappings can be updated so the new view elements are mapped to the existing DOM elements.\n\t * Thanks to that these elements do not need to be re-rendered completely.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose children mappings will be updated.\n\t */\n\t_updateChildrenMappings( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM and there is no need to process it.\n\t\t\treturn;\n\t\t}\n\n\t\t// Removing nodes from the DOM as we iterate can cause `actualDomChildren`\n\t\t// (which is a live-updating `NodeList`) to get out of sync with the\n\t\t// indices that we compute as we iterate over `actions`.\n\t\t// This would produce incorrect element mappings.\n\t\t//\n\t\t// Converting live list to an array to make the list static.\n\t\tconst actualDomChildren = Array.from(\n\t\t\tthis.domConverter.mapViewToDom( viewElement ).childNodes\n\t\t);\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { withChildren: false } )\n\t\t);\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\t\tconst actions = this._findReplaceActions( diff, actualDomChildren, expectedDomChildren );\n\n\t\tif ( actions.indexOf( 'replace' ) !== -1 ) {\n\t\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action === 'replace' ) {\n\t\t\t\t\tconst insertIndex = counter.equal + counter.insert;\n\t\t\t\t\tconst deleteIndex = counter.equal + counter.delete;\n\t\t\t\t\tconst viewChild = viewElement.getChild( insertIndex );\n\n\t\t\t\t\t// UIElement and RawElement are special cases. Their children are not stored in a view (#799)\n\t\t\t\t\t// so we cannot use them with replacing flow (since they use view children during rendering\n\t\t\t\t\t// which will always result in rendering empty elements).\n\t\t\t\t\tif ( viewChild && !( viewChild.is( 'uiElement' ) || viewChild.is( 'rawElement' ) ) ) {\n\t\t\t\t\t\tthis._updateElementMappings( viewChild, actualDomChildren[ deleteIndex ] );\n\t\t\t\t\t}\n\n\t\t\t\t\tremove( expectedDomChildren[ insertIndex ] );\n\t\t\t\t\tcounter.equal++;\n\t\t\t\t} else {\n\t\t\t\t\tcounter[ action ]++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Updates mappings of a given view element.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose mappings will be updated.\n\t * @param {Node} domElement The DOM element representing the given view element.\n\t */\n\t_updateElementMappings( viewElement, domElement ) {\n\t\t// Remap 'DomConverter' bindings.\n\t\tthis.domConverter.unbindDomElement( domElement );\n\t\tthis.domConverter.bindElements( domElement, viewElement );\n\n\t\t// View element may have children which needs to be updated, but are not marked, mark them to update.\n\t\tthis.markedChildren.add( viewElement );\n\n\t\t// Because we replace new view element mapping with the existing one, the corresponding DOM element\n\t\t// will not be rerendered. The new view element may have different attributes than the previous one.\n\t\t// Since its corresponding DOM element will not be rerendered, new attributes will not be added\n\t\t// to the DOM, so we need to mark it here to make sure its attributes gets updated. See #1427 for more\n\t\t// detailed case study.\n\t\t// Also there are cases where replaced element is removed from the view structure and then has\n\t\t// its attributes changed or removed. In such cases the element will not be present in `markedAttributes`\n\t\t// and also may be the same (`element.isSimilar()`) as the reused element not having its attributes updated.\n\t\t// To prevent such situations we always mark reused element to have its attributes rerenderd (#1560).\n\t\tthis.markedAttributes.add( viewElement );\n\t}\n\n\t/**\n\t * Gets the position of the inline filler based on the current selection.\n\t * Here, we assume that we know that the filler is needed and\n\t * {@link #_isSelectionInInlineFiller is at the selection position}, and, since it is needed,\n\t * it is somewhere at the selection position.\n\t *\n\t * Note: The filler position cannot be restored based on the filler's DOM text node, because\n\t * when this method is called (before rendering), the bindings will often be broken. View-to-DOM\n\t * bindings are only dependable after rendering.\n\t *\n\t * @private\n\t * @returns {module:engine/view/position~Position}\n\t */\n\t_getInlineFillerPosition() {\n\t\tconst firstPos = this.selection.getFirstPosition();\n\n\t\tif ( firstPos.parent.is( '$text' ) ) {\n\t\t\treturn ViewPosition._createBefore( this.selection.getFirstPosition().parent );\n\t\t} else {\n\t\t\treturn firstPos;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the selection has not left the inline filler's text node.\n\t * If it is `true`, it means that the filler had been added for a reason and the selection did not\n\t * leave the filler's text node. For example, the user can be in the middle of a composition so it should not be touched.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler and selection are in the same place.\n\t */\n\t_isSelectionInInlineFiller() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Note, we can't check if selection's position equals position of the\n\t\t// this._inlineFiller node, because of #663. We may not be able to calculate\n\t\t// the filler's position in the view at this stage.\n\t\t// Instead, we check it the other way – whether selection is anchored in\n\t\t// that text node or next to it.\n\n\t\t// Possible options are:\n\t\t// \"FILLER{}\"\n\t\t// \"FILLERadded-text{}\"\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst position = this.domConverter.viewPositionToDom( selectionPosition );\n\n\t\tif ( position && isText( position.parent ) && startsWithFiller( position.parent ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Removes the inline filler.\n\t *\n\t * @private\n\t */\n\t_removeInlineFiller() {\n\t\tconst domFillerNode = this._inlineFiller;\n\n\t\t// Something weird happened and the stored node doesn't contain the filler's text.\n\t\tif ( !startsWithFiller( domFillerNode ) ) {\n\t\t\t/**\n\t\t\t * The inline filler node was lost. Most likely, something overwrote the filler text node\n\t\t\t * in the DOM.\n\t\t\t *\n\t\t\t * @error view-renderer-filler-was-lost\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-renderer-filler-was-lost', this );\n\t\t}\n\n\t\tif ( isInlineFiller( domFillerNode ) ) {\n\t\t\tdomFillerNode.remove();\n\t\t} else {\n\t\t\tdomFillerNode.data = domFillerNode.data.substr( INLINE_FILLER_LENGTH );\n\t\t}\n\n\t\tthis._inlineFiller = null;\n\t}\n\n\t/**\n\t * Checks if the inline {@link module:engine/view/filler filler} should be added.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler should be added.\n\t */\n\t_needsInlineFillerAtSelection() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst selectionParent = selectionPosition.parent;\n\t\tconst selectionOffset = selectionPosition.offset;\n\n\t\t// If there is no DOM root we do not care about fillers.\n\t\tif ( !this.domConverter.mapViewToDom( selectionParent.root ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !( selectionParent.is( 'element' ) ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Prevent adding inline filler inside elements with contenteditable=false.\n\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/1170\n\t\tif ( !isEditable( selectionParent ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// We have block filler, we do not need inline one.\n\t\tif ( selectionOffset === selectionParent.getFillerOffset() ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst nodeBefore = selectionPosition.nodeBefore;\n\t\tconst nodeAfter = selectionPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof ViewText || nodeAfter instanceof ViewText ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks if text needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} viewText View text to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateText( viewText, options ) {\n\t\tconst domText = this.domConverter.findCorrespondingDomText( viewText );\n\t\tconst newDomText = this.domConverter.viewToDom( viewText, domText.ownerDocument );\n\n\t\tconst actualText = domText.data;\n\t\tlet expectedText = newDomText.data;\n\n\t\tconst filler = options.inlineFillerPosition;\n\n\t\tif ( filler && filler.parent == viewText.parent && filler.offset == viewText.index ) {\n\t\t\texpectedText = INLINE_FILLER + expectedText;\n\t\t}\n\n\t\tif ( actualText != expectedText ) {\n\t\t\tconst actions = fastDiff( actualText, expectedText );\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action.type === 'insert' ) {\n\t\t\t\t\tdomText.insertData( action.index, action.values.join( '' ) );\n\t\t\t\t} else { // 'delete'\n\t\t\t\t\tdomText.deleteData( action.index, action.howMany );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if attribute list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement The view element to update.\n\t */\n\t_updateAttrs( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that 'viewElement' is outdated as its mapping was updated\n\t\t\t// in 'this._updateChildrenMappings()'. There is no need to process it as new view element which\n\t\t\t// replaced old 'viewElement' mapping was also added to 'this.markedAttributes'\n\t\t\t// in 'this._updateChildrenMappings()' so it will be processed separately.\n\t\t\treturn;\n\t\t}\n\n\t\tconst domAttrKeys = Array.from( domElement.attributes ).map( attr => attr.name );\n\t\tconst viewAttrKeys = viewElement.getAttributeKeys();\n\n\t\t// Add or overwrite attributes.\n\t\tfor ( const key of viewAttrKeys ) {\n\t\t\tthis.domConverter.setDomElementAttribute( domElement, key, viewElement.getAttribute( key ), viewElement );\n\t\t}\n\n\t\t// Remove from DOM attributes which do not exists in the view.\n\t\tfor ( const key of domAttrKeys ) {\n\t\t\t// All other attributes not present in the DOM should be removed.\n\t\t\tif ( !viewElement.hasAttribute( key ) ) {\n\t\t\t\tthis.domConverter.removeDomElementAttribute( domElement, key );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if elements child list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement View element to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateChildren( viewElement, options ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM.\n\t\t\t// There is no need to process it. It will be processed when re-inserted.\n\t\t\treturn;\n\t\t}\n\n\t\tconst inlineFillerPosition = options.inlineFillerPosition;\n\t\tconst actualDomChildren = this.domConverter.mapViewToDom( viewElement ).childNodes;\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { bind: true } )\n\t\t);\n\n\t\t// Inline filler element has to be created as it is present in the DOM, but not in the view. It is required\n\t\t// during diffing so text nodes could be compared correctly and also during rendering to maintain\n\t\t// proper order and indexes while updating the DOM.\n\t\tif ( inlineFillerPosition && inlineFillerPosition.parent === viewElement ) {\n\t\t\taddInlineFiller( domElement.ownerDocument, expectedDomChildren, inlineFillerPosition.offset );\n\t\t}\n\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\n\t\tlet i = 0;\n\t\tconst nodesToUnbind = new Set();\n\n\t\t// Handle deletions first.\n\t\t// This is to prevent a situation where an element that already exists in `actualDomChildren` is inserted at a different\n\t\t// index in `actualDomChildren`. Since `actualDomChildren` is a `NodeList`, this works like move, not like an insert,\n\t\t// and it disrupts the whole algorithm. See https://github.com/ckeditor/ckeditor5/issues/6367.\n\t\t//\n\t\t// It doesn't matter in what order we remove or add nodes, as long as we remove and add correct nodes at correct indexes.\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'delete' ) {\n\t\t\t\tnodesToUnbind.add( actualDomChildren[ i ] );\n\t\t\t\tremove( actualDomChildren[ i ] );\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\ti = 0;\n\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\tinsertAt( domElement, i, expectedDomChildren[ i ] );\n\t\t\t\ti++;\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\t// Force updating text nodes inside elements which did not change and do not need to be re-rendered (#1125).\n\t\t\t\t// Do it here (not in the loop above) because only after insertions the `i` index is correct.\n\t\t\t\tthis._markDescendantTextToSync( this.domConverter.domToView( expectedDomChildren[ i ] ) );\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\t// Unbind removed nodes. When node does not have a parent it means that it was removed from DOM tree during\n\t\t// comparison with the expected DOM. We don't need to check child nodes, because if child node was reinserted,\n\t\t// it was moved to DOM tree out of the removed node.\n\t\tfor ( const node of nodesToUnbind ) {\n\t\t\tif ( !node.parentNode ) {\n\t\t\t\tthis.domConverter.unbindDomElement( node );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Shorthand for diffing two arrays or node lists of DOM nodes.\n\t *\n\t * @private\n\t * @param {Array.|NodeList} actualDomChildren Actual DOM children\n\t * @param {Array.|NodeList} expectedDomChildren Expected DOM children.\n\t * @returns {Array.} The list of actions based on the {@link module:utils/diff~diff} function.\n\t */\n\t_diffNodeLists( actualDomChildren, expectedDomChildren ) {\n\t\tactualDomChildren = filterOutFakeSelectionContainer( actualDomChildren, this._fakeSelectionContainer );\n\n\t\treturn diff( actualDomChildren, expectedDomChildren, sameNodes.bind( null, this.domConverter ) );\n\t}\n\n\t/**\n\t * Finds DOM nodes that were replaced with the similar nodes (same tag name) in the view. All nodes are compared\n\t * within one `insert`/`delete` action group, for example:\n\t *\n\t * \t\tActual DOM:\t\t

    FooBarBazBax

    \n\t * \t\tExpected DOM:\t

    Bar123Baz456

    \n\t * \t\tInput actions:\t[ insert, insert, delete, delete, equal, insert, delete ]\n\t * \t\tOutput actions:\t[ insert, replace, delete, equal, replace ]\n\t *\n\t * @private\n\t * @param {Array.} actions Actions array which is a result of the {@link module:utils/diff~diff} function.\n\t * @param {Array.|NodeList} actualDom Actual DOM children\n\t * @param {Array.} expectedDom Expected DOM children.\n\t * @returns {Array.} Actions array modified with the `replace` actions.\n\t */\n\t_findReplaceActions( actions, actualDom, expectedDom ) {\n\t\t// If there is no both 'insert' and 'delete' actions, no need to check for replaced elements.\n\t\tif ( actions.indexOf( 'insert' ) === -1 || actions.indexOf( 'delete' ) === -1 ) {\n\t\t\treturn actions;\n\t\t}\n\n\t\tlet newActions = [];\n\t\tlet actualSlice = [];\n\t\tlet expectedSlice = [];\n\n\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\tfor ( const action of actions ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\texpectedSlice.push( expectedDom[ counter.equal + counter.insert ] );\n\t\t\t} else if ( action === 'delete' ) {\n\t\t\t\tactualSlice.push( actualDom[ counter.equal + counter.delete ] );\n\t\t\t} else { // equal\n\t\t\t\tnewActions = newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t\t\t\tnewActions.push( 'equal' );\n\t\t\t\t// Reset stored elements on 'equal'.\n\t\t\t\tactualSlice = [];\n\t\t\t\texpectedSlice = [];\n\t\t\t}\n\t\t\tcounter[ action ]++;\n\t\t}\n\n\t\treturn newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t}\n\n\t/**\n\t * Marks text nodes to be synchronized.\n\t *\n\t * If a text node is passed, it will be marked. If an element is passed, all descendant text nodes inside it will be marked.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewNode View node to sync.\n\t */\n\t_markDescendantTextToSync( viewNode ) {\n\t\tif ( !viewNode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( viewNode.is( '$text' ) ) {\n\t\t\tthis.markedTexts.add( viewNode );\n\t\t} else if ( viewNode.is( 'element' ) ) {\n\t\t\tfor ( const child of viewNode.getChildren() ) {\n\t\t\t\tthis._markDescendantTextToSync( child );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the selection needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateSelection() {\n\t\t// Block updating DOM selection in (non-Android) Blink while the user is selecting to prevent accidental selection collapsing.\n\t\t// Note: Structural changes in DOM must trigger selection rendering, though. Nodes the selection was anchored\n\t\t// to, may disappear in DOM which would break the selection (e.g. in real-time collaboration scenarios).\n\t\t// https://github.com/ckeditor/ckeditor5/issues/10562, https://github.com/ckeditor/ckeditor5/issues/10723\n\t\tif ( env.isBlink && !env.isAndroid && this.isSelecting && !this.markedChildren.size ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there is no selection - remove DOM and fake selections.\n\t\tif ( this.selection.rangeCount === 0 ) {\n\t\t\tthis._removeDomSelection();\n\t\t\tthis._removeFakeSelection();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst domRoot = this.domConverter.mapViewToDom( this.selection.editableElement );\n\n\t\t// Do nothing if there is no focus, or there is no DOM element corresponding to selection's editable element.\n\t\tif ( !this.isFocused || !domRoot ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Render selection.\n\t\tif ( this.selection.isFake ) {\n\t\t\tthis._updateFakeSelection( domRoot );\n\t\t} else {\n\t\t\tthis._removeFakeSelection();\n\t\t\tthis._updateDomSelection( domRoot );\n\t\t}\n\t}\n\n\t/**\n\t * Updates the fake selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the fake selection container should be added.\n\t */\n\t_updateFakeSelection( domRoot ) {\n\t\tconst domDocument = domRoot.ownerDocument;\n\n\t\tif ( !this._fakeSelectionContainer ) {\n\t\t\tthis._fakeSelectionContainer = createFakeSelectionContainer( domDocument );\n\t\t}\n\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\t// Bind fake selection container with the current selection *position*.\n\t\tthis.domConverter.bindFakeSelection( container, this.selection );\n\n\t\tif ( !this._fakeSelectionNeedsUpdate( domRoot ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !container.parentElement || container.parentElement != domRoot ) {\n\t\t\tdomRoot.appendChild( container );\n\t\t}\n\n\t\tcontainer.textContent = this.selection.fakeSelectionLabel || '\\u00A0';\n\n\t\tconst domSelection = domDocument.getSelection();\n\t\tconst domRange = domDocument.createRange();\n\n\t\tdomSelection.removeAllRanges();\n\t\tdomRange.selectNodeContents( container );\n\t\tdomSelection.addRange( domRange );\n\t}\n\n\t/**\n\t * Updates the DOM selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the DOM selection should be rendered.\n\t */\n\t_updateDomSelection( domRoot ) {\n\t\tconst domSelection = domRoot.ownerDocument.defaultView.getSelection();\n\n\t\t// Let's check whether DOM selection needs updating at all.\n\t\tif ( !this._domSelectionNeedsUpdate( domSelection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Multi-range selection is not available in most browsers, and, at least in Chrome, trying to\n\t\t// set such selection, that is not continuous, throws an error. Because of that, we will just use anchor\n\t\t// and focus of view selection.\n\t\t// Since we are not supporting multi-range selection, we also do not need to check if proper editable is\n\t\t// selected. If there is any editable selected, it is okay (editable is taken from selection anchor).\n\t\tconst anchor = this.domConverter.viewPositionToDom( this.selection.anchor );\n\t\tconst focus = this.domConverter.viewPositionToDom( this.selection.focus );\n\n\t\tdomSelection.collapse( anchor.parent, anchor.offset );\n\t\tdomSelection.extend( focus.parent, focus.offset );\n\n\t\t// Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n\t\tif ( env.isGecko ) {\n\t\t\tfixGeckoSelectionAfterBr( focus, domSelection );\n\t\t}\n\t}\n\n\t/**\n\t * Checks whether a given DOM selection needs to be updated.\n\t *\n\t * @private\n\t * @param {Selection} domSelection The DOM selection to check.\n\t * @returns {Boolean}\n\t */\n\t_domSelectionNeedsUpdate( domSelection ) {\n\t\tif ( !this.domConverter.isDomSelectionCorrect( domSelection ) ) {\n\t\t\t// Current DOM selection is in incorrect position. We need to update it.\n\t\t\treturn true;\n\t\t}\n\n\t\tconst oldViewSelection = domSelection && this.domConverter.domSelectionToView( domSelection );\n\n\t\tif ( oldViewSelection && this.selection.isEqual( oldViewSelection ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If selection is not collapsed, it does not need to be updated if it is similar.\n\t\tif ( !this.selection.isCollapsed && this.selection.isSimilar( oldViewSelection ) ) {\n\t\t\t// Selection did not changed and is correct, do not update.\n\t\t\treturn false;\n\t\t}\n\n\t\t// Selections are not similar.\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks whether the fake selection needs to be updated.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where a new fake selection container should be added.\n\t * @returns {Boolean}\n\t */\n\t_fakeSelectionNeedsUpdate( domRoot ) {\n\t\tconst container = this._fakeSelectionContainer;\n\t\tconst domSelection = domRoot.ownerDocument.getSelection();\n\n\t\t// Fake selection needs to be updated if there's no fake selection container, or the container currently sits\n\t\t// in a different root.\n\t\tif ( !container || container.parentElement !== domRoot ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Make sure that the selection actually is within the fake selection.\n\t\tif ( domSelection.anchorNode !== container && !container.contains( domSelection.anchorNode ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn container.textContent !== this.selection.fakeSelectionLabel;\n\t}\n\n\t/**\n\t * Removes the DOM selection.\n\t *\n\t * @private\n\t */\n\t_removeDomSelection() {\n\t\tfor ( const doc of this.domDocuments ) {\n\t\t\tconst domSelection = doc.getSelection();\n\n\t\t\tif ( domSelection.rangeCount ) {\n\t\t\t\tconst activeDomElement = doc.activeElement;\n\t\t\t\tconst viewElement = this.domConverter.mapDomToView( activeDomElement );\n\n\t\t\t\tif ( activeDomElement && viewElement ) {\n\t\t\t\t\tdoc.getSelection().removeAllRanges();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Removes the fake selection.\n\t *\n\t * @private\n\t */\n\t_removeFakeSelection() {\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\tif ( container ) {\n\t\t\tcontainer.remove();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if focus needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateFocus() {\n\t\tif ( this.isFocused ) {\n\t\t\tconst editable = this.selection.editableElement;\n\n\t\t\tif ( editable ) {\n\t\t\t\tthis.domConverter.focus( editable );\n\t\t\t}\n\t\t}\n\t}\n}\n\nmix( Renderer, ObservableMixin );\n\n// Checks if provided element is editable.\n//\n// @private\n// @param {module:engine/view/element~Element} element\n// @returns {Boolean}\nfunction isEditable( element ) {\n\tif ( element.getAttribute( 'contenteditable' ) == 'false' ) {\n\t\treturn false;\n\t}\n\n\tconst parent = element.findAncestor( element => element.hasAttribute( 'contenteditable' ) );\n\n\treturn !parent || parent.getAttribute( 'contenteditable' ) == 'true';\n}\n\n// Adds inline filler at a given position.\n//\n// The position can be given as an array of DOM nodes and an offset in that array,\n// or a DOM parent element and an offset in that element.\n//\n// @private\n// @param {Document} domDocument\n// @param {Element|Array.} domParentOrArray\n// @param {Number} offset\n// @returns {Text} The DOM text node that contains an inline filler.\nfunction addInlineFiller( domDocument, domParentOrArray, offset ) {\n\tconst childNodes = domParentOrArray instanceof Array ? domParentOrArray : domParentOrArray.childNodes;\n\tconst nodeAfterFiller = childNodes[ offset ];\n\n\tif ( isText( nodeAfterFiller ) ) {\n\t\tnodeAfterFiller.data = INLINE_FILLER + nodeAfterFiller.data;\n\n\t\treturn nodeAfterFiller;\n\t} else {\n\t\tconst fillerNode = domDocument.createTextNode( INLINE_FILLER );\n\n\t\tif ( Array.isArray( domParentOrArray ) ) {\n\t\t\tchildNodes.splice( offset, 0, fillerNode );\n\t\t} else {\n\t\t\tinsertAt( domParentOrArray, offset, fillerNode );\n\t\t}\n\n\t\treturn fillerNode;\n\t}\n}\n\n// Whether two DOM nodes should be considered as similar.\n// Nodes are considered similar if they have the same tag name.\n//\n// @private\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction areSimilar( node1, node2 ) {\n\treturn isNode( node1 ) && isNode( node2 ) &&\n\t\t!isText( node1 ) && !isText( node2 ) &&\n\t\t!isComment( node1 ) && !isComment( node2 ) &&\n\t\tnode1.tagName.toLowerCase() === node2.tagName.toLowerCase();\n}\n\n// Whether two dom nodes should be considered as the same.\n// Two nodes which are considered the same are:\n//\n//\t\t* Text nodes with the same text.\n//\t\t* Element nodes represented by the same object.\n//\t\t* Two block filler elements.\n//\n// @private\n// @param {String} blockFillerMode Block filler mode, see {@link module:engine/view/domconverter~DomConverter#blockFillerMode}.\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction sameNodes( domConverter, actualDomChild, expectedDomChild ) {\n\t// Elements.\n\tif ( actualDomChild === expectedDomChild ) {\n\t\treturn true;\n\t}\n\t// Texts.\n\telse if ( isText( actualDomChild ) && isText( expectedDomChild ) ) {\n\t\treturn actualDomChild.data === expectedDomChild.data;\n\t}\n\t// Block fillers.\n\telse if ( domConverter.isBlockFiller( actualDomChild ) &&\n\t\tdomConverter.isBlockFiller( expectedDomChild ) ) {\n\t\treturn true;\n\t}\n\n\t// Not matching types.\n\treturn false;\n}\n\n// The following is a Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n// When the native DOM selection is at the end of the block and preceded by
    e.g.\n//\n//\t\t

    foo
    []

    \n//\n// which happens a lot when using the soft line break, the browser fails to (visually) move the\n// caret to the new line. A quick fix is as simple as force–refreshing the selection with the same range.\nfunction fixGeckoSelectionAfterBr( focus, domSelection ) {\n\tconst parent = focus.parent;\n\n\t// This fix works only when the focus point is at the very end of an element.\n\t// There is no point in running it in cases unrelated to the browser bug.\n\tif ( parent.nodeType != Node.ELEMENT_NODE || focus.offset != parent.childNodes.length - 1 ) {\n\t\treturn;\n\t}\n\n\tconst childAtOffset = parent.childNodes[ focus.offset ];\n\n\t// To stay on the safe side, the fix being as specific as possible, it targets only the\n\t// selection which is at the very end of the element and preceded by
    .\n\tif ( childAtOffset && childAtOffset.tagName == 'BR' ) {\n\t\tdomSelection.addRange( domSelection.getRangeAt( 0 ) );\n\t}\n}\n\nfunction filterOutFakeSelectionContainer( domChildList, fakeSelectionContainer ) {\n\tconst childList = Array.from( domChildList );\n\n\tif ( childList.length == 0 || !fakeSelectionContainer ) {\n\t\treturn childList;\n\t}\n\n\tconst last = childList[ childList.length - 1 ];\n\n\tif ( last == fakeSelectionContainer ) {\n\t\tchildList.pop();\n\t}\n\n\treturn childList;\n}\n\n// Creates a fake selection container for a given document.\n//\n// @private\n// @param {Document} domDocument\n// @returns {HTMLElement}\nfunction createFakeSelectionContainer( domDocument ) {\n\tconst container = domDocument.createElement( 'div' );\n\n\tcontainer.className = 'ck-fake-selection-container';\n\n\tObject.assign( container.style, {\n\t\tposition: 'fixed',\n\t\ttop: 0,\n\t\tleft: '-9999px',\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/752.\n\t\twidth: '42px'\n\t} );\n\n\t// Fill it with a text node so we can update it later.\n\tcontainer.textContent = '\\u00A0';\n\n\treturn container;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window, document */\n\n/**\n * @module utils/dom/global\n */\n\n/**\n * A helper (module) giving an access to the global DOM objects such as `window` and\n * `document`. Accessing these objects using this helper allows easy and bulletproof\n * testing, i.e. stubbing native properties:\n *\n *\t\timport global from 'ckeditor5/utils/dom/global.js';\n *\n *\t\t// This stub will work for any code using global module.\n *\t\ttestUtils.sinon.stub( global, 'window', {\n *\t\t\tinnerWidth: 10000\n *\t\t} );\n *\n *\t\tconsole.log( global.window.innerWidth );\n */\nexport default { window, document };\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/indexof\n */\n\n/**\n * Returns index of the node in the parent element.\n *\n * @param {Node} node Node which index is tested.\n * @returns {Number} Index of the node in the parent element. Returns 0 if node has no parent.\n */\nexport default function indexOf( node ) {\n\tlet index = 0;\n\n\twhile ( node.previousSibling ) {\n\t\tnode = node.previousSibling;\n\t\tindex++;\n\t}\n\n\treturn index;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module utils/dom/getancestors\n */\n\n/**\n * Returns all ancestors of given DOM node, starting from the top-most (root). Includes the given node itself. If the\n * node is a part of `DocumentFragment` that `DocumentFragment` will be returned. In contrary, if the node is\n * appended to a `Document`, that `Document` will not be returned (algorithms operating on DOM tree care for `Document#documentElement`\n * at most, which will be returned).\n *\n * @param {Node} node DOM node.\n * @returns {Array.} Array of given `node` parents.\n */\nexport default function getAncestors( node ) {\n\tconst nodes = [];\n\n\t// We are interested in `Node`s `DocumentFragment`s only.\n\twhile ( node && node.nodeType != Node.DOCUMENT_NODE ) {\n\t\tnodes.unshift( node );\n\t\tnode = node.parentNode;\n\t}\n\n\treturn nodes;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/domconverter\n */\n\n/* globals document, Node, NodeFilter, DOMParser, Text */\n\nimport ViewText from './text';\nimport ViewElement from './element';\nimport ViewUIElement from './uielement';\nimport ViewPosition from './position';\nimport ViewRange from './range';\nimport ViewSelection from './selection';\nimport ViewDocumentFragment from './documentfragment';\nimport ViewTreeWalker from './treewalker';\nimport Matcher from './matcher';\nimport {\n\tBR_FILLER, INLINE_FILLER_LENGTH, NBSP_FILLER, MARKED_NBSP_FILLER,\n\tgetDataWithoutFiller, isInlineFiller, startsWithFiller\n} from './filler';\n\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { logWarning } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport indexOf from '@ckeditor/ckeditor5-utils/src/dom/indexof';\nimport getAncestors from '@ckeditor/ckeditor5-utils/src/dom/getancestors';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isComment from '@ckeditor/ckeditor5-utils/src/dom/iscomment';\n\nconst BR_FILLER_REF = BR_FILLER( document ); // eslint-disable-line new-cap\nconst NBSP_FILLER_REF = NBSP_FILLER( document ); // eslint-disable-line new-cap\nconst MARKED_NBSP_FILLER_REF = MARKED_NBSP_FILLER( document ); // eslint-disable-line new-cap\nconst UNSAFE_ATTRIBUTE_NAME_PREFIX = 'data-ck-unsafe-attribute-';\nconst UNSAFE_ELEMENT_REPLACEMENT_ATTRIBUTE = 'data-ck-unsafe-element';\nconst UNSAFE_ELEMENTS = [ 'script', 'style' ];\n\n/**\n * `DomConverter` is a set of tools to do transformations between DOM nodes and view nodes. It also handles\n * {@link module:engine/view/domconverter~DomConverter#bindElements bindings} between these nodes.\n *\n * An instance of the DOM converter is available under\n * {@link module:engine/view/view~View#domConverter `editor.editing.view.domConverter`}.\n *\n * The DOM converter does not check which nodes should be rendered (use {@link module:engine/view/renderer~Renderer}), does not keep the\n * state of a tree nor keeps the synchronization between the tree view and the DOM tree (use {@link module:engine/view/document~Document}).\n *\n * The DOM converter keeps DOM elements to view element bindings, so when the converter gets destroyed, the bindings are lost.\n * Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.\n */\nexport default class DomConverter {\n\t/**\n\t * Creates a DOM converter.\n\t *\n\t * @param {module:engine/view/document~Document} document The view document instance.\n\t * @param {Object} options An object with configuration options.\n\t * @param {module:engine/view/filler~BlockFillerMode} [options.blockFillerMode] The type of the block filler to use.\n\t * Default value depends on the options.renderingMode:\n\t * 'nbsp' when options.renderingMode == 'data',\n\t * 'br' when options.renderingMode == 'editing'.\n\t * @param {'data'|'editing'} [options.renderingMode='editing'] Whether to leave the View-to-DOM conversion result unchanged\n\t * or improve editing experience by filtering out interactive data.\n\t */\n\tconstructor( document, options = {} ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\n\t\t/**\n\t\t * Whether to leave the View-to-DOM conversion result unchanged or improve editing experience by filtering out interactive data.\n\t\t *\n\t\t * @member {'data'|'editing'} module:engine/view/domconverter~DomConverter#renderingMode\n\t\t */\n\t\tthis.renderingMode = options.renderingMode || 'editing';\n\n\t\t/**\n\t\t * The mode of a block filler used by the DOM converter.\n\t\t *\n\t\t * @member {'br'|'nbsp'|'markedNbsp'} module:engine/view/domconverter~DomConverter#blockFillerMode\n\t\t */\n\t\tthis.blockFillerMode = options.blockFillerMode || ( this.renderingMode === 'editing' ? 'br' : 'nbsp' );\n\n\t\t/**\n\t\t * Elements which are considered pre-formatted elements.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#preElements\n\t\t */\n\t\tthis.preElements = [ 'pre' ];\n\n\t\t/**\n\t\t * Elements which are considered block elements (and hence should be filled with a\n\t\t * {@link #isBlockFiller block filler}).\n\t\t *\n\t\t * Whether an element is considered a block element also affects handling of trailing whitespaces.\n\t\t *\n\t\t * You can extend this array if you introduce support for block elements which are not yet recognized here.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#blockElements\n\t\t */\n\t\tthis.blockElements = [\n\t\t\t'address', 'article', 'aside', 'blockquote', 'caption', 'center', 'dd', 'details', 'dir', 'div',\n\t\t\t'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header',\n\t\t\t'hgroup', 'legend', 'li', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'summary', 'table', 'tbody',\n\t\t\t'td', 'tfoot', 'th', 'thead', 'tr', 'ul'\n\t\t];\n\n\t\t/**\n\t\t * A list of elements that exist inline (in text) but their inner structure cannot be edited because\n\t\t * of the way they are rendered by the browser. They are mostly HTML form elements but there are other\n\t\t * elements such as `` or `' +\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'spotify',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(artist\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(album\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(track\\/\\w+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
    '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'youtube',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/watch\\?v=([\\w-]+)/,\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/v\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtube\\.com\\/embed\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtu\\.be\\/([\\w-]+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
    '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'vimeo',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^vimeo\\.com\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/[^/]+\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/album\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/channels\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/groups\\/[^/]+\\/videos\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/ondemand\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^player\\.vimeo\\.com\\/video\\/(\\d+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
    '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'instagram',\n\t\t\t\t\turl: /^instagram\\.com\\/p\\/(\\w+)/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'twitter',\n\t\t\t\t\turl: /^twitter\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'googleMaps',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^google\\.com\\/maps/,\n\t\t\t\t\t\t/^goo\\.gl\\/maps/,\n\t\t\t\t\t\t/^maps\\.google\\.com/,\n\t\t\t\t\t\t/^maps\\.app\\.goo\\.gl/\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'flickr',\n\t\t\t\t\turl: /^flickr\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'facebook',\n\t\t\t\t\turl: /^facebook\\.com/\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\t/**\n\t\t * The media registry managing the media providers in the editor.\n\t\t *\n\t\t * @member {module:media-embed/mediaregistry~MediaRegistry} #registry\n\t\t */\n\t\tthis.registry = new MediaRegistry( editor.locale, editor.config.get( 'mediaEmbed' ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tconst renderMediaPreview = editor.config.get( 'mediaEmbed.previewsInData' );\n\t\tconst elementName = editor.config.get( 'mediaEmbed.elementName' );\n\n\t\tconst registry = this.registry;\n\n\t\teditor.commands.add( 'mediaEmbed', new MediaEmbedCommand( editor ) );\n\n\t\t// Configure the schema.\n\t\tschema.register( 'media', {\n\t\t\tinheritAllFrom: '$blockObject',\n\t\t\tallowAttributes: [ 'url' ]\n\t\t} );\n\n\t\t// Model -> Data\n\t\tconversion.for( 'dataDowncast' ).elementToStructure( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\n\t\t\t\treturn createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\telementName,\n\t\t\t\t\trenderMediaPreview: url && renderMediaPreview\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> Data (url -> data-oembed-url)\n\t\tconversion.for( 'dataDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\telementName,\n\t\t\t\trenderMediaPreview\n\t\t\t} ) );\n\n\t\t// Model -> View (element)\n\t\tconversion.for( 'editingDowncast' ).elementToStructure( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\t\t\t\tconst figure = createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\telementName,\n\t\t\t\t\trenderForEditingView: true\n\t\t\t\t} );\n\n\t\t\t\treturn toMediaWidget( figure, writer, t( 'media widget' ) );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> View (url -> data-oembed-url)\n\t\tconversion.for( 'editingDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\telementName,\n\t\t\t\trenderForEditingView: true\n\t\t\t} ) );\n\n\t\t// View -> Model (data-oembed-url -> url)\n\t\tconversion.for( 'upcast' )\n\t\t\t// Upcast semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: element => [ 'oembed', elementName ].includes( element.name ) && element.getAttribute( 'url' ) ?\n\t\t\t\t\t{ name: true } :\n\t\t\t\t\tnull,\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t// Upcast non-semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t'data-oembed-url': true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'data-oembed-url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t// Consume `
    ` elements, that were left after upcast.\n\t\t\t.add( dispatcher => {\n\t\t\t\tdispatcher.on( 'element:figure', converter );\n\n\t\t\t\tfunction converter( evt, data, conversionApi ) {\n\t\t\t\t\tif ( !conversionApi.consumable.consume( data.viewItem, { name: true, classes: 'media' } ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst { modelRange, modelCursor } = conversionApi.convertChildren( data.viewItem, data.modelCursor );\n\n\t\t\t\t\tdata.modelRange = modelRange;\n\t\t\t\t\tdata.modelCursor = modelCursor;\n\n\t\t\t\t\tconst modelElement = first( modelRange.getItems() );\n\n\t\t\t\t\tif ( !modelElement ) {\n\t\t\t\t\t\t// Revert consumed figure so other features can convert it.\n\t\t\t\t\t\tconversionApi.consumable.revert( data.viewItem, { name: true, classes: 'media' } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/automediaembed\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { LiveRange, LivePosition } from 'ckeditor5/src/engine';\nimport { Clipboard } from 'ckeditor5/src/clipboard';\nimport { Delete } from 'ckeditor5/src/typing';\nimport { Undo } from 'ckeditor5/src/undo';\nimport { global } from 'ckeditor5/src/utils';\n\nimport MediaEmbedEditing from './mediaembedediting';\nimport { insertMedia } from './utils';\n\nconst URL_REGEXP = /^(?:http(s)?:\\/\\/)?[\\w-]+\\.[\\w-.~:/?#[\\]@!$&'()*+,;=%]+$/;\n\n/**\n * The auto-media embed plugin. It recognizes media links in the pasted content and embeds\n * them shortly after they are injected into the document.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class AutoMediaEmbed extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ Clipboard, Delete, Undo ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'AutoMediaEmbed';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\tsuper( editor );\n\n\t\t/**\n\t\t * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n\t\t * cleaning of the timeout.\n\t\t *\n\t\t * @private\n\t\t * @member {Number} #_timeoutId\n\t\t */\n\t\tthis._timeoutId = null;\n\n\t\t/**\n\t\t * The position where the `` element will be inserted after the timeout,\n\t\t * determined each time the new content is pasted into the document.\n\t\t *\n\t\t * @private\n\t\t * @member {module:engine/model/liveposition~LivePosition} #_positionToInsert\n\t\t */\n\t\tthis._positionToInsert = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst modelDocument = editor.model.document;\n\n\t\t// We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n\t\t// After pasting, the content between those positions will be checked for a URL that could be transformed\n\t\t// into media.\n\t\tthis.listenTo( editor.plugins.get( 'ClipboardPipeline' ), 'inputTransformation', () => {\n\t\t\tconst firstRange = modelDocument.selection.getFirstRange();\n\n\t\t\tconst leftLivePosition = LivePosition.fromPosition( firstRange.start );\n\t\t\tleftLivePosition.stickiness = 'toPrevious';\n\n\t\t\tconst rightLivePosition = LivePosition.fromPosition( firstRange.end );\n\t\t\trightLivePosition.stickiness = 'toNext';\n\n\t\t\tmodelDocument.once( 'change:data', () => {\n\t\t\t\tthis._embedMediaBetweenPositions( leftLivePosition, rightLivePosition );\n\n\t\t\t\tleftLivePosition.detach();\n\t\t\t\trightLivePosition.detach();\n\t\t\t}, { priority: 'high' } );\n\t\t} );\n\n\t\teditor.commands.get( 'undo' ).on( 'execute', () => {\n\t\t\tif ( this._timeoutId ) {\n\t\t\t\tglobal.window.clearTimeout( this._timeoutId );\n\t\t\t\tthis._positionToInsert.detach();\n\n\t\t\t\tthis._timeoutId = null;\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Analyzes the part of the document between provided positions in search for a URL representing media.\n\t * When the URL is found, it is automatically converted into media.\n\t *\n\t * @protected\n\t * @param {module:engine/model/liveposition~LivePosition} leftPosition Left position of the selection.\n\t * @param {module:engine/model/liveposition~LivePosition} rightPosition Right position of the selection.\n\t */\n\t_embedMediaBetweenPositions( leftPosition, rightPosition ) {\n\t\tconst editor = this.editor;\n\t\tconst mediaRegistry = editor.plugins.get( MediaEmbedEditing ).registry;\n\t\t// TODO: Use marker instead of LiveRange & LivePositions.\n\t\tconst urlRange = new LiveRange( leftPosition, rightPosition );\n\t\tconst walker = urlRange.getWalker( { ignoreElementEnd: true } );\n\n\t\tlet url = '';\n\n\t\tfor ( const node of walker ) {\n\t\t\tif ( node.item.is( '$textProxy' ) ) {\n\t\t\t\turl += node.item.data;\n\t\t\t}\n\t\t}\n\n\t\turl = url.trim();\n\n\t\t// If the URL does not match to universal URL regexp, let's skip that.\n\t\tif ( !url.match( URL_REGEXP ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// If the URL represents a media, let's use it.\n\t\tif ( !mediaRegistry.hasMedia( url ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaEmbedCommand = editor.commands.get( 'mediaEmbed' );\n\n\t\t// Do not anything if media element cannot be inserted at the current position (#47).\n\t\tif ( !mediaEmbedCommand.isEnabled ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Position won't be available in the `setTimeout` function so let's clone it.\n\t\tthis._positionToInsert = LivePosition.fromPosition( leftPosition );\n\n\t\t// This action mustn't be executed if undo was called between pasting and auto-embedding.\n\t\tthis._timeoutId = global.window.setTimeout( () => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tthis._timeoutId = null;\n\n\t\t\t\twriter.remove( urlRange );\n\t\t\t\turlRange.detach();\n\n\t\t\t\tlet insertionPosition;\n\n\t\t\t\t// Check if position where the media element should be inserted is still valid.\n\t\t\t\t// Otherwise leave it as undefined to use document.selection - default behavior of model.insertContent().\n\t\t\t\tif ( this._positionToInsert.root.rootName !== '$graveyard' ) {\n\t\t\t\t\tinsertionPosition = this._positionToInsert;\n\t\t\t\t}\n\n\t\t\t\tinsertMedia( editor.model, url, insertionPosition, false );\n\n\t\t\t\tthis._positionToInsert.detach();\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t} );\n\n\t\t\teditor.plugins.get( 'Delete' ).requestUndoOnBackspace();\n\t\t}, 100 );\n\t}\n}\n","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaform.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaform.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/ui/mediaformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tinjectCssTransitionDisabler,\n\tsubmitHandler\n} from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport { icons } from 'ckeditor5/src/core';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/mediaform.css';\n\n/**\n * The media form view controller class.\n *\n * See {@link module:media-embed/ui/mediaformview~MediaFormView}.\n *\n * @extends module:ui/view~View\n */\nexport default class MediaFormView extends View {\n\t/**\n\t * @param {Array.} validators Form validators used by {@link #isValid}.\n\t * @param {module:utils/locale~Locale} [locale] The localization services instance.\n\t */\n\tconstructor( validators, locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\t/**\n\t\t * Tracks information about the DOM focus in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/focustracker~FocusTracker}\n\t\t */\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\t/**\n\t\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/keystrokehandler~KeystrokeHandler}\n\t\t */\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\t/**\n\t\t * The value of the URL input.\n\t\t *\n\t\t * @member {String} #mediaURLInputValue\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'mediaURLInputValue', '' );\n\n\t\t/**\n\t\t * The URL input view.\n\t\t *\n\t\t * @member {module:ui/labeledfield/labeledfieldview~LabeledFieldView}\n\t\t */\n\t\tthis.urlInputView = this._createUrlInput();\n\n\t\t/**\n\t\t * The Save button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.saveButtonView = this._createButton( t( 'Save' ), icons.check, 'ck-button-save' );\n\t\tthis.saveButtonView.type = 'submit';\n\t\tthis.saveButtonView.bind( 'isEnabled' ).to( this, 'mediaURLInputValue', value => !!value );\n\n\t\t/**\n\t\t * The Cancel button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.cancelButtonView = this._createButton( t( 'Cancel' ), icons.cancel, 'ck-button-cancel', 'cancel' );\n\n\t\t/**\n\t\t * A collection of views that can be focused in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis._focusables = new ViewCollection();\n\n\t\t/**\n\t\t * Helps cycling over {@link #_focusables} in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/focuscycler~FocusCycler}\n\t\t */\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * An array of form validators used by {@link #isValid}.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {Array.}\n\t\t */\n\t\tthis._validators = validators;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-media-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.urlInputView,\n\t\t\t\tthis.saveButtonView,\n\t\t\t\tthis.cancelButtonView\n\t\t\t]\n\t\t} );\n\n\t\tinjectCssTransitionDisabler( this );\n\n\t\t/**\n\t\t * The default info text for the {@link #urlInputView}.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoDefault\n\t\t */\n\n\t\t/**\n\t\t * The info text with an additional tip for the {@link #urlInputView},\n\t\t * displayed when the input has some value.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoTip\n\t\t */\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trender() {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.urlInputView,\n\t\t\tthis.saveButtonView,\n\t\t\tthis.cancelButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element );\n\n\t\tconst stopPropagation = data => data.stopPropagation();\n\n\t\t// Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n\t\t// keystroke handler would take over the key management in the URL input. We need to prevent\n\t\t// this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\n\t\t// Intercept the `selectstart` event, which is blocked by default because of the default behavior\n\t\t// of the DropdownView#panelView.\n\t\t// TODO: blocking `selectstart` in the #panelView should be configurable per–drop–down instance.\n\t\tthis.listenTo( this.urlInputView.element, 'selectstart', ( evt, domEvt ) => {\n\t\t\tdomEvt.stopPropagation();\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tfocus() {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #urlInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t *\n\t * @type {String}\n\t */\n\tget url() {\n\t\treturn this.urlInputView.fieldView.element.value.trim();\n\t}\n\n\tset url( url ) {\n\t\tthis.urlInputView.fieldView.element.value = url.trim();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t *\n\t * @returns {Boolean}\n\t */\n\tisValid() {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.urlInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #urlInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tresetFormStatus() {\n\t\tthis.urlInputView.errorText = null;\n\t\tthis.urlInputView.infoText = this._urlInputViewInfoDefault;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @private\n\t * @returns {module:ui/labeledfield/labeledfieldview~LabeledFieldView} Labeled input view instance.\n\t */\n\t_createUrlInput() {\n\t\tconst t = this.locale.t;\n\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\t\tconst inputField = labeledInput.fieldView;\n\n\t\tthis._urlInputViewInfoDefault = t( 'Paste the media URL in the input.' );\n\t\tthis._urlInputViewInfoTip = t( 'Tip: Paste the URL into the content to embed faster.' );\n\n\t\tlabeledInput.label = t( 'Media URL' );\n\t\tlabeledInput.infoText = this._urlInputViewInfoDefault;\n\n\t\tinputField.on( 'input', () => {\n\t\t\t// Display the tip text only when there is some value. Otherwise fall back to the default info text.\n\t\t\tlabeledInput.infoText = inputField.element.value ? this._urlInputViewInfoTip : this._urlInputViewInfoDefault;\n\t\t\tthis.mediaURLInputValue = inputField.element.value.trim();\n\t\t} );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @private\n\t * @param {String} label The button label.\n\t * @param {String} icon The button icon.\n\t * @param {String} className The additional button CSS class name.\n\t * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n\t * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n\t */\n\t_createButton( label, icon, className, eventName ) {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\tif ( eventName ) {\n\t\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\t\t}\n\n\t\treturn button;\n\t}\n}\n\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * e.g. click on {@link #saveButtonView}.\n *\n * @event submit\n */\n\n/**\n * Fired when the form view is canceled, e.g. by a click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembedui\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createDropdown } from 'ckeditor5/src/ui';\n\nimport MediaFormView from './ui/mediaformview';\nimport MediaEmbedEditing from './mediaembedediting';\nimport mediaIcon from '../theme/icons/media.svg';\n\n/**\n * The media embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class MediaEmbedUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ MediaEmbedEditing ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'MediaEmbedUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( 'mediaEmbed' );\n\t\tconst registry = editor.plugins.get( MediaEmbedEditing ).registry;\n\n\t\teditor.ui.componentFactory.add( 'mediaEmbed', locale => {\n\t\t\tconst dropdown = createDropdown( locale );\n\n\t\t\tconst mediaForm = new MediaFormView( getFormValidators( editor.t, registry ), editor.locale );\n\n\t\t\tthis._setUpDropdown( dropdown, mediaForm, command, editor );\n\t\t\tthis._setUpForm( dropdown, mediaForm, command );\n\n\t\t\treturn dropdown;\n\t\t} );\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpDropdown( dropdown, form, command ) {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst button = dropdown.buttonView;\n\n\t\tdropdown.bind( 'isEnabled' ).to( command );\n\t\tdropdown.panelView.children.add( form );\n\n\t\tbutton.set( {\n\t\t\tlabel: t( 'Insert media' ),\n\t\t\ticon: mediaIcon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\t// Note: Use the low priority to make sure the following listener starts working after the\n\t\t// default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n\t\t// invisible form/input cannot be focused/selected.\n\t\tbutton.on( 'open', () => {\n\t\t\tform.disableCssTransitions();\n\n\t\t\t// Make sure that each time the panel shows up, the URL field remains in sync with the value of\n\t\t\t// the command. If the user typed in the input, then canceled (`urlInputView#fieldView#value` stays\n\t\t\t// unaltered) and re-opened it without changing the value of the media command (e.g. because they\n\t\t\t// didn't change the selection), they would see the old value instead of the actual value of the\n\t\t\t// command.\n\t\t\tform.url = command.value || '';\n\t\t\tform.urlInputView.fieldView.select();\n\t\t\tform.focus();\n\t\t\tform.enableCssTransitions();\n\t\t}, { priority: 'low' } );\n\n\t\tdropdown.on( 'submit', () => {\n\t\t\tif ( form.isValid() ) {\n\t\t\t\teditor.execute( 'mediaEmbed', form.url );\n\t\t\t\tcloseUI();\n\t\t\t}\n\t\t} );\n\n\t\tdropdown.on( 'change:isOpen', () => form.resetFormStatus() );\n\t\tdropdown.on( 'cancel', () => closeUI() );\n\n\t\tfunction closeUI() {\n\t\t\teditor.editing.view.focus();\n\t\t\tdropdown.isOpen = false;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpForm( dropdown, form, command ) {\n\t\tform.delegate( 'submit', 'cancel' ).to( dropdown );\n\t\tform.urlInputView.bind( 'value' ).to( command, 'value' );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tform.urlInputView.bind( 'isReadOnly' ).to( command, 'isEnabled', value => !value );\n\t}\n}\n\nfunction getFormValidators( t, registry ) {\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.url.length ) {\n\t\t\t\treturn t( 'The URL must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( !registry.hasMedia( form.url ) ) {\n\t\t\t\treturn t( 'This media URL is not supported.' );\n\t\t\t}\n\t\t}\n\t];\n}\n","export default \"\";","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/singletonStyleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n \n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaembed.css\";\n \n \n\nvar options = {\"attributes\":{\"data-cke\":true}};\n\n;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./mediaembed.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/list\n */\n\nimport { Matcher, UpcastWriter } from 'ckeditor5/src/engine';\n\n/**\n * Transforms Word specific list-like elements to the semantic HTML lists.\n *\n * Lists in Word are represented by block elements with special attributes like:\n *\n *\t\t

    ...

    // Paragraph based list.\n *\t\t

    ...

    // Heading 1 based list.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment The view structure to be transformed.\n * @param {String} stylesString Styles from which list-like elements styling will be extracted.\n */\nexport function transformListItemLikeElementsIntoLists( documentFragment, stylesString ) {\n\tif ( !documentFragment.childCount ) {\n\t\treturn;\n\t}\n\n\tconst writer = new UpcastWriter( documentFragment.document );\n\tconst itemLikeElements = findAllItemLikeElements( documentFragment, writer );\n\n\tif ( !itemLikeElements.length ) {\n\t\treturn;\n\t}\n\n\tlet currentList = null;\n\tlet currentIndentation = 1;\n\n\titemLikeElements.forEach( ( itemLikeElement, i ) => {\n\t\tconst isDifferentList = isNewListNeeded( itemLikeElements[ i - 1 ], itemLikeElement );\n\t\tconst previousItemLikeElement = isDifferentList ? null : itemLikeElements[ i - 1 ];\n\t\tconst indentationDifference = getIndentationDifference( previousItemLikeElement, itemLikeElement );\n\n\t\tif ( isDifferentList ) {\n\t\t\tcurrentList = null;\n\t\t\tcurrentIndentation = 1;\n\t\t}\n\n\t\tif ( !currentList || indentationDifference !== 0 ) {\n\t\t\tconst listStyle = detectListStyle( itemLikeElement, stylesString );\n\n\t\t\tif ( !currentList ) {\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, itemLikeElement.element, writer );\n\t\t\t} else if ( itemLikeElement.indent > currentIndentation ) {\n\t\t\t\tconst lastListItem = currentList.getChild( currentList.childCount - 1 );\n\t\t\t\tconst lastListItemChild = lastListItem.getChild( lastListItem.childCount - 1 );\n\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, lastListItemChild, writer );\n\t\t\t\tcurrentIndentation += 1;\n\t\t\t} else if ( itemLikeElement.indent < currentIndentation ) {\n\t\t\t\tconst differentIndentation = currentIndentation - itemLikeElement.indent;\n\n\t\t\t\tcurrentList = findParentListAtLevel( currentList, differentIndentation );\n\t\t\t\tcurrentIndentation = parseInt( itemLikeElement.indent );\n\t\t\t}\n\n\t\t\tif ( itemLikeElement.indent <= currentIndentation ) {\n\t\t\t\tif ( !currentList.is( 'element', listStyle.type ) ) {\n\t\t\t\t\tcurrentList = writer.rename( listStyle.type, currentList );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst listItem = transformElementIntoListItem( itemLikeElement.element, writer );\n\n\t\twriter.appendChild( listItem, currentList );\n\t} );\n}\n\n/**\n * Removes paragraph wrapping content inside a list item.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport function unwrapParagraphInListItem( documentFragment, writer ) {\n\tfor ( const value of writer.createRangeIn( documentFragment ) ) {\n\t\tconst element = value.item;\n\n\t\tif ( element.is( 'element', 'li' ) ) {\n\t\t\t// Google Docs allows for single paragraph inside LI.\n\t\t\tconst firstChild = element.getChild( 0 );\n\n\t\t\tif ( firstChild && firstChild.is( 'element', 'p' ) ) {\n\t\t\t\twriter.unwrapElement( firstChild );\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Finds all list-like elements in a given document fragment.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// in which to look for list-like nodes.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.} Array of found list-like items. Each item is an object containing:\n//\n//\t\t* {module:engine/src/view/element~Element} element List-like element.\n//\t\t* {Number} id List item id parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} order List item creation order parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} indent List item indentation level parsed from `mso-list` style (see `getListItemData()` function).\nfunction findAllItemLikeElements( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\t// Matcher for finding list-like elements.\n\tconst itemLikeElementsMatcher = new Matcher( {\n\t\tname: /^p|h\\d+$/,\n\t\tstyles: {\n\t\t\t'mso-list': /.*/\n\t\t}\n\t} );\n\n\tconst itemLikeElements = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && itemLikeElementsMatcher.match( value.item ) ) {\n\t\t\tconst itemData = getListItemData( value.item );\n\n\t\t\titemLikeElements.push( {\n\t\t\t\telement: value.item,\n\t\t\t\tid: itemData.id,\n\t\t\t\torder: itemData.order,\n\t\t\t\tindent: itemData.indent\n\t\t\t} );\n\t\t}\n\t}\n\n\treturn itemLikeElements;\n}\n\n// Extracts list item style from the provided CSS.\n//\n// List item style is extracted from the CSS stylesheet. Each list with its specific style attribute\n// value (`mso-list:l1 level1 lfo1`) has its dedicated properties in a CSS stylesheet defined with a selector like:\n//\n// \t\t@list l1:level1 { ... }\n//\n// It contains `mso-level-number-format` property which defines list numbering/bullet style. If this property\n// is not defined it means default `decimal` numbering.\n//\n// Here CSS string representation is used as `mso-level-number-format` property is an invalid CSS property\n// and will be removed during CSS parsing.\n//\n// @param {Object} listLikeItem List-like item for which list style will be searched for. Usually\n// a result of `findAllItemLikeElements()` function.\n// @param {String} stylesString CSS stylesheet.\n// @returns {Object} result\n// @returns {String} result.type List type, could be `ul` or `ol`.\n// @returns {Number} result.startIndex List start index, valid only for ordered lists.\n// @returns {String|null} result.style List style, for example: `decimal`, `lower-roman`, etc. It is extracted\n// directly from Word stylesheet and adjusted to represent proper values for the CSS `list-style-type` property.\n// If it cannot be adjusted, the `null` value is returned.\nfunction detectListStyle( listLikeItem, stylesString ) {\n\tconst listStyleRegexp = new RegExp( `@list l${ listLikeItem.id }:level${ listLikeItem.indent }\\\\s*({[^}]*)`, 'gi' );\n\tconst listStyleTypeRegex = /mso-level-number-format:([^;]{0,100});/gi;\n\tconst listStartIndexRegex = /mso-level-start-at:\\s{0,100}([0-9]{0,10})\\s{0,100};/gi;\n\n\tconst listStyleMatch = listStyleRegexp.exec( stylesString );\n\n\tlet listStyleType = 'decimal'; // Decimal is default one.\n\tlet type = 'ol'; //
      is default list.\n\tlet startIndex = null;\n\n\tif ( listStyleMatch && listStyleMatch[ 1 ] ) {\n\t\tconst listStyleTypeMatch = listStyleTypeRegex.exec( listStyleMatch[ 1 ] );\n\n\t\tif ( listStyleTypeMatch && listStyleTypeMatch[ 1 ] ) {\n\t\t\tlistStyleType = listStyleTypeMatch[ 1 ].trim();\n\t\t\ttype = listStyleType !== 'bullet' && listStyleType !== 'image' ? 'ol' : 'ul';\n\t\t}\n\n\t\t// Styles for the numbered lists are always defined in the Word CSS stylesheet.\n\t\t// Unordered lists MAY contain a value for the Word CSS definition `mso-level-text` but sometimes\n\t\t// this tag is missing. And because of that, we cannot depend on that. We need to predict the list style value\n\t\t// based on the list style marker element.\n\t\tif ( listStyleType === 'bullet' ) {\n\t\t\tconst bulletedStyle = findBulletedListStyle( listLikeItem.element );\n\n\t\t\tif ( bulletedStyle ) {\n\t\t\t\tlistStyleType = bulletedStyle;\n\t\t\t}\n\t\t} else {\n\t\t\tconst listStartIndexMatch = listStartIndexRegex.exec( listStyleMatch[ 1 ] );\n\n\t\t\tif ( listStartIndexMatch && listStartIndexMatch[ 1 ] ) {\n\t\t\t\tstartIndex = parseInt( listStartIndexMatch[ 1 ] );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\ttype,\n\t\tstartIndex,\n\t\tstyle: mapListStyleDefinition( listStyleType )\n\t};\n}\n\n// Tries to extract the `list-style-type` value based on the marker element for bulleted list.\n//\n// @param {module:engine/view/element~Element} element\n// @returns {String|null}\nfunction findBulletedListStyle( element ) {\n\tconst listMarkerElement = findListMarkerNode( element );\n\n\tif ( !listMarkerElement ) {\n\t\treturn null;\n\t}\n\n\tconst listMarker = listMarkerElement._data;\n\n\tif ( listMarker === 'o' ) {\n\t\treturn 'circle';\n\t} else if ( listMarker === '·' ) {\n\t\treturn 'disc';\n\t}\n\t// Word returns '§' instead of '■' for the square list style.\n\telse if ( listMarker === '§' ) {\n\t\treturn 'square';\n\t}\n\n\treturn null;\n}\n\n// Tries to find a text node that represents the marker element (list-style-type).\n//\n// @param {module:engine/view/element~Element} element\n// @returns {module:engine/view/text~Text|null}\nfunction findListMarkerNode( element ) {\n\t// If the first child is a text node, it is the data for the element.\n\t// The list-style marker is not present here.\n\tif ( element.getChild( 0 ).is( '$text' ) ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childNode of element.getChildren() ) {\n\t\t// The list-style marker will be inside the `` element. Let's ignore all non-span elements.\n\t\t// It may happen that the `` element is added as the first child. Most probably, it's an anchor element.\n\t\tif ( !childNode.is( 'element', 'span' ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst textNodeOrElement = childNode.getChild( 0 );\n\n\t\t// If already found the marker element, use it.\n\t\tif ( textNodeOrElement.is( '$text' ) ) {\n\t\t\treturn textNodeOrElement;\n\t\t}\n\n\t\treturn textNodeOrElement.getChild( 0 );\n\t}\n}\n\n// Parses the `list-style-type` value extracted directly from the Word CSS stylesheet and returns proper CSS definition.\n//\n// @param {String|null} value\n// @returns {String|null}\nfunction mapListStyleDefinition( value ) {\n\tif ( value.startsWith( 'arabic-leading-zero' ) ) {\n\t\treturn 'decimal-leading-zero';\n\t}\n\n\tswitch ( value ) {\n\t\tcase 'alpha-upper':\n\t\t\treturn 'upper-alpha';\n\t\tcase 'alpha-lower':\n\t\t\treturn 'lower-alpha';\n\t\tcase 'roman-upper':\n\t\t\treturn 'upper-roman';\n\t\tcase 'roman-lower':\n\t\t\treturn 'lower-roman';\n\t\tcase 'circle':\n\t\tcase 'disc':\n\t\tcase 'square':\n\t\t\treturn value;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n// Creates an empty list of a given type and inserts it after a specified element.\n//\n// @param {Object} listStyle List style object which determines the type of newly created list.\n// Usually a result of `detectListStyle()` function.\n// @param {module:engine/view/element~Element} element Element after which list is inserted.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} Newly created list element.\n\nfunction insertNewEmptyList( listStyle, element, writer ) {\n\tconst parent = element.parent;\n\tconst list = writer.createElement( listStyle.type );\n\tconst position = parent.getChildIndex( element ) + 1;\n\n\twriter.insertChild( position, list, parent );\n\n\t// We do not support modifying the marker for a particular list item.\n\t// Set the value for the `list-style-type` property directly to the list container.\n\tif ( listStyle.style ) {\n\t\twriter.setStyle( 'list-style-type', listStyle.style, list );\n\t}\n\n\tif ( listStyle.startIndex && listStyle.startIndex > 1 ) {\n\t\twriter.setAttribute( 'start', listStyle.startIndex, list );\n\t}\n\n\treturn list;\n}\n\n// Transforms a given element into a semantic list item. As the function operates on a provided\n// {module:engine/src/view/element~Element element} it will modify the view structure to which this element belongs.\n//\n// @param {module:engine/view/element~Element} element Element which will be transformed into a list item.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} New element to which the given one was transformed. It is\n// inserted in place of the old element (the reference to the old element is lost due to renaming).\nfunction transformElementIntoListItem( element, writer ) {\n\tremoveBulletElement( element, writer );\n\n\treturn writer.rename( 'li', element );\n}\n\n// Extracts list item information from Word specific list-like element style:\n//\n//\t\t`style=\"mso-list:l1 level1 lfo1\"`\n//\n// where:\n//\n//\t\t* `l1` is a list id (however it does not mean this is a continuous list - see #43),\n//\t\t* `level1` is a list item indentation level,\n//\t\t* `lfo1` is a list insertion order in a document.\n//\n// @param {module:engine/view/element~Element} element Element from which style data is extracted.\n// @returns {Object} result\n// @returns {Number} result.id Parent list id.\n// @returns {Number} result.order List item creation order.\n// @returns {Number} result.indent List item indentation level.\nfunction getListItemData( element ) {\n\tconst data = {};\n\tconst listStyle = element.getStyle( 'mso-list' );\n\n\tif ( listStyle ) {\n\t\tconst idMatch = listStyle.match( /(^|\\s{1,100})l(\\d+)/i );\n\t\tconst orderMatch = listStyle.match( /\\s{0,100}lfo(\\d+)/i );\n\t\tconst indentMatch = listStyle.match( /\\s{0,100}level(\\d+)/i );\n\n\t\tif ( idMatch && orderMatch && indentMatch ) {\n\t\t\tdata.id = idMatch[ 2 ];\n\t\t\tdata.order = orderMatch[ 1 ];\n\t\t\tdata.indent = indentMatch[ 1 ];\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// Removes span with a numbering/bullet from a given element.\n//\n// @param {module:engine/view/element~Element} element\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeBulletElement( element, writer ) {\n\t// Matcher for finding `span` elements holding lists numbering/bullets.\n\tconst bulletMatcher = new Matcher( {\n\t\tname: 'span',\n\t\tstyles: {\n\t\t\t'mso-list': 'Ignore'\n\t\t}\n\t} );\n\n\tconst range = writer.createRangeIn( element );\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && bulletMatcher.match( value.item ) ) {\n\t\t\twriter.remove( value.item );\n\t\t}\n\t}\n}\n\n// Whether the previous and current items belong to the same list. It is determined based on `item.id`\n// (extracted from `mso-list` style, see #getListItemData) and a previous sibling of the current item.\n//\n// However, it's quite easy to change the `id` attribute for nested lists in Word. It will break the list feature while pasting.\n// Let's check also the `indent` attribute. If the difference between those two elements is equal to 1, we can assume that\n// the `currentItem` is a beginning of the nested list because lists in CKEditor 5 always start with the `indent=0` attribute.\n// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Boolean}\nfunction isNewListNeeded( previousItem, currentItem ) {\n\tif ( !previousItem ) {\n\t\treturn true;\n\t}\n\n\tif ( previousItem.id !== currentItem.id ) {\n\t\t// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n\t\t//\n\t\t// * List item 1.\n\t\t// - Nested list item 1.\n\t\tif ( currentItem.indent - previousItem.indent === 1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tconst previousSibling = currentItem.element.previousSibling;\n\n\tif ( !previousSibling ) {\n\t\treturn true;\n\t}\n\n\t// Even with the same id the list does not have to be continuous (#43).\n\treturn !isList( previousSibling );\n}\n\nfunction isList( element ) {\n\treturn element.is( 'element', 'ol' ) || element.is( 'element', 'ul' );\n}\n\n// Calculates the indentation difference between two given list items (based on the indent attribute\n// extracted from the `mso-list` style, see #getListItemData).\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Number}\nfunction getIndentationDifference( previousItem, currentItem ) {\n\treturn previousItem ? currentItem.indent - previousItem.indent : currentItem.indent - 1;\n}\n\n// Finds the parent list element (ul/ol) of a given list element with indentation level lower by a given value.\n//\n// @param {module:engine/view/element~Element} listElement List element from which to start looking for a parent list.\n// @param {Number} indentationDifference Indentation difference between lists.\n// @returns {module:engine/view/element~Element} Found list element with indentation level lower by a given value.\nfunction findParentListAtLevel( listElement, indentationDifference ) {\n\tconst ancestors = listElement.getAncestors( { parentFirst: true } );\n\n\tlet parentList = null;\n\tlet levelChange = 0;\n\n\tfor ( const ancestor of ancestors ) {\n\t\tif ( ancestor.name === 'ul' || ancestor.name === 'ol' ) {\n\t\t\tlevelChange++;\n\t\t}\n\n\t\tif ( levelChange === indentationDifference ) {\n\t\t\tparentList = ancestor;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parentList;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/googledocsnormalizer\n */\n\nimport { UpcastWriter } from 'ckeditor5/src/engine';\n\nimport removeBoldWrapper from '../filters/removeboldwrapper';\nimport { unwrapParagraphInListItem } from '../filters/list';\n\nconst googleDocsMatch = /id=(\"|')docs-internal-guid-[-0-9a-f]+(\"|')/i;\n\n/**\n * Normalizer for the content pasted from Google Docs.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\nexport default class GoogleDocsNormalizer {\n\t/**\n\t * Creates a new `GoogleDocsNormalizer` instance.\n\t *\n\t * @param {module:engine/view/document~Document} document View document.\n\t */\n\tconstructor( document ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tisActive( htmlString ) {\n\t\treturn googleDocsMatch.test( htmlString );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\texecute( data ) {\n\t\tconst writer = new UpcastWriter( this.document );\n\t\tconst { body: documentFragment } = data._parsedData;\n\n\t\tremoveBoldWrapper( documentFragment, writer );\n\t\tunwrapParagraphInListItem( documentFragment, writer );\n\n\t\tdata.content = documentFragment;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/removeboldwrapper\n */\n\n/**\n * Removes `` tag wrapper added by Google Docs to a copied content.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment element `data.content` obtained from clipboard\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport default function removeBoldWrapper( documentFragment, writer ) {\n\tfor ( const child of documentFragment.getChildren() ) {\n\t\tif ( child.is( 'element', 'b' ) && child.getStyle( 'font-weight' ) === 'normal' ) {\n\t\t\tconst childIndex = documentFragment.getChildIndex( child );\n\n\t\t\twriter.remove( child );\n\t\t\twriter.insertChild( childIndex, child.getChildren(), documentFragment );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/image\n */\n\n/* globals btoa */\n\nimport { Matcher, UpcastWriter } from 'ckeditor5/src/engine';\n\n/**\n * Replaces source attribute of all `` elements representing regular\n * images (not the Word shapes) with inlined base64 image representation extracted from RTF or Blob data.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment on which transform images.\n * @param {String} rtfData The RTF data from which images representation will be used.\n */\nexport function replaceImagesSourceWithBase64( documentFragment, rtfData ) {\n\tif ( !documentFragment.childCount ) {\n\t\treturn;\n\t}\n\n\tconst upcastWriter = new UpcastWriter();\n\tconst shapesIds = findAllShapesIds( documentFragment, upcastWriter );\n\n\tremoveAllImgElementsRepresentingShapes( shapesIds, documentFragment, upcastWriter );\n\tremoveAllShapeElements( documentFragment, upcastWriter );\n\n\tconst images = findAllImageElementsWithLocalSource( documentFragment, upcastWriter );\n\n\tif ( images.length ) {\n\t\treplaceImagesFileSourceWithInlineRepresentation( images, extractImageDataFromRtf( rtfData ), upcastWriter );\n\t}\n}\n\n/**\n * Converts given HEX string to base64 representation.\n *\n * @protected\n * @param {String} hexString The HEX string to be converted.\n * @returns {String} Base64 representation of a given HEX string.\n */\nexport function _convertHexToBase64( hexString ) {\n\treturn btoa( hexString.match( /\\w{2}/g ).map( char => {\n\t\treturn String.fromCharCode( parseInt( char, 16 ) );\n\t} ).join( '' ) );\n}\n\n// Finds all shapes (`...`) ids. Shapes can represent images (canvas)\n// or Word shapes (which does not have RTF or Blob representation).\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// from which to extract shape ids.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.} Array of shape ids.\nfunction findAllShapesIds( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst shapeElementsMatcher = new Matcher( {\n\t\tname: /v:(.+)/\n\t} );\n\n\tconst shapesIds = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type != 'elementStart' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst el = value.item;\n\t\tconst prevSiblingName = el.previousSibling && el.previousSibling.name || null;\n\n\t\t// If shape element have 'o:gfxdata' attribute and is not directly before `` element it means it represent Word shape.\n\t\tif ( shapeElementsMatcher.match( el ) && el.getAttribute( 'o:gfxdata' ) && prevSiblingName !== 'v:shapetype' ) {\n\t\t\tshapesIds.push( value.item.getAttribute( 'id' ) );\n\t\t}\n\t}\n\n\treturn shapesIds;\n}\n\n// Removes all `` elements which represents Word shapes and not regular images.\n//\n// @param {Array.} shapesIds Shape ids which will be checked against `` elements.\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove `` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeAllImgElementsRepresentingShapes( shapesIds, documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst imageElementsMatcher = new Matcher( {\n\t\tname: 'img'\n\t} );\n\n\tconst imgs = [];\n\n\tfor ( const value of range ) {\n\t\tif ( imageElementsMatcher.match( value.item ) ) {\n\t\t\tconst el = value.item;\n\t\t\tconst shapes = el.getAttribute( 'v:shapes' ) ? el.getAttribute( 'v:shapes' ).split( ' ' ) : [];\n\n\t\t\tif ( shapes.length && shapes.every( shape => shapesIds.indexOf( shape ) > -1 ) ) {\n\t\t\t\timgs.push( el );\n\t\t\t// Shapes may also have empty source while content is paste in some browsers (Safari).\n\t\t\t} else if ( !el.getAttribute( 'src' ) ) {\n\t\t\t\timgs.push( el );\n\t\t\t}\n\t\t}\n\t}\n\n\tfor ( const img of imgs ) {\n\t\twriter.remove( img );\n\t}\n}\n\n// Removes all shape elements (`...`) so they do not pollute the output structure.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove shape elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeAllShapeElements( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst shapeElementsMatcher = new Matcher( {\n\t\tname: /v:(.+)/\n\t} );\n\n\tconst shapes = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type == 'elementStart' && shapeElementsMatcher.match( value.item ) ) {\n\t\t\tshapes.push( value.item );\n\t\t}\n\t}\n\n\tfor ( const shape of shapes ) {\n\t\twriter.remove( shape );\n\t}\n}\n\n// Finds all `` elements in a given document fragment which have source pointing to local `file://` resource.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment in which to look for `` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Object} result All found images grouped by source type.\n// @returns {Array.} result.file Array of found `` elements with `file://` source.\n// @returns {Array.} result.blob Array of found `` elements with `blob:` source.\nfunction findAllImageElementsWithLocalSource( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\tconst imageElementsMatcher = new Matcher( {\n\t\tname: 'img'\n\t} );\n\n\tconst imgs = [];\n\n\tfor ( const value of range ) {\n\t\tif ( imageElementsMatcher.match( value.item ) ) {\n\t\t\tif ( value.item.getAttribute( 'src' ).startsWith( 'file://' ) ) {\n\t\t\t\timgs.push( value.item );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn imgs;\n}\n\n// Extracts all images HEX representations from a given RTF data.\n//\n// @param {String} rtfData The RTF data from which to extract images HEX representation.\n// @returns {Array.} Array of found HEX representations. Each array item is an object containing:\n//\n// \t\t* {String} hex Image representation in HEX format.\n// \t\t* {string} type Type of image, `image/png` or `image/jpeg`.\nfunction extractImageDataFromRtf( rtfData ) {\n\tif ( !rtfData ) {\n\t\treturn [];\n\t}\n\n\tconst regexPictureHeader = /{\\\\pict[\\s\\S]+?\\\\bliptag-?\\d+(\\\\blipupi-?\\d+)?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)?[\\s}]*?/;\n\tconst regexPicture = new RegExp( '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}', 'g' );\n\tconst images = rtfData.match( regexPicture );\n\tconst result = [];\n\n\tif ( images ) {\n\t\tfor ( const image of images ) {\n\t\t\tlet imageType = false;\n\n\t\t\tif ( image.includes( '\\\\pngblip' ) ) {\n\t\t\t\timageType = 'image/png';\n\t\t\t} else if ( image.includes( '\\\\jpegblip' ) ) {\n\t\t\t\timageType = 'image/jpeg';\n\t\t\t}\n\n\t\t\tif ( imageType ) {\n\t\t\t\tresult.push( {\n\t\t\t\t\thex: image.replace( regexPictureHeader, '' ).replace( /[^\\da-fA-F]/g, '' ),\n\t\t\t\t\ttype: imageType\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n// Replaces `src` attribute value of all given images with the corresponding base64 image representation.\n//\n// @param {Array.} imageElements Array of image elements which will have its source replaced.\n// @param {Array.} imagesHexSources Array of images hex sources (usually the result of `extractImageDataFromRtf()` function).\n// The array should be the same length as `imageElements` parameter.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction replaceImagesFileSourceWithInlineRepresentation( imageElements, imagesHexSources, writer ) {\n\t// Assume there is an equal amount of image elements and images HEX sources so they can be matched accordingly based on existing order.\n\tif ( imageElements.length === imagesHexSources.length ) {\n\t\tfor ( let i = 0; i < imageElements.length; i++ ) {\n\t\t\tconst newSrc = `data:${ imagesHexSources[ i ].type };base64,${ _convertHexToBase64( imagesHexSources[ i ].hex ) }`;\n\t\t\twriter.setAttribute( 'src', newSrc, imageElements[ i ] );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/mswordnormalizer\n */\n\nimport { transformListItemLikeElementsIntoLists } from '../filters/list';\nimport { replaceImagesSourceWithBase64 } from '../filters/image';\n\nconst msWordMatch1 = //i;\nconst msWordMatch2 = /xmlns:o=\"urn:schemas-microsoft-com/i;\n\n/**\n * Normalizer for the content pasted from Microsoft Word.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\nexport default class MSWordNormalizer {\n\t/**\n\t * Creates a new `MSWordNormalizer` instance.\n\t *\n\t * @param {module:engine/view/document~Document} document View document.\n\t */\n\tconstructor( document ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tisActive( htmlString ) {\n\t\treturn msWordMatch1.test( htmlString ) || msWordMatch2.test( htmlString );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\texecute( data ) {\n\t\tconst { body: documentFragment, stylesString } = data._parsedData;\n\n\t\ttransformListItemLikeElementsIntoLists( documentFragment, stylesString );\n\t\treplaceImagesSourceWithBase64( documentFragment, data.dataTransfer.getData( 'text/rtf' ) );\n\n\t\tdata.content = documentFragment;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/space\n */\n\n/**\n * Replaces last space preceding elements closing tag with ` `. Such operation prevents spaces from being removed\n * during further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n * This method also takes into account Word specific `` empty tags.\n * Additionally multiline sequences of spaces and new lines between tags are removed (see #39 and #40).\n *\n * @param {String} htmlString HTML string in which spacing should be normalized.\n * @returns {String} Input HTML with spaces normalized.\n */\nexport function normalizeSpacing( htmlString ) {\n\t// Run normalizeSafariSpaceSpans() two times to cover nested spans.\n\treturn normalizeSafariSpaceSpans( normalizeSafariSpaceSpans( htmlString ) )\n\t\t// Remove all \\r\\n from \"spacerun spans\" so the last replace line doesn't strip all whitespaces.\n\t\t.replace( /([^\\S\\r\\n]*?)[\\r\\n]+([^\\S\\r\\n]*<\\/span>)/g, '$1$2' )\n\t\t.replace( /<\\/span>/g, '' )\n\t\t.replace( / <\\//g, '\\u00A0<\\/o:p>/g, '\\u00A0' )\n\t\t// Remove block filler from empty paragraph. Safari uses \\u00A0 instead of  .\n\t\t.replace( /( |\\u00A0)<\\/o:p>/g, '' )\n\t\t// Remove all whitespaces when they contain any \\r or \\n.\n\t\t.replace( />([^\\S\\r\\n]*[\\r\\n]\\s*)<' );\n}\n\n/**\n * Normalizes spacing in special Word `spacerun spans` (`\\s+`) by replacing\n * all spaces with `  ` pairs. This prevents spaces from being removed during further DOM/View processing\n * (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n *\n * @param {Document} htmlDocument Native `Document` object in which spacing should be normalized.\n */\nexport function normalizeSpacerunSpans( htmlDocument ) {\n\thtmlDocument.querySelectorAll( 'span[style*=spacerun]' ).forEach( el => {\n\t\tconst innerTextLength = el.innerText.length || 0;\n\n\t\tel.innerHTML = Array( innerTextLength + 1 ).join( '\\u00A0 ' ).substr( 0, innerTextLength );\n\t} );\n}\n\n// Normalizes specific spacing generated by Safari when content pasted from Word (` `)\n// by replacing all spaces sequences longer than 1 space with `  ` pairs. This prevents spaces from being removed during\n// further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n//\n// This function is similar to {@link module:clipboard/utils/normalizeclipboarddata normalizeClipboardData util} but uses\n// regular spaces /   sequence for replacement.\n//\n// @param {String} htmlString HTML string in which spacing should be normalized\n// @returns {String} Input HTML with spaces normalized.\nfunction normalizeSafariSpaceSpans( htmlString ) {\n\treturn htmlString.replace( /(\\s+)<\\/span>/g, ( fullMatch, spaces ) => {\n\t\treturn spaces.length === 1 ? ' ' : Array( spaces.length + 1 ).join( '\\u00A0 ' ).substr( 0, spaces.length );\n\t} );\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/parse\n */\n\n/* globals DOMParser */\n\nimport { DomConverter, ViewDocument } from 'ckeditor5/src/engine';\n\nimport { normalizeSpacing, normalizeSpacerunSpans } from './space';\n\n/**\n * Parses provided HTML extracting contents of `` and `

    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 E09hlHod5s; literal 0 HcmV?d00001 diff --git a/resources/assets/images/news/news_fake_image_300_300.jpg b/resources/assets/images/news/news_fake_image_300_300.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9080cccf556c9ffd505437fe237535de47320835 GIT binary patch literal 47827 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 literal 0 HcmV?d00001 diff --git a/resources/js/back.js b/resources/js/back.js index db3dc75..fa040a9 100644 --- a/resources/js/back.js +++ b/resources/js/back.js @@ -1,5 +1,7 @@ -require('./common'); -require('./vue'); +require('./common') +require('./vue') + +const confirmJS = require('./modules/confirm.js').default.methods.confirm window.addEventListener('DOMContentLoaded', () => { let elements = document.getElementsByClassName('confirmDeleteJS') diff --git a/resources/js/back/CkUploadAdaptater.js b/resources/js/back/CkUploadAdaptater.js new file mode 100644 index 0000000..00dbe27 --- /dev/null +++ b/resources/js/back/CkUploadAdaptater.js @@ -0,0 +1,56 @@ +import axios from 'axios'; + +class CKUploadAdaptater { + constructor(loader) { + // The file loader instance to use during the upload. + this.loader = loader; + } + + // Starts the upload process. + upload() { + return this.loader.file + .then(file => new Promise((resolve, reject) => { + this._initRequest(); + this._sendRequest(file, resolve, reject); + })); + } + + // Aborts the upload process. + abort() { + if (this.cancel) { + this.cancel.abort(); + } + } + + // Initializes the XMLHttpRequest object using the URL passed to the constructor. + _initRequest() { + this.cancel = axios.CancelToken.source(); + this.route = require('./../modules/route').default.methods.route('crud-policies.upload') + } + + // Prepares the data and sends the request. + _sendRequest(file, resolve, reject) { + // Prepare the form data. + const data = new FormData(); + data.append('upload', file); + let headers = Object.assign({}, window.axios ? window.axios.defaults.headers.common : {}) + headers['Content-Type'] = 'multipart/form-data' + axios.post(this.route, data, { + withCredentials: true, + headers: headers, + onUploadProgress: (evt) => { + this.loader.uploadTotal = evt.total; + this.loader.uploaded = evt.loaded; + } + }).then((response) => { + resolve({ + default: response.data.url + }) + }).catch((error) => { + console.error(error); + reject('Le fichier à été marbré') + }) + } +} + +export { CKUploadAdaptater } diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js index dcdc4df..4f84b08 100644 --- a/resources/js/bootstrap.js +++ b/resources/js/bootstrap.js @@ -1,7 +1,7 @@ -window._ = require('lodash'); +window._ = require('lodash') try { - require('bootstrap'); + require('bootstrap') } catch (e) {} /** @@ -10,9 +10,9 @@ try { * CSRF token as a header based on the value of the "XSRF" token cookie. */ -window.axios = require('axios'); +window.axios = require('axios') -window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest' /** * Echo exposes an expressive API for subscribing to channels and listening diff --git a/resources/js/common.js b/resources/js/common.js index a719f06..18bbe87 100644 --- a/resources/js/common.js +++ b/resources/js/common.js @@ -8,12 +8,12 @@ window.axios = require('axios') window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest' -let bootstrap = require('bootstrap') +window.bootstrap = require('bootstrap') // enable bs tooltips -var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) +let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) tooltipTriggerList.map(function (tooltipTriggerEl) { - return new bootstrap.Tooltip(tooltipTriggerEl) + return new bootstrap.Tooltip(tooltipTriggerEl, { delay: { show: 1500, hide: 300 } }) }) // SweetAlert diff --git a/resources/js/components/bo/ckEditorBoComponent.vue b/resources/js/components/bo/CkEditorBoComponent.vue similarity index 66% rename from resources/js/components/bo/ckEditorBoComponent.vue rename to resources/js/components/bo/CkEditorBoComponent.vue index e02619d..5768e0f 100644 --- a/resources/js/components/bo/ckEditorBoComponent.vue +++ b/resources/js/components/bo/CkEditorBoComponent.vue @@ -11,11 +11,11 @@ + + diff --git a/resources/js/components/bo/TaggableDropdownComponent.vue b/resources/js/components/bo/TaggableDropdownComponent.vue new file mode 100644 index 0000000..8a6b9c4 --- /dev/null +++ b/resources/js/components/bo/TaggableDropdownComponent.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/resources/js/components/bo/WordCounterComponent.vue b/resources/js/components/bo/WordCounterComponent.vue new file mode 100644 index 0000000..e30c966 --- /dev/null +++ b/resources/js/components/bo/WordCounterComponent.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/resources/js/vendor/ckeditor/build/ckeditor.js b/resources/js/vendor/ckeditor/build/ckeditor.js index 878056f..507c691 100644 --- a/resources/js/vendor/ckeditor/build/ckeditor.js +++ b/resources/js/vendor/ckeditor/build/ckeditor.js @@ -1,7 +1,7 @@ -!function(t){const e=t.fr=t.fr||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 sur %1","Align cell text to the bottom":"Aligner le texte en bas","Align cell text to the center":"Aligner la cellule au centre","Align cell text to the left":"Aligner la cellule à gauche","Align cell text to the middle":"Aligner le texte au milieu","Align cell text to the right":"Aligner la cellule à droite","Align cell text to the top":"Aligner le texte en haut","Align center":"Centrer","Align left":"Aligner à gauche","Align right":"Aligner à droite","Align table to the left":"Aligner le tableau à gauche","Align table to the right":"Aligner le tableau à droite",Alignment:"Alignement",Aquamarine:"Bleu vert",Background:"Fond",Big:"Grand",Black:"Noir","Block quote":"Citation",Blue:"Bleu",Bold:"Gras",Border:"Bordure","Break text":"","Bulleted List":"Liste à puces","Bulleted list styles toolbar":"Barre d'outils des styles de liste à puce",Cancel:"Annuler","Cell properties":"Propriétés de la cellule","Center table":"Centrer le tableau ","Centered image":"Image centrée","Change image text alternative":"Changer le texte alternatif à l’image","Characters: %0":"Caractères : %0","Choose heading":"Choisir l'en-tête",Circle:"Cercle",Color:"Couleur","Color picker":"Pipette à couleurs",Column:"Colonne",Dashed:"Tirets",Decimal:"Chiffres","Decimal with leading zero":"Chiffres avec des zéros supplémentaire","Decrease indent":"Diminuer le retrait",Default:"Par défaut","Delete column":"Supprimer la colonne","Delete row":"Supprimer la ligne","Dim grey":"Gris pâle",Dimensions:"Dimensions",Disc:"Disque","Document colors":"Couleurs du document",Dotted:"Pointillés",Double:"Double",Downloadable:"Fichier téléchargeable","Dropdown toolbar":"Barre d'outils dans un menu déroulant","Edit block":"Modifier le bloc","Edit link":"Modifier le lien","Editor toolbar":"Barre d'outils de l'éditeur","Enter table caption":"","Font Color":"Couleur de police","Font Family":"Police","Font Size":"Taille de police","Full size image":"Image taille réelle",Green:"Vert",Grey:"Gris",Groove:"Rainuré","Header column":"Colonne d'entête","Header row":"Ligne d'entête",Heading:"En-tête","Heading 1":"Titre 1","Heading 2":"Titre 2","Heading 3":"Titre 3","Heading 4":"Titre 4","Heading 5":"Titre 5","Heading 6":"Titre 6",Height:"Hauteur","Horizontal line":"Ligne horizontale","Horizontal text alignment toolbar":"Barre d'outils pour modifier l'alignement horizontal du texte",Huge:"Enorme","Image resize list":"Liste des tailles d'images","Image toolbar":"Barre d'outils des images","image widget":"Objet image","In line":"","Increase indent":"Augmenter le retrait","Insert column left":"Insérer une colonne à gauche","Insert column right":"Insérer une colonne à droite","Insert image":"Insérer une image","Insert media":"Insérer un média","Insert paragraph after block":"Insérer du texte après ce bloc","Insert paragraph before block":"Insérer du texte avant ce bloc","Insert row above":"Insérer une ligne au-dessus","Insert row below":"Insérer une ligne en-dessous","Insert table":"Insérer un tableau",Inset:"Relief intérieur",Italic:"Italique",Justify:"Justifier","Justify cell text":"Justifier le contenu de la cellule","Left aligned image":"Image alignée à gauche","Light blue":"Bleu clair","Light green":"Vert clair","Light grey":"Gris clair",Link:"Lien","Link image":"Lien d'image","Link URL":"URL du lien","List properties":"","Lower-latin":"Lettres minuscules","Lower–roman":"Chiffres romains en minuscules","Media URL":"URL de média","media widget":"Widget média","Merge cell down":"Fusionner la cellule en-dessous","Merge cell left":"Fusionner la cellule à gauche","Merge cell right":"Fusionner la cellule à droite","Merge cell up":"Fusionner la cellule au-dessus","Merge cells":"Fusionner les cellules",Next:"Suivant",None:"Aucun","Numbered List":"Liste numérotée","Numbered list styles toolbar":"Barre d'outils des styles de liste numérotée","Open in a new tab":"Ouvrir dans un nouvel onglet","Open link in new tab":"Ouvrir le lien dans un nouvel onglet",Orange:"Orange",Original:"Taille originale",Outset:"Relief extérieur",Padding:"Remplissage pour aérer le texte",Paragraph:"Paragraphe","Paste the media URL in the input.":"Coller l'URL du média",Previous:"Précedent",Purple:"Violet",Red:"Rouge",Redo:"Restaurer","Remove color":"Enlever la couleur","Remove Format":"Enlever le format","Resize image":"Redimensionner l'image","Resize image to %0":"Redimensionner à %0","Resize image to the original size":"Appliquer les dimensions d'origine","Restore default":"","Reversed order":"","Rich Text Editor":"Éditeur de texte enrichi","Rich Text Editor, %0":"Éditeur de texte enrichi, %0",Ridge:"Relief","Right aligned image":"Image alignée à droite",Row:"Ligne",Save:"Enregistrer","Select all":"Sélectionner tout","Select column":"Sélectionner la colonne","Select row":"Sélectionner la ligne","Show more items":"Montrer plus d'éléments","Side image":"Image latérale",Small:"Petit",Solid:"Continu","Split cell horizontally":"Scinder la cellule horizontalement","Split cell vertically":"Scinder la cellule verticalement",Square:"Carré","Start at":"","Start index must be greater than 0.":"",Style:"Style","Table alignment toolbar":"Barre d'outils pour modifier l'alignement du tableau","Table cell text alignment":"Alignement du texte de la cellule","Table properties":"Propriétés du tableau","Table toolbar":"Barre d'outils des tableaux","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte","Text alternative":"Texte alternatif",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'La couleur est invalide. Essayez "#FF0000" ou "rgb(255,0,0)" ou "red".',"The URL must not be empty.":"L'URL ne doit pas être vide.",'The value is invalid. Try "10px" or "2em" or simply "2".':'La valeur est invalide. Essayez "10px" ou "2em" ou simplement "2".',"This link has no URL":"Ce lien n'a pas d'URL","This media URL is not supported.":"Cette URL de média n'est pas supportée.",Tiny:"Minuscule","Tip: Paste the URL into the content to embed faster.":"Astuce : Copier l'URL du média dans le contenu pour l'insérer plus rapidement","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":'Activer / désactiver le style de liste "cercle"',"Toggle the decimal list style":'Activer / désactiver le style de liste "chiffres"',"Toggle the decimal with leading zero list style":'Activer / désactiver le style de liste "chiffres de mêmes longueurs"',"Toggle the disc list style":'Activer / désactiver le style de liste "disque"',"Toggle the lower–latin list style":'Activer / désactiver le style de liste "lettres minuscules"',"Toggle the lower–roman list style":'Activer / désactiver le style de liste "chiffres romains en minuscules"',"Toggle the square list style":'Activer / désactiver le style de liste "carré"',"Toggle the upper–latin list style":'Activer / désactiver le style de liste "lettres majuscules"',"Toggle the upper–roman list style":'Activer / désactiver le style de liste "chiffres romains en majuscules"',Turquoise:"Turquoise",Underline:"Souligné",Undo:"Annuler",Unlink:"Supprimer le lien","Upload failed":"Échec de l'envoi","Upload in progress":"Téléchargement en cours","Upper-latin":"Lettres majuscules","Upper-roman":"Chiffres romains en majuscules","Vertical text alignment toolbar":"Barre d'outils pour modifier l'alignement vertical du texte",White:"Blanc","Widget toolbar":"Barre d'outils du widget",Width:"Largeur","Words: %0":"Mots : %0","Wrap text":"",Yellow:"Jaune"}),e.getPluralForm=function(t){return t>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), +!function(t){const e=t.fr=t.fr||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 sur %1","Align cell text to the bottom":"Aligner le texte en bas","Align cell text to the center":"Aligner la cellule au centre","Align cell text to the left":"Aligner la cellule à gauche","Align cell text to the middle":"Aligner le texte au milieu","Align cell text to the right":"Aligner la cellule à droite","Align cell text to the top":"Aligner le texte en haut","Align center":"Centrer","Align left":"Aligner à gauche","Align right":"Aligner à droite","Align table to the left":"Aligner le tableau à gauche","Align table to the right":"Aligner le tableau à droite",Alignment:"Alignement",Aquamarine:"Bleu vert",Background:"Fond",Big:"Grand",Black:"Noir","Block quote":"Citation",Blue:"Bleu",Bold:"Gras",Border:"Bordure","Break text":"","Bulleted List":"Liste à puces","Bulleted list styles toolbar":"Barre d'outils des styles de liste à puce",Cancel:"Annuler","Cell properties":"Propriétés de la cellule","Center table":"Centrer le tableau ","Centered image":"Image centrée","Change image text alternative":"Changer le texte alternatif à l’image","Characters: %0":"Caractères : %0","Choose heading":"Choisir l'en-tête",Circle:"Cercle",Color:"Couleur","Color picker":"Pipette à couleurs",Column:"Colonne",Dashed:"Tirets",Decimal:"Chiffres","Decimal with leading zero":"Chiffres avec des zéros supplémentaire","Decrease indent":"Diminuer le retrait",Default:"Par défaut","Delete column":"Supprimer la colonne","Delete row":"Supprimer la ligne","Dim grey":"Gris pâle",Dimensions:"Dimensions",Disc:"Disque","Document colors":"Couleurs du document",Dotted:"Pointillés",Double:"Double",Downloadable:"Fichier téléchargeable","Dropdown toolbar":"Barre d'outils dans un menu déroulant","Edit block":"Modifier le bloc","Edit link":"Modifier le lien","Editor toolbar":"Barre d'outils de l'éditeur","Enter table caption":"","Font Color":"Couleur de police","Font Family":"Police","Font Size":"Taille de police","Full size image":"Image taille réelle",Green:"Vert",Grey:"Gris",Groove:"Rainuré","Header column":"Colonne d'entête","Header row":"Ligne d'entête",Heading:"En-tête","Heading 1":"Titre 1","Heading 2":"Titre 2","Heading 3":"Titre 3","Heading 4":"Titre 4","Heading 5":"Titre 5","Heading 6":"Titre 6",Height:"Hauteur","Horizontal line":"Ligne horizontale","Horizontal text alignment toolbar":"Barre d'outils pour modifier l'alignement horizontal du texte",Huge:"Enorme","Image resize list":"Liste des tailles d'images","Image toolbar":"Barre d'outils des images","image widget":"Objet image","In line":"","Increase indent":"Augmenter le retrait",Insert:"Insérer","Insert column left":"Insérer une colonne à gauche","Insert column right":"Insérer une colonne à droite","Insert image":"Insérer une image","Insert image via URL":"Insérer une image à partir d'une URL","Insert media":"Insérer un média","Insert paragraph after block":"Insérer du texte après ce bloc","Insert paragraph before block":"Insérer du texte avant ce bloc","Insert row above":"Insérer une ligne au-dessus","Insert row below":"Insérer une ligne en-dessous","Insert table":"Insérer un tableau",Inset:"Relief intérieur",Italic:"Italique",Justify:"Justifier","Justify cell text":"Justifier le contenu de la cellule","Left aligned image":"Image alignée à gauche","Light blue":"Bleu clair","Light green":"Vert clair","Light grey":"Gris clair",Link:"Lien","Link image":"Lien d'image","Link URL":"URL du lien","List properties":"","Lower-latin":"Lettres minuscules","Lower–roman":"Chiffres romains en minuscules","Media URL":"URL de média","media widget":"Widget média","Merge cell down":"Fusionner la cellule en-dessous","Merge cell left":"Fusionner la cellule à gauche","Merge cell right":"Fusionner la cellule à droite","Merge cell up":"Fusionner la cellule au-dessus","Merge cells":"Fusionner les cellules",Next:"Suivant",None:"Aucun","Numbered List":"Liste numérotée","Numbered list styles toolbar":"Barre d'outils des styles de liste numérotée","Open in a new tab":"Ouvrir dans un nouvel onglet","Open link in new tab":"Ouvrir le lien dans un nouvel onglet",Orange:"Orange",Original:"Taille originale",Outset:"Relief extérieur",Padding:"Remplissage pour aérer le texte",Paragraph:"Paragraphe","Paste the media URL in the input.":"Coller l'URL du média",Previous:"Précedent",Purple:"Violet",Red:"Rouge",Redo:"Restaurer","Remove color":"Enlever la couleur","Remove Format":"Enlever le format","Resize image":"Redimensionner l'image","Resize image to %0":"Redimensionner à %0","Resize image to the original size":"Appliquer les dimensions d'origine","Restore default":"","Reversed order":"","Rich Text Editor":"Éditeur de texte enrichi","Rich Text Editor, %0":"Éditeur de texte enrichi, %0",Ridge:"Relief","Right aligned image":"Image alignée à droite",Row:"Ligne",Save:"Enregistrer","Select all":"Sélectionner tout","Select column":"Sélectionner la colonne","Select row":"Sélectionner la ligne","Show more items":"Montrer plus d'éléments","Side image":"Image latérale",Small:"Petit",Solid:"Continu","Split cell horizontally":"Scinder la cellule horizontalement","Split cell vertically":"Scinder la cellule verticalement",Square:"Carré","Start at":"","Start index must be greater than 0.":"",Style:"Style","Table alignment toolbar":"Barre d'outils pour modifier l'alignement du tableau","Table cell text alignment":"Alignement du texte de la cellule","Table properties":"Propriétés du tableau","Table toolbar":"Barre d'outils des tableaux","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte","Text alternative":"Texte alternatif",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'La couleur est invalide. Essayez "#FF0000" ou "rgb(255,0,0)" ou "red".',"The URL must not be empty.":"L'URL ne doit pas être vide.",'The value is invalid. Try "10px" or "2em" or simply "2".':'La valeur est invalide. Essayez "10px" ou "2em" ou simplement "2".',"This link has no URL":"Ce lien n'a pas d'URL","This media URL is not supported.":"Cette URL de média n'est pas supportée.",Tiny:"Minuscule","Tip: Paste the URL into the content to embed faster.":"Astuce : Copier l'URL du média dans le contenu pour l'insérer plus rapidement","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":'Activer / désactiver le style de liste "cercle"',"Toggle the decimal list style":'Activer / désactiver le style de liste "chiffres"',"Toggle the decimal with leading zero list style":'Activer / désactiver le style de liste "chiffres de mêmes longueurs"',"Toggle the disc list style":'Activer / désactiver le style de liste "disque"',"Toggle the lower–latin list style":'Activer / désactiver le style de liste "lettres minuscules"',"Toggle the lower–roman list style":'Activer / désactiver le style de liste "chiffres romains en minuscules"',"Toggle the square list style":'Activer / désactiver le style de liste "carré"',"Toggle the upper–latin list style":'Activer / désactiver le style de liste "lettres majuscules"',"Toggle the upper–roman list style":'Activer / désactiver le style de liste "chiffres romains en majuscules"',Turquoise:"Turquoise",Underline:"Souligné",Undo:"Annuler",Unlink:"Supprimer le lien",Update:"Modifier","Update image URL":"Modifier l'URL de l'image","Upload failed":"Échec de l'envoi","Upload in progress":"Téléchargement en cours","Upper-latin":"Lettres majuscules","Upper-roman":"Chiffres romains en majuscules","Vertical text alignment toolbar":"Barre d'outils pour modifier l'alignement vertical du texte",White:"Blanc","Widget toolbar":"Barre d'outils du widget",Width:"Largeur","Words: %0":"Mots : %0","Wrap text":"",Yellow:"Jaune"}),e.getPluralForm=function(t){return t>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), /*! * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md. */ -function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClassicEditor=e():t.ClassicEditor=e()}(self,(()=>(()=>{"use strict";var t={636:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},390:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CCzBF,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CA2DF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border)\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(var(--ck-clipboard-drop-target-dot-height) * -.5);\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t// Horizontal drop target (between blocks).\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\ttext-align: initial;\n\n\t\t& .ck-clipboard-drop-target__line {\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 0;\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-top: -1px;\n\n\t\t\t&::before {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) 0 var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size)) var(--ck-clipboard-drop-target-dot-size) 0;\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3638:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-editor-classic/theme/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,gDCED,eDKC,CAPA,uICMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAIF,CAPA,gDAMC,qBACD,CAEA,iFACC,uBAAwB,CCR1B,eDaC,CANA,yMCHA,qCAAsC,CDOpC,eAEF,CAKF,yCAEC,0CAA2C,CCpB3C,eD8BD,CAZA,yHCdE,qCAAsC,CDmBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-modal);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-toolbar {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\n\t\t& .ck-sticky-panel__content_sticky .ck-toolbar {\n\t\t\tborder-bottom-width: 1px;\n\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8894:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n"],sourceRoot:""}]);const a=s},4401:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},2585:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck .ck-button.ck-color-table__remove-color{align-items:center;display:flex;width:100%}label.ck.ck-color-grid__label{font-weight:unset}.ck .ck-button.ck-color-table__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck .ck-button.ck-color-table__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-base-border)}[dir=ltr] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-font/theme/fontcolor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-font/fontcolor.css"],names:[],mappings:"AAKA,4CAEC,kBAAmB,CADnB,YAAa,CAEb,UACD,CAEA,8BACC,iBACD,CCNA,4CAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,wDACC,mDACD,CAEA,kEAEE,uCAMF,CARA,kEAME,sCAEF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-button.ck-color-table__remove-color {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n}\n\nlabel.ck.ck-color-grid__label {\n\tfont-weight: unset;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck .ck-button.ck-color-table__remove-color {\n\tpadding: calc(var(--ck-spacing-standard) / 2 ) var(--ck-spacing-standard);\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n\n\t&:not(:focus) {\n\t\tborder-bottom: 1px solid var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const a=s},6203:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css"],names:[],mappings:"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */\n\n/* Styles should be prefixed with the `.ck-content` class.\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\n.ck-content {\n\t& .text-tiny {\n\t\tfont-size: .7em;\n\t}\n\n\t& .text-small {\n\t\tfont-size: .85em;\n\t}\n\n\t& .text-big {\n\t\tfont-size: 1.4em;\n\t}\n\n\t& .text-huge {\n\t\tfont-size: 1.8em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3230:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},2536:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css"],names:[],mappings:"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n\n.ck-editor__editable .ck-horizontal-line {\n\t/* Necessary to render properly next to floated objects, e.g. side image case. */\n\tdisplay: flow-root;\n}\n\n.ck-content hr {\n\tmargin: 15px 0;\n\theight: 4px;\n\tbackground: hsl(0, 0%, 87%);\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},9048:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(7537),i=n.n(o),r=n(3645),s=n.n(r)()(i());s.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBAuBD,CAbC,uBAEC,aAAc,CAGd,aAAc,CAGd,cAAe,CAGf,cACD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAWA,2GACC,SAUD,CAHC,qEACC,YACD,CAOA,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the

    Q8BT!Z{n<| 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 literal 0 HcmV?d00001 diff --git a/resources/assets/fonts/museo_sans/museosans-100-webfont.woff b/resources/assets/fonts/museo_sans/museosans-100-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..4259238c791a67662d143ce04af0110d2dc606e7 GIT binary patch literal 26288 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