From 6091512137223de3f47e908725befecdb75afa94 Mon Sep 17 00:00:00 2001 From: ahbmz Date: Mon, 8 Apr 2024 21:17:31 +0800 Subject: [PATCH] =?UTF-8?q?vue3.0=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 14 + .env | 6 + .env.development | 3 + .env.production | 2 + .eslintignore | 4 + .eslintrc.json | 76 + .gitignore | 4 + .prettierignore | 9 + README.md | 27 + components.d.ts | 10 + index.html | 84 + package-lock.json | 5323 ++++++++++++++++++++ package.json | 69 + postcss.config.js | 3 + prettier.config.js | 19 + public/ele-file-list/ic_file_android.png | Bin 0 -> 503 bytes public/ele-file-list/ic_file_android_sm.png | Bin 0 -> 345 bytes public/ele-file-list/ic_file_bt.png | Bin 0 -> 477 bytes public/ele-file-list/ic_file_bt_sm.png | Bin 0 -> 294 bytes public/ele-file-list/ic_file_cad.png | Bin 0 -> 797 bytes public/ele-file-list/ic_file_cad_sm.png | Bin 0 -> 516 bytes public/ele-file-list/ic_file_code.png | Bin 0 -> 550 bytes public/ele-file-list/ic_file_code_sm.png | Bin 0 -> 252 bytes public/ele-file-list/ic_file_excel.png | Bin 0 -> 555 bytes public/ele-file-list/ic_file_excel_sm.png | Bin 0 -> 314 bytes public/ele-file-list/ic_file_exe.png | Bin 0 -> 423 bytes public/ele-file-list/ic_file_exe_sm.png | Bin 0 -> 269 bytes public/ele-file-list/ic_file_flash.png | Bin 0 -> 434 bytes public/ele-file-list/ic_file_flash_sm.png | Bin 0 -> 297 bytes public/ele-file-list/ic_file_folder.png | Bin 0 -> 265 bytes public/ele-file-list/ic_file_folder_sm.png | Bin 0 -> 168 bytes public/ele-file-list/ic_file_fonts.png | Bin 0 -> 533 bytes public/ele-file-list/ic_file_fonts_sm.png | Bin 0 -> 360 bytes public/ele-file-list/ic_file_htm.png | Bin 0 -> 524 bytes public/ele-file-list/ic_file_htm_sm.png | Bin 0 -> 486 bytes public/ele-file-list/ic_file_ipa.png | Bin 0 -> 709 bytes public/ele-file-list/ic_file_ipa_sm.png | Bin 0 -> 414 bytes public/ele-file-list/ic_file_misc.png | Bin 0 -> 407 bytes public/ele-file-list/ic_file_misc_sm.png | Bin 0 -> 234 bytes public/ele-file-list/ic_file_music.png | Bin 0 -> 390 bytes public/ele-file-list/ic_file_music_sm.png | Bin 0 -> 240 bytes public/ele-file-list/ic_file_pdf.png | Bin 0 -> 701 bytes public/ele-file-list/ic_file_pdf_sm.png | Bin 0 -> 306 bytes public/ele-file-list/ic_file_picture.png | Bin 0 -> 727 bytes public/ele-file-list/ic_file_picture_sm.png | Bin 0 -> 283 bytes public/ele-file-list/ic_file_ppt.png | Bin 0 -> 406 bytes public/ele-file-list/ic_file_ppt_sm.png | Bin 0 -> 263 bytes public/ele-file-list/ic_file_ps.png | Bin 0 -> 546 bytes public/ele-file-list/ic_file_ps_sm.png | Bin 0 -> 360 bytes public/ele-file-list/ic_file_text.png | Bin 0 -> 281 bytes public/ele-file-list/ic_file_text_sm.png | Bin 0 -> 191 bytes public/ele-file-list/ic_file_video.png | Bin 0 -> 361 bytes public/ele-file-list/ic_file_video_sm.png | Bin 0 -> 246 bytes public/ele-file-list/ic_file_visio.png | Bin 0 -> 495 bytes public/ele-file-list/ic_file_visio_sm.png | Bin 0 -> 267 bytes public/ele-file-list/ic_file_word.png | Bin 0 -> 588 bytes public/ele-file-list/ic_file_word_sm.png | Bin 0 -> 326 bytes public/ele-file-list/ic_file_zip.png | Bin 0 -> 334 bytes public/ele-file-list/ic_file_zip_sm.png | Bin 0 -> 217 bytes public/favicon.ico | Bin 0 -> 4286 bytes public/json/china-provinces.geo.json | 1 + public/json/regions-data.json | 1 + public/tinymce/langs/zh_CN.js | 462 ++ public/tinymce/langs/zh_TW.js | 419 ++ public/tinymce/skins/content/dark/content.css | 72 + public/tinymce/skins/content/dark/content.min.css | 7 + public/tinymce/skins/content/default/content.css | 67 + .../tinymce/skins/content/default/content.min.css | 7 + public/tinymce/skins/content/document/content.css | 72 + .../tinymce/skins/content/document/content.min.css | 7 + public/tinymce/skins/content/writer/content.css | 68 + .../tinymce/skins/content/writer/content.min.css | 7 + public/tinymce/skins/ui/oxide-dark/content.css | 714 +++ .../tinymce/skins/ui/oxide-dark/content.inline.css | 726 +++ .../skins/ui/oxide-dark/content.inline.min.css | 7 + public/tinymce/skins/ui/oxide-dark/content.min.css | 7 + .../tinymce/skins/ui/oxide-dark/content.mobile.css | 29 + .../skins/ui/oxide-dark/content.mobile.min.css | 7 + .../skins/ui/oxide-dark/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes public/tinymce/skins/ui/oxide-dark/skin.css | 3047 +++++++++++ public/tinymce/skins/ui/oxide-dark/skin.min.css | 7 + public/tinymce/skins/ui/oxide-dark/skin.mobile.css | 673 +++ .../skins/ui/oxide-dark/skin.mobile.min.css | 7 + .../tinymce/skins/ui/oxide-dark/skin.shadowdom.css | 37 + .../skins/ui/oxide-dark/skin.shadowdom.min.css | 7 + public/tinymce/skins/ui/oxide/content.css | 732 +++ public/tinymce/skins/ui/oxide/content.inline.css | 726 +++ .../tinymce/skins/ui/oxide/content.inline.min.css | 7 + public/tinymce/skins/ui/oxide/content.min.css | 7 + public/tinymce/skins/ui/oxide/content.mobile.css | 29 + .../tinymce/skins/ui/oxide/content.mobile.min.css | 7 + .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes public/tinymce/skins/ui/oxide/skin.css | 3047 +++++++++++ public/tinymce/skins/ui/oxide/skin.min.css | 7 + public/tinymce/skins/ui/oxide/skin.mobile.css | 673 +++ public/tinymce/skins/ui/oxide/skin.mobile.min.css | 7 + public/tinymce/skins/ui/oxide/skin.shadowdom.css | 37 + .../tinymce/skins/ui/oxide/skin.shadowdom.min.css | 7 + src/App.vue | 37 + src/api/dashboard/analysis/index.ts | 56 + src/api/dashboard/analysis/model/index.ts | 51 + src/api/dashboard/monitor/index.ts | 44 + src/api/dashboard/monitor/model/index.ts | 21 + src/api/example/index.ts | 163 + src/api/example/model/index.ts | 177 + src/api/index.ts | 35 + src/api/layout/index.ts | 39 + src/api/layout/model/index.ts | 9 + src/api/login/index.ts | 27 + src/api/login/model/index.ts | 35 + src/api/system/dictionary-data/index.ts | 86 + src/api/system/dictionary-data/model/index.ts | 37 + src/api/system/dictionary/index.ts | 68 + src/api/system/dictionary/model/index.ts | 29 + src/api/system/file/index.ts | 81 + src/api/system/file/model/index.ts | 43 + src/api/system/login-record/index.ts | 31 + src/api/system/login-record/model/index.ts | 43 + src/api/system/menu/index.ts | 49 + src/api/system/menu/model/index.ts | 49 + src/api/system/operation-record/index.ts | 31 + src/api/system/operation-record/model/index.ts | 61 + src/api/system/organization/index.ts | 72 + src/api/system/organization/model/index.ts | 35 + src/api/system/role/index.ts | 104 + src/api/system/role/model/index.ts | 29 + src/api/system/user-file/index.ts | 79 + src/api/system/user-file/model/index.ts | 41 + src/api/system/user/index.ts | 148 + src/api/system/user/model/index.ts | 77 + src/as-needed.ts | 8 + src/assets/login-bg.png | Bin 0 -> 59273 bytes src/assets/login-img.png | Bin 0 -> 122781 bytes src/assets/logo.svg | 24 + src/components/ByteMdEditor/index.vue | 132 + src/components/ByteMdViewer/index.vue | 108 + src/components/DictData/index.vue | 130 + src/components/FileUpload/index.vue | 300 ++ src/components/ImageUpload/index.vue | 163 + .../ProForm/components/pro-form-footer.vue | 49 + .../ProForm/components/pro-form-item.vue | 800 +++ src/components/ProForm/index.vue | 237 + src/components/ProForm/types.ts | 45 + src/components/ProForm/util.ts | 140 + src/components/RedirectLayout/index.vue | 32 + src/components/RegionsSelect/index.vue | 149 + src/components/RegionsSelect/util.ts | 40 + src/components/RouterLayout/index.vue | 30 + src/components/TinymceEditor/index.vue | 249 + src/components/TinymceEditor/util.ts | 254 + src/components/icons/AlipayFilled.vue | 7 + src/components/icons/QqFilled.vue | 7 + src/components/icons/WechatFilled.vue | 7 + src/components/icons/index.ts | 4 + src/config/setting.ts | 36 + src/global-import.ts | 17 + src/i18n/index.ts | 19 + src/i18n/lang/en.ts | 118 + src/i18n/lang/zh_CN.ts | 118 + src/i18n/lang/zh_TW.ts | 118 + src/i18n/use-locale.ts | 71 + src/layout/components/header-notice.vue | 313 ++ src/layout/components/header-user.vue | 105 + src/layout/components/i18n-icon.vue | 61 + src/layout/components/page-footer.vue | 40 + src/layout/components/password-modal.vue | 159 + src/layout/components/setting-drawer.vue | 883 ++++ src/layout/index.vue | 395 ++ src/layout/menu-icons.ts | 2 + src/main.ts | 24 + src/router/index.ts | 68 + src/router/routes.ts | 71 + src/shims-vue.d.ts | 6 + src/store/index.ts | 6 + src/store/modules/theme.ts | 561 +++ src/store/modules/user.ts | 171 + src/styles/index.scss | 103 + src/styles/themes/dark.scss | 77 + src/styles/themes/rounded.scss | 13 + src/styles/transition.scss | 92 + src/styles/variables.scss | 81 + src/utils/common.ts | 131 + src/utils/page-title-util.ts | 16 + src/utils/permission.ts | 42 + src/utils/request.ts | 79 + src/utils/token-util.ts | 39 + src/utils/use-body-resize.ts | 21 + src/utils/use-dict-data.ts | 37 + src/utils/use-echarts.ts | 77 + src/utils/use-form-data.ts | 58 + src/utils/use-mobile.ts | 43 + src/utils/use-page-tab.ts | 210 + src/utils/use-permission.ts | 88 + .../dashboard/analysis/components/hot-search.vue | 98 + .../dashboard/analysis/components/sale-card.vue | 257 + .../analysis/components/statistics-card.vue | 289 ++ .../dashboard/analysis/components/visit-hour.vue | 99 + src/views/dashboard/analysis/index.vue | 27 + .../dashboard/monitor/components/browser-card.vue | 68 + .../dashboard/monitor/components/map-card.vue | 144 + .../dashboard/monitor/components/online-num.vue | 57 + .../monitor/components/statistics-card.vue | 185 + .../dashboard/monitor/components/user-liveness.vue | 81 + .../dashboard/monitor/components/user-rate.vue | 146 + .../monitor/components/user-satisfaction.vue | 93 + src/views/dashboard/monitor/index.vue | 41 + .../workplace/components/activities-card.vue | 157 + .../dashboard/workplace/components/goal-card.vue | 68 + .../dashboard/workplace/components/link-card.vue | 204 + .../dashboard/workplace/components/more-icon.vue | 47 + .../workplace/components/profile-card.vue | 148 + .../workplace/components/project-card.vue | 175 + .../dashboard/workplace/components/task-card.vue | 202 + .../dashboard/workplace/components/user-list.vue | 135 + src/views/dashboard/workplace/index.vue | 294 ++ src/views/dashboard/workplace/model/index.ts | 1 + src/views/example/components/demo-component.vue | 413 ++ src/views/example/components/demo-tab.vue | 189 + src/views/example/components/menu-badge.vue | 79 + src/views/example/components/menu-group.vue | 149 + src/views/example/index.vue | 21 + src/views/exception/403/components/icon-svg.vue | 276 + src/views/exception/403/index.vue | 29 + src/views/exception/404/components/icon-svg.vue | 288 ++ src/views/exception/404/index.vue | 29 + src/views/exception/500/components/icon-svg.vue | 331 ++ src/views/exception/500/index.vue | 29 + .../extension/avatar/components/option-item.vue | 71 + src/views/extension/avatar/index.vue | 69 + src/views/extension/bar-code/index.vue | 105 + src/views/extension/check-card/index.vue | 282 ++ .../extension/dragsort/components/demo-grid.vue | 114 + .../extension/dragsort/components/demo-list.vue | 108 + .../extension/dragsort/components/demo-table.vue | 122 + src/views/extension/dragsort/index.vue | 19 + src/views/extension/editor/index.vue | 117 + .../extension/excel/components/excel-export.vue | 275 + .../extension/excel/components/excel-import.vue | 312 ++ src/views/extension/excel/index.vue | 17 + .../extension/file/components/file-header.vue | 132 + src/views/extension/file/components/file-list.vue | 269 + .../extension/file/components/file-toolbar.vue | 177 + .../extension/file/components/folder-edit.vue | 114 + src/views/extension/file/components/name-edit.vue | 112 + src/views/extension/file/index.vue | 148 + src/views/extension/icon/components/basic-icons.ts | 37 + .../extension/icon/components/demo-advanced.vue | 70 + src/views/extension/icon/components/demo-basic.vue | 105 + src/views/extension/icon/index.vue | 17 + src/views/extension/map/components/demo-map.vue | 99 + src/views/extension/map/components/demo-picker.vue | 75 + src/views/extension/map/components/demo-track.vue | 165 + src/views/extension/map/index.vue | 19 + src/views/extension/markdown/index.vue | 71 + src/views/extension/menu/index.vue | 282 ++ src/views/extension/message/index.vue | 468 ++ .../extension/modal/components/demo-drawer.vue | 270 + .../extension/modal/components/demo-modal.vue | 233 + .../extension/modal/components/multiple-modal.vue | 102 + src/views/extension/modal/index.vue | 19 + .../extension/player/components/demo-basic.vue | 90 + .../extension/player/components/demo-danmu.vue | 253 + .../extension/player/components/demo-live.vue | 92 + .../extension/player/components/demo-music.vue | 287 ++ src/views/extension/player/index.vue | 59 + .../printer/components/print-checkbox.vue | 89 + .../printer/components/print-contract.vue | 325 ++ src/views/extension/printer/index.vue | 319 ++ src/views/extension/qr-code/index.vue | 177 + src/views/extension/regions/index.vue | 63 + src/views/extension/segmented/index.vue | 185 + .../extension/split/components/demo-basic.vue | 241 + .../extension/split/components/demo-table.vue | 255 + src/views/extension/split/index.vue | 29 + src/views/extension/steps/index.vue | 120 + .../components/demo-advanced-search.vue | 69 + .../table-select/components/demo-advanced.vue | 133 + .../table-select/components/demo-basic-page.vue | 115 + .../table-select/components/demo-basic.vue | 95 + .../table-select/components/demo-multiple.vue | 115 + .../table-select/components/demo-virtual.vue | 110 + src/views/extension/table-select/index.vue | 23 + .../extension/table/components/child-table.vue | 88 + .../extension/table/components/default-sorter.vue | 99 + src/views/extension/table/components/demo-base.vue | 304 ++ .../extension/table/components/editable-table.vue | 300 ++ .../table/components/expandable-table.vue | 98 + .../extension/table/components/merge-cell.vue | 57 + .../extension/table/components/nested-table.vue | 95 + .../extension/table/components/sortable-table.vue | 170 + .../extension/table/components/tree-table.vue | 59 + .../extension/table/components/virtual-base.vue | 353 ++ .../table/components/virtual-expandable.vue | 168 + .../extension/table/components/virtual-header.vue | 134 + .../extension/table/components/virtual-merge.vue | 60 + .../extension/table/components/virtual-tree.vue | 61 + src/views/extension/table/index.vue | 161 + src/views/extension/tabs/index.vue | 262 + src/views/extension/tag/index.vue | 102 + src/views/extension/text/index.vue | 237 + src/views/extension/tour/index.vue | 166 + .../tree-select/components/demo-basic.vue | 100 + .../extension/tree-select/components/demo-lazy.vue | 80 + .../tree-select/components/demo-multiple.vue | 116 + .../tree-select/components/demo-search.vue | 76 + .../tree-select/components/demo-strategy.vue | 116 + src/views/extension/tree-select/index.vue | 23 + .../extension/upload/components/demo-advanced.vue | 143 + .../extension/upload/components/demo-basic.vue | 110 + .../extension/upload/components/demo-customer.vue | 193 + .../extension/upload/components/demo-file.vue | 114 + .../extension/upload/components/demo-form1.vue | 225 + .../extension/upload/components/demo-form2.vue | 162 + .../extension/upload/components/demo-multiple.vue | 87 + src/views/extension/upload/index.vue | 27 + src/views/extension/watermark/index.vue | 132 + src/views/forget/index.vue | 5 + src/views/form/advanced/index.vue | 555 ++ src/views/form/basic/index.vue | 252 + src/views/form/build/components/code-preview.vue | 300 ++ .../build/components/covers/cover-autocomplete.vue | 15 + .../build/components/covers/cover-cascader.vue | 33 + .../build/components/covers/cover-check-card.vue | 11 + .../components/covers/cover-checkbox-button.vue | 19 + .../build/components/covers/cover-checkbox.vue | 20 + .../form/build/components/covers/cover-date.vue | 13 + .../build/components/covers/cover-daterange.vue | 13 + .../build/components/covers/cover-datetime.vue | 13 + .../components/covers/cover-datetimerange.vue | 13 + .../components/covers/cover-dict-checkbox.vue | 27 + .../covers/cover-dict-multiple-select.vue | 40 + .../build/components/covers/cover-dict-radio.vue | 27 + .../build/components/covers/cover-dict-select.vue | 29 + .../build/components/covers/cover-edit-tag.vue | 12 + .../form/build/components/covers/cover-editor.vue | 20 + .../build/components/covers/cover-file-upload.vue | 51 + .../build/components/covers/cover-image-upload.vue | 38 + .../build/components/covers/cover-input-number.vue | 48 + .../form/build/components/covers/cover-input.vue | 10 + .../covers/cover-multiple-check-card.vue | 11 + .../components/covers/cover-multiple-select.vue | 26 + .../build/components/covers/cover-radio-button.vue | 19 + .../form/build/components/covers/cover-radio.vue | 20 + .../form/build/components/covers/cover-rate.vue | 19 + .../form/build/components/covers/cover-regions.vue | 41 + .../form/build/components/covers/cover-select.vue | 15 + .../build/components/covers/cover-slider-range.vue | 59 + .../form/build/components/covers/cover-slider.vue | 36 + .../form/build/components/covers/cover-switch.vue | 23 + .../covers/cover-table-multiple-select.vue | 15 + .../build/components/covers/cover-table-select.vue | 13 + .../build/components/covers/cover-textarea.vue | 15 + .../build/components/covers/cover-time-select.vue | 15 + .../form/build/components/covers/cover-time.vue | 27 + .../build/components/covers/cover-timerange.vue | 27 + .../covers/cover-tree-multiple-select.vue | 29 + .../build/components/covers/cover-tree-select.vue | 24 + .../covers/cover-virtual-tree-multiple-select.vue | 40 + .../covers/cover-virtual-tree-select.vue | 35 + .../form/build/components/covers/icons/Arrow.vue | 9 + .../form/build/components/covers/icons/ArrowUp.vue | 7 + .../build/components/covers/icons/Calendar.vue | 14 + .../form/build/components/covers/icons/Card.vue | 34 + .../build/components/covers/icons/Checkbox.vue | 34 + .../form/build/components/covers/icons/Cursor.vue | 20 + .../form/build/components/covers/icons/Date.vue | 7 + .../form/build/components/covers/icons/Icon.vue | 47 + .../form/build/components/covers/icons/Image.vue | 36 + .../form/build/components/covers/icons/Input.vue | 16 + .../form/build/components/covers/icons/Panel.vue | 12 + .../form/build/components/covers/icons/Plus.vue | 7 + .../form/build/components/covers/icons/Radio.vue | 21 + .../build/components/covers/icons/RadioButton.vue | 38 + .../components/covers/icons/RangeSkeleton.vue | 16 + .../build/components/covers/icons/Skeleton.vue | 18 + .../form/build/components/covers/icons/Star.vue | 7 + .../form/build/components/covers/icons/Table.vue | 28 + .../build/components/covers/icons/TableRow.vue | 27 + .../form/build/components/covers/icons/Text.vue | 12 + .../form/build/components/covers/icons/Time.vue | 7 + .../form/build/components/covers/icons/index.ts | 21 + src/views/form/build/components/covers/index.ts | 81 + src/views/form/build/components/form-preview.vue | 103 + src/views/form/build/components/item-add.vue | 161 + src/views/form/build/components/item-edit.vue | 333 ++ src/views/form/build/components/util.ts | 802 +++ src/views/form/build/index.vue | 389 ++ src/views/form/step/components/step-confirm.vue | 98 + src/views/form/step/components/step-edit.vue | 126 + src/views/form/step/components/step-success.vue | 62 + src/views/form/step/index.vue | 109 + src/views/form/step/model/index.ts | 7 + src/views/list/advanced/index.vue | 497 ++ src/views/list/basic/add/index.vue | 25 + src/views/list/basic/components/edit-form.vue | 251 + .../list/basic/components/nickname-filter.vue | 89 + src/views/list/basic/components/search-form.vue | 131 + src/views/list/basic/edit/index.vue | 77 + src/views/list/basic/index.vue | 432 ++ src/views/list/card/application/index.vue | 248 + src/views/list/card/article/index.vue | 286 ++ .../list/card/project/components/top-search.vue | 47 + src/views/list/card/project/index.vue | 308 ++ src/views/login/index.vue | 416 ++ src/views/result/fail/index.vue | 66 + src/views/result/success/index.vue | 35 + .../dictionary/components/dict-data-edit.vue | 181 + .../dictionary/components/dict-data-list.vue | 196 + .../dictionary/components/dict-data-search.vue | 59 + .../system/dictionary/components/dict-edit.vue | 171 + src/views/system/dictionary/index.vue | 231 + src/views/system/file/components/file-search.vue | 61 + src/views/system/file/index.vue | 226 + .../components/login-record-search.vue | 89 + src/views/system/login-record/index.vue | 253 + src/views/system/menu/components/icon-select.vue | 70 + src/views/system/menu/components/menu-edit.vue | 360 ++ src/views/system/menu/components/menu-search.vue | 65 + src/views/system/menu/components/menu-select.vue | 60 + src/views/system/menu/index.vue | 271 + .../components/operation-record-detail.vue | 160 + .../components/operation-record-search.vue | 79 + src/views/system/operation-record/index.vue | 275 + .../system/organization/components/org-edit.vue | 218 + .../system/organization/components/org-select.vue | 60 + .../organization/components/org-user-edit.vue | 260 + .../organization/components/org-user-list.vue | 283 ++ .../organization/components/org-user-search.vue | 65 + src/views/system/organization/index.vue | 227 + src/views/system/role/components/role-auth.vue | 163 + src/views/system/role/components/role-edit.vue | 151 + src/views/system/role/components/role-search.vue | 64 + src/views/system/role/index.vue | 193 + src/views/system/user/components/role-select.vue | 66 + src/views/system/user/components/user-edit.vue | 283 ++ src/views/system/user/components/user-import.vue | 122 + src/views/system/user/components/user-search.vue | 65 + src/views/system/user/details/index.vue | 157 + src/views/system/user/index.vue | 293 ++ .../user/message/components/message-letter.vue | 136 + .../user/message/components/message-notice.vue | 131 + src/views/user/message/components/message-todo.vue | 131 + src/views/user/message/index.vue | 159 + src/views/user/profile/components/user-account.vue | 102 + src/views/user/profile/components/user-card.vue | 200 + src/views/user/profile/components/user-form.vue | 182 + src/views/user/profile/index.vue | 91 + src/vite-env.d.ts | 1 + tsconfig.json | 37 + vite.config.ts | 72 + 450 files changed, 58543 insertions(+) create mode 100644 .editorconfig create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .prettierignore create mode 100644 README.md create mode 100644 components.d.ts create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 prettier.config.js create mode 100644 public/ele-file-list/ic_file_android.png create mode 100644 public/ele-file-list/ic_file_android_sm.png create mode 100644 public/ele-file-list/ic_file_bt.png create mode 100644 public/ele-file-list/ic_file_bt_sm.png create mode 100644 public/ele-file-list/ic_file_cad.png create mode 100644 public/ele-file-list/ic_file_cad_sm.png create mode 100644 public/ele-file-list/ic_file_code.png create mode 100644 public/ele-file-list/ic_file_code_sm.png create mode 100644 public/ele-file-list/ic_file_excel.png create mode 100644 public/ele-file-list/ic_file_excel_sm.png create mode 100644 public/ele-file-list/ic_file_exe.png create mode 100644 public/ele-file-list/ic_file_exe_sm.png create mode 100644 public/ele-file-list/ic_file_flash.png create mode 100644 public/ele-file-list/ic_file_flash_sm.png create mode 100644 public/ele-file-list/ic_file_folder.png create mode 100644 public/ele-file-list/ic_file_folder_sm.png create mode 100644 public/ele-file-list/ic_file_fonts.png create mode 100644 public/ele-file-list/ic_file_fonts_sm.png create mode 100644 public/ele-file-list/ic_file_htm.png create mode 100644 public/ele-file-list/ic_file_htm_sm.png create mode 100644 public/ele-file-list/ic_file_ipa.png create mode 100644 public/ele-file-list/ic_file_ipa_sm.png create mode 100644 public/ele-file-list/ic_file_misc.png create mode 100644 public/ele-file-list/ic_file_misc_sm.png create mode 100644 public/ele-file-list/ic_file_music.png create mode 100644 public/ele-file-list/ic_file_music_sm.png create mode 100644 public/ele-file-list/ic_file_pdf.png create mode 100644 public/ele-file-list/ic_file_pdf_sm.png create mode 100644 public/ele-file-list/ic_file_picture.png create mode 100644 public/ele-file-list/ic_file_picture_sm.png create mode 100644 public/ele-file-list/ic_file_ppt.png create mode 100644 public/ele-file-list/ic_file_ppt_sm.png create mode 100644 public/ele-file-list/ic_file_ps.png create mode 100644 public/ele-file-list/ic_file_ps_sm.png create mode 100644 public/ele-file-list/ic_file_text.png create mode 100644 public/ele-file-list/ic_file_text_sm.png create mode 100644 public/ele-file-list/ic_file_video.png create mode 100644 public/ele-file-list/ic_file_video_sm.png create mode 100644 public/ele-file-list/ic_file_visio.png create mode 100644 public/ele-file-list/ic_file_visio_sm.png create mode 100644 public/ele-file-list/ic_file_word.png create mode 100644 public/ele-file-list/ic_file_word_sm.png create mode 100644 public/ele-file-list/ic_file_zip.png create mode 100644 public/ele-file-list/ic_file_zip_sm.png create mode 100644 public/favicon.ico create mode 100644 public/json/china-provinces.geo.json create mode 100644 public/json/regions-data.json create mode 100644 public/tinymce/langs/zh_CN.js create mode 100644 public/tinymce/langs/zh_TW.js create mode 100644 public/tinymce/skins/content/dark/content.css create mode 100644 public/tinymce/skins/content/dark/content.min.css create mode 100644 public/tinymce/skins/content/default/content.css create mode 100644 public/tinymce/skins/content/default/content.min.css create mode 100644 public/tinymce/skins/content/document/content.css create mode 100644 public/tinymce/skins/content/document/content.min.css create mode 100644 public/tinymce/skins/content/writer/content.css create mode 100644 public/tinymce/skins/content/writer/content.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.inline.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.mobile.css create mode 100644 public/tinymce/skins/ui/oxide-dark/content.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.mobile.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css create mode 100644 public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.css create mode 100644 public/tinymce/skins/ui/oxide/content.inline.css create mode 100644 public/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.min.css create mode 100644 public/tinymce/skins/ui/oxide/content.mobile.css create mode 100644 public/tinymce/skins/ui/oxide/content.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff create mode 100644 public/tinymce/skins/ui/oxide/skin.css create mode 100644 public/tinymce/skins/ui/oxide/skin.min.css create mode 100644 public/tinymce/skins/ui/oxide/skin.mobile.css create mode 100644 public/tinymce/skins/ui/oxide/skin.mobile.min.css create mode 100644 public/tinymce/skins/ui/oxide/skin.shadowdom.css create mode 100644 public/tinymce/skins/ui/oxide/skin.shadowdom.min.css create mode 100644 src/App.vue create mode 100644 src/api/dashboard/analysis/index.ts create mode 100644 src/api/dashboard/analysis/model/index.ts create mode 100644 src/api/dashboard/monitor/index.ts create mode 100644 src/api/dashboard/monitor/model/index.ts create mode 100644 src/api/example/index.ts create mode 100644 src/api/example/model/index.ts create mode 100644 src/api/index.ts create mode 100644 src/api/layout/index.ts create mode 100644 src/api/layout/model/index.ts create mode 100644 src/api/login/index.ts create mode 100644 src/api/login/model/index.ts create mode 100644 src/api/system/dictionary-data/index.ts create mode 100644 src/api/system/dictionary-data/model/index.ts create mode 100644 src/api/system/dictionary/index.ts create mode 100644 src/api/system/dictionary/model/index.ts create mode 100644 src/api/system/file/index.ts create mode 100644 src/api/system/file/model/index.ts create mode 100644 src/api/system/login-record/index.ts create mode 100644 src/api/system/login-record/model/index.ts create mode 100644 src/api/system/menu/index.ts create mode 100644 src/api/system/menu/model/index.ts create mode 100644 src/api/system/operation-record/index.ts create mode 100644 src/api/system/operation-record/model/index.ts create mode 100644 src/api/system/organization/index.ts create mode 100644 src/api/system/organization/model/index.ts create mode 100644 src/api/system/role/index.ts create mode 100644 src/api/system/role/model/index.ts create mode 100644 src/api/system/user-file/index.ts create mode 100644 src/api/system/user-file/model/index.ts create mode 100644 src/api/system/user/index.ts create mode 100644 src/api/system/user/model/index.ts create mode 100644 src/as-needed.ts create mode 100644 src/assets/login-bg.png create mode 100644 src/assets/login-img.png create mode 100644 src/assets/logo.svg create mode 100644 src/components/ByteMdEditor/index.vue create mode 100644 src/components/ByteMdViewer/index.vue create mode 100644 src/components/DictData/index.vue create mode 100644 src/components/FileUpload/index.vue create mode 100644 src/components/ImageUpload/index.vue create mode 100644 src/components/ProForm/components/pro-form-footer.vue create mode 100644 src/components/ProForm/components/pro-form-item.vue create mode 100644 src/components/ProForm/index.vue create mode 100644 src/components/ProForm/types.ts create mode 100644 src/components/ProForm/util.ts create mode 100644 src/components/RedirectLayout/index.vue create mode 100644 src/components/RegionsSelect/index.vue create mode 100644 src/components/RegionsSelect/util.ts create mode 100644 src/components/RouterLayout/index.vue create mode 100644 src/components/TinymceEditor/index.vue create mode 100644 src/components/TinymceEditor/util.ts create mode 100644 src/components/icons/AlipayFilled.vue create mode 100644 src/components/icons/QqFilled.vue create mode 100644 src/components/icons/WechatFilled.vue create mode 100644 src/components/icons/index.ts create mode 100644 src/config/setting.ts create mode 100644 src/global-import.ts create mode 100644 src/i18n/index.ts create mode 100644 src/i18n/lang/en.ts create mode 100644 src/i18n/lang/zh_CN.ts create mode 100644 src/i18n/lang/zh_TW.ts create mode 100644 src/i18n/use-locale.ts create mode 100644 src/layout/components/header-notice.vue create mode 100644 src/layout/components/header-user.vue create mode 100644 src/layout/components/i18n-icon.vue create mode 100644 src/layout/components/page-footer.vue create mode 100644 src/layout/components/password-modal.vue create mode 100644 src/layout/components/setting-drawer.vue create mode 100644 src/layout/index.vue create mode 100644 src/layout/menu-icons.ts create mode 100644 src/main.ts create mode 100644 src/router/index.ts create mode 100644 src/router/routes.ts create mode 100644 src/shims-vue.d.ts create mode 100644 src/store/index.ts create mode 100644 src/store/modules/theme.ts create mode 100644 src/store/modules/user.ts create mode 100644 src/styles/index.scss create mode 100644 src/styles/themes/dark.scss create mode 100644 src/styles/themes/rounded.scss create mode 100644 src/styles/transition.scss create mode 100644 src/styles/variables.scss create mode 100644 src/utils/common.ts create mode 100644 src/utils/page-title-util.ts create mode 100644 src/utils/permission.ts create mode 100644 src/utils/request.ts create mode 100644 src/utils/token-util.ts create mode 100644 src/utils/use-body-resize.ts create mode 100644 src/utils/use-dict-data.ts create mode 100644 src/utils/use-echarts.ts create mode 100644 src/utils/use-form-data.ts create mode 100644 src/utils/use-mobile.ts create mode 100644 src/utils/use-page-tab.ts create mode 100644 src/utils/use-permission.ts create mode 100644 src/views/dashboard/analysis/components/hot-search.vue create mode 100644 src/views/dashboard/analysis/components/sale-card.vue create mode 100644 src/views/dashboard/analysis/components/statistics-card.vue create mode 100644 src/views/dashboard/analysis/components/visit-hour.vue create mode 100644 src/views/dashboard/analysis/index.vue create mode 100644 src/views/dashboard/monitor/components/browser-card.vue create mode 100644 src/views/dashboard/monitor/components/map-card.vue create mode 100644 src/views/dashboard/monitor/components/online-num.vue create mode 100644 src/views/dashboard/monitor/components/statistics-card.vue create mode 100644 src/views/dashboard/monitor/components/user-liveness.vue create mode 100644 src/views/dashboard/monitor/components/user-rate.vue create mode 100644 src/views/dashboard/monitor/components/user-satisfaction.vue create mode 100644 src/views/dashboard/monitor/index.vue create mode 100644 src/views/dashboard/workplace/components/activities-card.vue create mode 100644 src/views/dashboard/workplace/components/goal-card.vue create mode 100644 src/views/dashboard/workplace/components/link-card.vue create mode 100644 src/views/dashboard/workplace/components/more-icon.vue create mode 100644 src/views/dashboard/workplace/components/profile-card.vue create mode 100644 src/views/dashboard/workplace/components/project-card.vue create mode 100644 src/views/dashboard/workplace/components/task-card.vue create mode 100644 src/views/dashboard/workplace/components/user-list.vue create mode 100644 src/views/dashboard/workplace/index.vue create mode 100644 src/views/dashboard/workplace/model/index.ts create mode 100644 src/views/example/components/demo-component.vue create mode 100644 src/views/example/components/demo-tab.vue create mode 100644 src/views/example/components/menu-badge.vue create mode 100644 src/views/example/components/menu-group.vue create mode 100644 src/views/example/index.vue create mode 100644 src/views/exception/403/components/icon-svg.vue create mode 100644 src/views/exception/403/index.vue create mode 100644 src/views/exception/404/components/icon-svg.vue create mode 100644 src/views/exception/404/index.vue create mode 100644 src/views/exception/500/components/icon-svg.vue create mode 100644 src/views/exception/500/index.vue create mode 100644 src/views/extension/avatar/components/option-item.vue create mode 100644 src/views/extension/avatar/index.vue create mode 100644 src/views/extension/bar-code/index.vue create mode 100644 src/views/extension/check-card/index.vue create mode 100644 src/views/extension/dragsort/components/demo-grid.vue create mode 100644 src/views/extension/dragsort/components/demo-list.vue create mode 100644 src/views/extension/dragsort/components/demo-table.vue create mode 100644 src/views/extension/dragsort/index.vue create mode 100644 src/views/extension/editor/index.vue create mode 100644 src/views/extension/excel/components/excel-export.vue create mode 100644 src/views/extension/excel/components/excel-import.vue create mode 100644 src/views/extension/excel/index.vue create mode 100644 src/views/extension/file/components/file-header.vue create mode 100644 src/views/extension/file/components/file-list.vue create mode 100644 src/views/extension/file/components/file-toolbar.vue create mode 100644 src/views/extension/file/components/folder-edit.vue create mode 100644 src/views/extension/file/components/name-edit.vue create mode 100644 src/views/extension/file/index.vue create mode 100644 src/views/extension/icon/components/basic-icons.ts create mode 100644 src/views/extension/icon/components/demo-advanced.vue create mode 100644 src/views/extension/icon/components/demo-basic.vue create mode 100644 src/views/extension/icon/index.vue create mode 100644 src/views/extension/map/components/demo-map.vue create mode 100644 src/views/extension/map/components/demo-picker.vue create mode 100644 src/views/extension/map/components/demo-track.vue create mode 100644 src/views/extension/map/index.vue create mode 100644 src/views/extension/markdown/index.vue create mode 100644 src/views/extension/menu/index.vue create mode 100644 src/views/extension/message/index.vue create mode 100644 src/views/extension/modal/components/demo-drawer.vue create mode 100644 src/views/extension/modal/components/demo-modal.vue create mode 100644 src/views/extension/modal/components/multiple-modal.vue create mode 100644 src/views/extension/modal/index.vue create mode 100644 src/views/extension/player/components/demo-basic.vue create mode 100644 src/views/extension/player/components/demo-danmu.vue create mode 100644 src/views/extension/player/components/demo-live.vue create mode 100644 src/views/extension/player/components/demo-music.vue create mode 100644 src/views/extension/player/index.vue create mode 100644 src/views/extension/printer/components/print-checkbox.vue create mode 100644 src/views/extension/printer/components/print-contract.vue create mode 100644 src/views/extension/printer/index.vue create mode 100644 src/views/extension/qr-code/index.vue create mode 100644 src/views/extension/regions/index.vue create mode 100644 src/views/extension/segmented/index.vue create mode 100644 src/views/extension/split/components/demo-basic.vue create mode 100644 src/views/extension/split/components/demo-table.vue create mode 100644 src/views/extension/split/index.vue create mode 100644 src/views/extension/steps/index.vue create mode 100644 src/views/extension/table-select/components/demo-advanced-search.vue create mode 100644 src/views/extension/table-select/components/demo-advanced.vue create mode 100644 src/views/extension/table-select/components/demo-basic-page.vue create mode 100644 src/views/extension/table-select/components/demo-basic.vue create mode 100644 src/views/extension/table-select/components/demo-multiple.vue create mode 100644 src/views/extension/table-select/components/demo-virtual.vue create mode 100644 src/views/extension/table-select/index.vue create mode 100644 src/views/extension/table/components/child-table.vue create mode 100644 src/views/extension/table/components/default-sorter.vue create mode 100644 src/views/extension/table/components/demo-base.vue create mode 100644 src/views/extension/table/components/editable-table.vue create mode 100644 src/views/extension/table/components/expandable-table.vue create mode 100644 src/views/extension/table/components/merge-cell.vue create mode 100644 src/views/extension/table/components/nested-table.vue create mode 100644 src/views/extension/table/components/sortable-table.vue create mode 100644 src/views/extension/table/components/tree-table.vue create mode 100644 src/views/extension/table/components/virtual-base.vue create mode 100644 src/views/extension/table/components/virtual-expandable.vue create mode 100644 src/views/extension/table/components/virtual-header.vue create mode 100644 src/views/extension/table/components/virtual-merge.vue create mode 100644 src/views/extension/table/components/virtual-tree.vue create mode 100644 src/views/extension/table/index.vue create mode 100644 src/views/extension/tabs/index.vue create mode 100644 src/views/extension/tag/index.vue create mode 100644 src/views/extension/text/index.vue create mode 100644 src/views/extension/tour/index.vue create mode 100644 src/views/extension/tree-select/components/demo-basic.vue create mode 100644 src/views/extension/tree-select/components/demo-lazy.vue create mode 100644 src/views/extension/tree-select/components/demo-multiple.vue create mode 100644 src/views/extension/tree-select/components/demo-search.vue create mode 100644 src/views/extension/tree-select/components/demo-strategy.vue create mode 100644 src/views/extension/tree-select/index.vue create mode 100644 src/views/extension/upload/components/demo-advanced.vue create mode 100644 src/views/extension/upload/components/demo-basic.vue create mode 100644 src/views/extension/upload/components/demo-customer.vue create mode 100644 src/views/extension/upload/components/demo-file.vue create mode 100644 src/views/extension/upload/components/demo-form1.vue create mode 100644 src/views/extension/upload/components/demo-form2.vue create mode 100644 src/views/extension/upload/components/demo-multiple.vue create mode 100644 src/views/extension/upload/index.vue create mode 100644 src/views/extension/watermark/index.vue create mode 100644 src/views/forget/index.vue create mode 100644 src/views/form/advanced/index.vue create mode 100644 src/views/form/basic/index.vue create mode 100644 src/views/form/build/components/code-preview.vue create mode 100644 src/views/form/build/components/covers/cover-autocomplete.vue create mode 100644 src/views/form/build/components/covers/cover-cascader.vue create mode 100644 src/views/form/build/components/covers/cover-check-card.vue create mode 100644 src/views/form/build/components/covers/cover-checkbox-button.vue create mode 100644 src/views/form/build/components/covers/cover-checkbox.vue create mode 100644 src/views/form/build/components/covers/cover-date.vue create mode 100644 src/views/form/build/components/covers/cover-daterange.vue create mode 100644 src/views/form/build/components/covers/cover-datetime.vue create mode 100644 src/views/form/build/components/covers/cover-datetimerange.vue create mode 100644 src/views/form/build/components/covers/cover-dict-checkbox.vue create mode 100644 src/views/form/build/components/covers/cover-dict-multiple-select.vue create mode 100644 src/views/form/build/components/covers/cover-dict-radio.vue create mode 100644 src/views/form/build/components/covers/cover-dict-select.vue create mode 100644 src/views/form/build/components/covers/cover-edit-tag.vue create mode 100644 src/views/form/build/components/covers/cover-editor.vue create mode 100644 src/views/form/build/components/covers/cover-file-upload.vue create mode 100644 src/views/form/build/components/covers/cover-image-upload.vue create mode 100644 src/views/form/build/components/covers/cover-input-number.vue create mode 100644 src/views/form/build/components/covers/cover-input.vue create mode 100644 src/views/form/build/components/covers/cover-multiple-check-card.vue create mode 100644 src/views/form/build/components/covers/cover-multiple-select.vue create mode 100644 src/views/form/build/components/covers/cover-radio-button.vue create mode 100644 src/views/form/build/components/covers/cover-radio.vue create mode 100644 src/views/form/build/components/covers/cover-rate.vue create mode 100644 src/views/form/build/components/covers/cover-regions.vue create mode 100644 src/views/form/build/components/covers/cover-select.vue create mode 100644 src/views/form/build/components/covers/cover-slider-range.vue create mode 100644 src/views/form/build/components/covers/cover-slider.vue create mode 100644 src/views/form/build/components/covers/cover-switch.vue create mode 100644 src/views/form/build/components/covers/cover-table-multiple-select.vue create mode 100644 src/views/form/build/components/covers/cover-table-select.vue create mode 100644 src/views/form/build/components/covers/cover-textarea.vue create mode 100644 src/views/form/build/components/covers/cover-time-select.vue create mode 100644 src/views/form/build/components/covers/cover-time.vue create mode 100644 src/views/form/build/components/covers/cover-timerange.vue create mode 100644 src/views/form/build/components/covers/cover-tree-multiple-select.vue create mode 100644 src/views/form/build/components/covers/cover-tree-select.vue create mode 100644 src/views/form/build/components/covers/cover-virtual-tree-multiple-select.vue create mode 100644 src/views/form/build/components/covers/cover-virtual-tree-select.vue create mode 100644 src/views/form/build/components/covers/icons/Arrow.vue create mode 100644 src/views/form/build/components/covers/icons/ArrowUp.vue create mode 100644 src/views/form/build/components/covers/icons/Calendar.vue create mode 100644 src/views/form/build/components/covers/icons/Card.vue create mode 100644 src/views/form/build/components/covers/icons/Checkbox.vue create mode 100644 src/views/form/build/components/covers/icons/Cursor.vue create mode 100644 src/views/form/build/components/covers/icons/Date.vue create mode 100644 src/views/form/build/components/covers/icons/Icon.vue create mode 100644 src/views/form/build/components/covers/icons/Image.vue create mode 100644 src/views/form/build/components/covers/icons/Input.vue create mode 100644 src/views/form/build/components/covers/icons/Panel.vue create mode 100644 src/views/form/build/components/covers/icons/Plus.vue create mode 100644 src/views/form/build/components/covers/icons/Radio.vue create mode 100644 src/views/form/build/components/covers/icons/RadioButton.vue create mode 100644 src/views/form/build/components/covers/icons/RangeSkeleton.vue create mode 100644 src/views/form/build/components/covers/icons/Skeleton.vue create mode 100644 src/views/form/build/components/covers/icons/Star.vue create mode 100644 src/views/form/build/components/covers/icons/Table.vue create mode 100644 src/views/form/build/components/covers/icons/TableRow.vue create mode 100644 src/views/form/build/components/covers/icons/Text.vue create mode 100644 src/views/form/build/components/covers/icons/Time.vue create mode 100644 src/views/form/build/components/covers/icons/index.ts create mode 100644 src/views/form/build/components/covers/index.ts create mode 100644 src/views/form/build/components/form-preview.vue create mode 100644 src/views/form/build/components/item-add.vue create mode 100644 src/views/form/build/components/item-edit.vue create mode 100644 src/views/form/build/components/util.ts create mode 100644 src/views/form/build/index.vue create mode 100644 src/views/form/step/components/step-confirm.vue create mode 100644 src/views/form/step/components/step-edit.vue create mode 100644 src/views/form/step/components/step-success.vue create mode 100644 src/views/form/step/index.vue create mode 100644 src/views/form/step/model/index.ts create mode 100644 src/views/list/advanced/index.vue create mode 100644 src/views/list/basic/add/index.vue create mode 100644 src/views/list/basic/components/edit-form.vue create mode 100644 src/views/list/basic/components/nickname-filter.vue create mode 100644 src/views/list/basic/components/search-form.vue create mode 100644 src/views/list/basic/edit/index.vue create mode 100644 src/views/list/basic/index.vue create mode 100644 src/views/list/card/application/index.vue create mode 100644 src/views/list/card/article/index.vue create mode 100644 src/views/list/card/project/components/top-search.vue create mode 100644 src/views/list/card/project/index.vue create mode 100644 src/views/login/index.vue create mode 100644 src/views/result/fail/index.vue create mode 100644 src/views/result/success/index.vue create mode 100644 src/views/system/dictionary/components/dict-data-edit.vue create mode 100644 src/views/system/dictionary/components/dict-data-list.vue create mode 100644 src/views/system/dictionary/components/dict-data-search.vue create mode 100644 src/views/system/dictionary/components/dict-edit.vue create mode 100644 src/views/system/dictionary/index.vue create mode 100644 src/views/system/file/components/file-search.vue create mode 100644 src/views/system/file/index.vue create mode 100644 src/views/system/login-record/components/login-record-search.vue create mode 100644 src/views/system/login-record/index.vue create mode 100644 src/views/system/menu/components/icon-select.vue create mode 100644 src/views/system/menu/components/menu-edit.vue create mode 100644 src/views/system/menu/components/menu-search.vue create mode 100644 src/views/system/menu/components/menu-select.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/operation-record/components/operation-record-detail.vue create mode 100644 src/views/system/operation-record/components/operation-record-search.vue create mode 100644 src/views/system/operation-record/index.vue create mode 100644 src/views/system/organization/components/org-edit.vue create mode 100644 src/views/system/organization/components/org-select.vue create mode 100644 src/views/system/organization/components/org-user-edit.vue create mode 100644 src/views/system/organization/components/org-user-list.vue create mode 100644 src/views/system/organization/components/org-user-search.vue create mode 100644 src/views/system/organization/index.vue create mode 100644 src/views/system/role/components/role-auth.vue create mode 100644 src/views/system/role/components/role-edit.vue create mode 100644 src/views/system/role/components/role-search.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/user/components/role-select.vue create mode 100644 src/views/system/user/components/user-edit.vue create mode 100644 src/views/system/user/components/user-import.vue create mode 100644 src/views/system/user/components/user-search.vue create mode 100644 src/views/system/user/details/index.vue create mode 100644 src/views/system/user/index.vue create mode 100644 src/views/user/message/components/message-letter.vue create mode 100644 src/views/user/message/components/message-notice.vue create mode 100644 src/views/user/message/components/message-todo.vue create mode 100644 src/views/user/message/index.vue create mode 100644 src/views/user/profile/components/user-account.vue create mode 100644 src/views/user/profile/components/user-card.vue create mode 100644 src/views/user/profile/components/user-form.vue create mode 100644 src/views/user/profile/index.vue create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3454886 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.env b/.env new file mode 100644 index 0000000..0c24103 --- /dev/null +++ b/.env @@ -0,0 +1,6 @@ +# EleAdminPlus授权码, 自带的只能用于演示, 正式项目请更换为自己的授权码 +VITE_LICENSE=dk9mcwJyetRWQlxWRiojIiwiIzVHbQ5Wa6ICdjVmaiV3culWYt9GZiwSMl5yc1xGciojIj5ibp1GZhVGb6ICZpJCLi02brJUbhVlY58kIvl2cyVmdiwiIgISMuEjI6IibQf0NW== +# 项目名 +VITE_APP_NAME=Ele Admin Plus +# 接口地址 +VITE_API_URL=https://v2.eleadmin.com/api diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..eabc1a3 --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +# 开发环境接口地址 +VITE_API_URL=https://v2.eleadmin.com/api +#VITE_API_URL=http://localhost:8081/api diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e25fb9d --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +# 生产环境接口地址 +VITE_API_URL=https://v2.eleadmin.com/api diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..46b1426 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +public +src/assets +dist +node_modules diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..f14748d --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,76 @@ +{ + "root": true, + "env": { + "browser": true, + "node": true, + "es6": true + }, + "parser": "vue-eslint-parser", + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:vue/vue3-recommended", + "plugin:prettier/recommended" + ], + "parserOptions": { + "parser": "@typescript-eslint/parser", + "ecmaVersion": "latest", + "sourceType": "module", + "jsxPragma": "React", + "ecmaFeatures": { + "jsx": true + } + }, + "rules": { + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/ban-ts-ignore": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_" + } + ], + "vue/attributes-order": "off", + "vue/attribute-hyphenation": "off", + "vue/v-on-event-hyphenation": "off", + "vue/custom-event-name-casing": "off", + "vue/multi-word-component-names": "off", + "vue/no-setup-props-destructure": "off", + "vue/script-setup-uses-vars": "error", + "vue/one-component-per-file": "off", + "vue/max-attributes-per-line": "off", + "vue/html-closing-bracket-newline": "off", + "vue/multiline-html-element-content-newline": "off", + "vue/singleline-html-element-content-newline": "off", + "vue/require-default-prop": "off", + "vue/html-self-closing": [ + "error", + { + "html": { + "void": "always", + "normal": "never", + "component": "always" + }, + "svg": "always", + "math": "always" + } + ], + "no-use-before-define": "off", + "space-before-function-paren": "off", + "no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_" + } + ] + } +} diff --git a/.gitignore b/.gitignore index a0dddc6..acea6cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store node_modules /dist +/dist-ssr # local env files .env.local @@ -10,6 +11,9 @@ node_modules npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* +.pnpm-debug.log +.eslintcache # Editor directories and files .idea diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..f7e39e6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +/dist/* +.local +.output.js +/node_modules/** + +**/*.svg +**/*.sh + +/public/* diff --git a/README.md b/README.md new file mode 100644 index 0000000..a797a27 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Vue 3 + Typescript + Vite + +This template should help get you started developing with Vue 3 and Typescript in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur). Make sure to enable `vetur.experimental.templateInterpolationService` in settings! + +### If Using ` + Ele Admin Plus + + + +
+
+ + + + +
+
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..589bfec --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5323 @@ +{ + "name": "ele-admin-plus-ts", + "version": "1.1.8", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ele-admin-plus-ts", + "version": "1.1.8", + "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", + "@ant-design/colors": "^7.0.2", + "@bytemd/plugin-gfm": "^1.21.0", + "@bytemd/plugin-highlight": "^1.21.0", + "@element-plus/icons-vue": "^2.3.1", + "axios": "^1.6.7", + "bytemd": "^1.21.0", + "countup.js": "^2.8.0", + "cropperjs": "^1.6.1", + "dayjs": "^1.11.10", + "echarts": "^5.5.0", + "echarts-wordcloud": "^2.1.0", + "ele-admin-plus": "^1.1.8", + "element-plus": "^2.5.6", + "github-markdown-css": "^5.5.1", + "highlight.js": "^11.9.0", + "jsbarcode": "^3.11.6", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "sortablejs": "^1.15.2", + "tinymce": "^5.10.9", + "vue": "^3.4.19", + "vue-echarts": "^6.6.9", + "vue-i18n": "^9.9.1", + "vue-router": "^4.3.0", + "vuedraggable": "^4.1.0", + "xgplayer": "^3.0.13", + "xgplayer-hls": "^3.0.13", + "xgplayer-music": "^3.0.13", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/node": "^20.11.20", + "@types/nprogress": "^0.2.3", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/compiler-sfc": "^3.4.19", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-vue": "^9.22.0", + "postcss": "^8.4.35", + "prettier": "^3.2.5", + "rimraf": "^5.0.5", + "sass": "^1.71.1", + "typescript": "^5.3.3", + "unplugin-vue-components": "^0.26.0", + "vite": "^5.1.4", + "vite-plugin-compression": "^0.5.1", + "vue-eslint-parser": "^9.4.2", + "vue-tsc": "^1.8.27" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@amap/amap-jsapi-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz", + "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" + }, + "node_modules/@ant-design/colors": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.2.tgz", + "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==", + "dependencies": { + "@ctrl/tinycolor": "^3.6.1" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.7", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz", + "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", + "dev": true + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bytemd/plugin-gfm": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/@bytemd/plugin-gfm/-/plugin-gfm-1.21.0.tgz", + "integrity": "sha512-ZlrLa+Nl80gUDeC1hTnyRDfgJU3DGQVjQvX9rIIitUCler+KsAiagEnng6S/W2SZNpv+f8eWpVNL8KA8X3d7Tg==", + "dependencies": { + "remark-gfm": "^3.0.1" + }, + "peerDependencies": { + "bytemd": "^1.5.0" + } + }, + "node_modules/@bytemd/plugin-highlight": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/@bytemd/plugin-highlight/-/plugin-highlight-1.21.0.tgz", + "integrity": "sha512-JM9rwzj9pFBXVwxmD9mgGIQPO4cTFVHvDhffS93IMK+tqvo0Vw76zDIqJWT3f421j8iNxffGsVQQs6389u3Z9A==", + "dependencies": { + "highlight.js": "^11.7.0" + }, + "peerDependencies": { + "bytemd": "^1.5.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@intlify/core-base": { + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.9.1.tgz", + "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==", + "dependencies": { + "@intlify/message-compiler": "9.9.1", + "@intlify/shared": "9.9.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.9.1.tgz", + "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==", + "dependencies": { + "@intlify/shared": "9.9.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/@intlify/shared": { + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.9.1.tgz", + "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/codemirror": { + "version": "5.60.15", + "resolved": "https://registry.npmmirror.com/@types/codemirror/-/codemirror-5.60.15.tgz", + "integrity": "sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + }, + "node_modules/@types/node": { + "version": "20.11.20", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmmirror.com/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.0.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", + "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.19.tgz", + "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.19", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", + "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", + "dependencies": { + "@vue/compiler-core": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", + "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.19", + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.6", + "postcss": "^8.4.33", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", + "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.19.tgz", + "integrity": "sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==", + "dependencies": { + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.19.tgz", + "integrity": "sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==", + "dependencies": { + "@vue/reactivity": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz", + "integrity": "sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==", + "dependencies": { + "@vue/runtime-core": "3.4.19", + "@vue/shared": "3.4.19", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.19.tgz", + "integrity": "sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==", + "dependencies": { + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19" + }, + "peerDependencies": { + "vue": "3.4.19" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.19.tgz", + "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/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/bytemd": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/bytemd/-/bytemd-1.21.0.tgz", + "integrity": "sha512-6nc658omwzcLdc/lT24w8G2x5pptZXiMyrQPbFuHwhYbmrLnsmKLm+9klsOx2/Lg2cYHYb2WzVh7zKZ9MZCVdg==", + "dependencies": { + "@popperjs/core": "^2.11.7", + "@types/codemirror": "^5.60.7", + "@types/hast": "^2.3.4", + "@types/lodash-es": "^4.17.7", + "@types/mdast": "^3.0.11", + "codemirror-ssr": "^0.65.0", + "hast-util-sanitize": "^4.1.0", + "lodash-es": "^4.17.21", + "rehype-raw": "^6.1.1", + "rehype-sanitize": "^5.0.1", + "rehype-stringify": "^9.0.3", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "select-files": "^1.0.1", + "tippy.js": "^6.3.7", + "unified": "^10.1.2", + "unist-util-visit": "^4.1.2", + "vfile": "^5.3.7", + "word-count": "^0.2.2" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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/codemirror-ssr": { + "version": "0.65.0", + "resolved": "https://registry.npmmirror.com/codemirror-ssr/-/codemirror-ssr-0.65.0.tgz", + "integrity": "sha512-ofTAfPkQV56SYFfymNMYJ1ELo3+Jnkw3mOLgnIiQjhonwNmNzX1OFvnihAnYRXL0PWl2kT7s0gKrLc2ExshK4g==", + "peerDependencies": { + "@types/codemirror": "^5.0.0" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-typed-array": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/concat-typed-array/-/concat-typed-array-1.0.2.tgz", + "integrity": "sha512-aC878bxeWSlrY6h60cCDwBUXpKwovZrB7+C4+VHNO1CIXW2gBLxbQ757jWtOXUscLGgYI8R84N6uy9fTJPe+0g==", + "deprecated": "WARNING: This package has been renamed to typed-array-concat.", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "3.36.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "hasInstallScript": true, + "peer": true + }, + "node_modules/countup.js": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/countup.js/-/countup.js-2.8.0.tgz", + "integrity": "sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cropperjs": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.6.1.tgz", + "integrity": "sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/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/crypto-es": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/crypto-es/-/crypto-es-1.2.7.tgz", + "integrity": "sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/danmu.js": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.13.tgz", + "integrity": "sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==", + "dependencies": { + "event-emitter": "^0.3.5" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/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/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/downloadjs": { + "version": "1.4.7", + "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz", + "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.5.0" + } + }, + "node_modules/echarts-wordcloud": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz", + "integrity": "sha512-Kt1JmbcROgb+3IMI48KZECK2AP5lG6bSsOEs+AsuwaWJxQom31RTNd6NFYI01E/YaI1PFZeueaupjlmzSQasjQ==", + "peerDependencies": { + "echarts": "^5.0.1" + } + }, + "node_modules/ele-admin-plus": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/ele-admin-plus/-/ele-admin-plus-1.1.8.tgz", + "integrity": "sha512-98DoLG9tMOZo7rTtaImG77FlfSc+IWSxWspNmyLONu+f68b1hu3xkWOHMeu9YyRFz5azvxCSVC/9wrG0Jg0gLQ==", + "peerDependencies": { + "element-plus": ">=2.3.0", + "vue": ">=3.1.0" + } + }, + "node_modules/element-plus": { + "version": "2.5.6", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.5.6.tgz", + "integrity": "sha512-zctKTiyIDmcnMp3K5WG1hglgraW9EbiCLiIDVtaMCS5mPMl2fRKdS0vOFGnECIq9taFoxnyoDwxHD81nv0B4RA==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es5-ext": { + "version": "0.10.63", + "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.63.tgz", + "integrity": "sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.22.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.22.0.tgz", + "integrity": "sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.2", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esniff/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/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/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/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/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/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": "*" + } + }, + "node_modules/flat-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/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.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "node_modules/github-markdown-css": { + "version": "5.5.1", + "resolved": "https://registry.npmmirror.com/github-markdown-css/-/github-markdown-css-5.5.1.tgz", + "integrity": "sha512-2osyhNgFt7DEHnGHbgIifWawAqlc68gjJiGwO1xNw/S48jivj8kVaocsVkyJqUi3fm7fdYIDi4C6yOtcqR/aEQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", + "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "dependencies": { + "@types/hast": "^2.0.0" + } + }, + "node_modules/hast-util-raw": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz", + "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "hast-util-from-parse5": "^7.0.0", + "hast-util-to-parse5": "^7.0.0", + "html-void-elements": "^2.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + } + }, + "node_modules/hast-util-sanitize": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz", + "integrity": "sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==", + "dependencies": { + "@types/hast": "^2.0.0" + } + }, + "node_modules/hast-util-to-html": { + "version": "8.0.4", + "resolved": "https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz", + "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-raw": "^7.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", + "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==" + }, + "node_modules/hastscript": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz", + "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/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": "2.0.5", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbarcode": { + "version": "3.11.6", + "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.6.tgz", + "integrity": "sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA==" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/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/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==" + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/mdast-util-gfm": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", + "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", + "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", + "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", + "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", + "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", + "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", + "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==" + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==" + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/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/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/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/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/property-information": { + "version": "6.4.1", + "resolved": "https://registry.npmmirror.com/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/rehype-raw": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-6.1.1.tgz", + "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-raw": "^7.2.0", + "unified": "^10.0.0" + } + }, + "node_modules/rehype-sanitize": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/rehype-sanitize/-/rehype-sanitize-5.0.1.tgz", + "integrity": "sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-sanitize": "^4.0.0", + "unified": "^10.0.0" + } + }, + "node_modules/rehype-stringify": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz", + "integrity": "sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + } + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + } + }, + "node_modules/resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/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": "5.0.5", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/rollup": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "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": ">=14.0.0" + } + }, + "node_modules/select-files": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/select-files/-/select-files-1.0.1.tgz", + "integrity": "sha512-8h4DSpjfFa0hyMP3z3ye4SxyhdaE5RgaXeScRpH7xl4YblnZSHwexmLdLNdSKwTO8H9ccDKj7Votz0io+18+BQ==" + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sortablejs": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/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/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz", + "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/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-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/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-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tinymce": { + "version": "5.10.9", + "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.9.tgz", + "integrity": "sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg==" + }, + "node_modules/tippy.js": { + "version": "6.3.7", + "resolved": "https://registry.npmmirror.com/tippy.js/-/tippy.js-6.3.7.tgz", + "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", + "dependencies": { + "@popperjs/core": "^2.9.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/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/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" + }, + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==" + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "dependencies": { + "@types/unist": "^2.0.0" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.7.1.tgz", + "integrity": "sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.26.0", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz", + "integrity": "sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.6", + "@rollup/pluginutils": "^5.0.4", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.3", + "minimatch": "^9.0.3", + "resolve": "^1.22.4", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.1.4.tgz", + "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vue": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.19.tgz", + "integrity": "sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==", + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-sfc": "3.4.19", + "@vue/runtime-dom": "3.4.19", + "@vue/server-renderer": "3.4.19", + "@vue/shared": "3.4.19" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-echarts": { + "version": "6.6.9", + "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.6.9.tgz", + "integrity": "sha512-mojIq3ZvsjabeVmDthhAUDV8Kgf2Rr/X4lV4da7gEFd1fP05gcSJ0j7wa7HQkW5LlFmF2gdCJ8p4Chas6NNIQQ==", + "hasInstallScript": true, + "dependencies": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.5", + "@vue/runtime-core": "^3.0.0", + "echarts": "^5.4.1", + "vue": "^2.6.12 || ^3.1.1" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "@vue/runtime-core": { + "optional": true + } + } + }, + "node_modules/vue-echarts/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.2", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", + "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-i18n": { + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.9.1.tgz", + "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==", + "dependencies": { + "@intlify/core-base": "9.9.1", + "@intlify/shared": "9.9.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.0.tgz", + "integrity": "sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz", + "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/vuedraggable/node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/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/webpack-virtual-modules": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/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/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-count": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/word-count/-/word-count-0.2.2.tgz", + "integrity": "sha512-tPRTbQ+nTCPY3F0z1f/y0PX22ScE6l/4/8j9KqA3h77JhlZ/w6cbVS8LIO5Pq/aV96SWBOoiE2IEgzxF0Cn+kA==" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/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/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xgplayer": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.13.tgz", + "integrity": "sha512-tHmwsB49J5mYuGd+JjaILoJB/m+M7F5BxwjBaAWJ/PIEtYuhN69rOkkdph2/pzAg4to1rhwMPVTklIoXYd6xKw==", + "dependencies": { + "danmu.js": ">=1.1.6", + "delegate": "^3.2.0", + "downloadjs": "1.4.7", + "eventemitter3": "^4.0.7", + "xgplayer-subtitles": "3.0.13" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xgplayer-hls": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer-hls/-/xgplayer-hls-3.0.13.tgz", + "integrity": "sha512-bOS6ocB8FWRYdKhg08AL4a/QZGNplDE1H2OZJxvuF/DF6muokxIajWC3kyqzxxbGOkUSIdr4wtDiA5rfMV5SJg==", + "dependencies": { + "eventemitter3": "^4.0.7", + "xgplayer-streaming-shared": "3.0.13", + "xgplayer-transmuxer": "3.0.13" + }, + "peerDependencies": { + "core-js": ">=3.12.1", + "xgplayer": ">=3.0.0" + } + }, + "node_modules/xgplayer-music": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer-music/-/xgplayer-music-3.0.13.tgz", + "integrity": "sha512-bWhPLuLO7Z0qfTxF4adSNUfZ9AAlMA0Rk641J1awxMSIQgDiLWmHBdSVFoe8i2EUHiVQZKWJ38eCs3lQE4W0qQ==", + "dependencies": { + "deepmerge": "^2.0.1", + "eventemitter3": "^4.0.7" + }, + "peerDependencies": { + "core-js": ">=3.12.1", + "xgplayer": "3.0.13" + } + }, + "node_modules/xgplayer-streaming-shared": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer-streaming-shared/-/xgplayer-streaming-shared-3.0.13.tgz", + "integrity": "sha512-ovNk439/+6uVpMBKDzKq00bXMrDX6s+YHVt/Nl1vpawlgM3IoHKxezBki2FETlXvMYXF4X42/KVtbM3qTd2ScA==", + "dependencies": { + "eventemitter3": "^4.0.7" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xgplayer-subtitles": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.13.tgz", + "integrity": "sha512-VlcPg6Ne66mwB6uIlE6gT28WG9u2vugMuho0mVMsB/uQ+XOin5xtH3Jpf2Ewx5CTf3SRfg4VmqUCuuMT7Z1qJg==", + "dependencies": { + "eventemitter3": "^4.0.7" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xgplayer-transmuxer": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/xgplayer-transmuxer/-/xgplayer-transmuxer-3.0.13.tgz", + "integrity": "sha512-xncc9HYIRK9glHpalQRXlfLoeJkoq7OimvhWZ+CXdJFWYNG2toHCI5ttSRs8R0nRm07X3sxkXzQUJcZy7y6qNA==", + "dependencies": { + "@babel/runtime": "^7.15.3", + "concat-typed-array": "^1.0.2", + "crypto-es": "^1.2.4" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zrender": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..1d84d10 --- /dev/null +++ b/package.json @@ -0,0 +1,69 @@ +{ + "name": "ele-admin-plus-ts", + "version": "1.1.8", + "type": "module", + "private": true, + "scripts": { + "dev": "vite --host", + "serve": "vite build && vite preview --host", + "build": "vite build", + "lint:eslint": "eslint --cache --max-warnings 0 \"src/**/*.{vue,ts}\" --fix", + "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite/", + "clean:lib": "rimraf node_modules" + }, + "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", + "@ant-design/colors": "^7.0.2", + "@bytemd/plugin-gfm": "^1.21.0", + "@bytemd/plugin-highlight": "^1.21.0", + "@element-plus/icons-vue": "^2.3.1", + "axios": "^1.6.7", + "bytemd": "^1.21.0", + "countup.js": "^2.8.0", + "cropperjs": "^1.6.1", + "dayjs": "^1.11.10", + "echarts": "^5.5.0", + "echarts-wordcloud": "^2.1.0", + "ele-admin-plus": "^1.1.8", + "element-plus": "^2.5.6", + "github-markdown-css": "^5.5.1", + "highlight.js": "^11.9.0", + "jsbarcode": "^3.11.6", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "sortablejs": "^1.15.2", + "tinymce": "^5.10.9", + "vue": "^3.4.19", + "vue-echarts": "^6.6.9", + "vue-i18n": "^9.9.1", + "vue-router": "^4.3.0", + "vuedraggable": "^4.1.0", + "xgplayer": "^3.0.13", + "xgplayer-hls": "^3.0.13", + "xgplayer-music": "^3.0.13", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/node": "^20.11.20", + "@types/nprogress": "^0.2.3", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/compiler-sfc": "^3.4.19", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-vue": "^9.22.0", + "postcss": "^8.4.35", + "prettier": "^3.2.5", + "rimraf": "^5.0.5", + "sass": "^1.71.1", + "typescript": "^5.3.3", + "unplugin-vue-components": "^0.26.0", + "vite": "^5.1.4", + "vite-plugin-compression": "^0.5.1", + "vue-eslint-parser": "^9.4.2", + "vue-tsc": "^1.8.27" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..5bacb78 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,3 @@ +export default { + plugins: {} +}; diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..ff47d97 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,19 @@ +export default { + printWidth: 80, + tabWidth: 2, + useTabs: false, + semi: true, + singleQuote: true, + quoteProps: 'as-needed', + jsxSingleQuote: false, + trailingComma: 'none', + bracketSpacing: true, + bracketSameLine: false, + arrowParens: 'always', + requirePragma: false, + insertPragma: false, + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + vueIndentScriptAndStyle: true, + endOfLine: 'lf' +}; diff --git a/public/ele-file-list/ic_file_android.png b/public/ele-file-list/ic_file_android.png new file mode 100644 index 0000000000000000000000000000000000000000..08de04569023b751f59696446cbd8635cb4b55a6 GIT binary patch literal 503 zcmV z+<0TeB4flNW5gn3#3EzFB4flNW5go=|No%ecx=Zn{r>#(`|V}LC1k`ShSF2^{PN!O z(68Z*lGbE^&q`>M&h5Fv=&79AbNl}K@A>HK_u}XF+}iQW$?LPp>axG*q`Kvu za>_U2^w!kx!p7;Yw&Rzm-h-jsdU(t~cgsGKSFH;G000PdQchCTnk+6p#&$4xm4#`~O{@_pfjF9=<@!Oja65Cpi12uQpT{SXiM4^Vkw1ywpQ!P*NO zypjWJ9KA65)}*Vyt|HQ35$^{0OkfL_qFe5|kH5pPVR=0{1to*jtWIV)s)hyKqQO6N t4|qp75xPkS=R!C)sQW(f8_%W&{QzcsT6a4qQkeh%002ovPDHLkV1i0n>!|<$ literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_android_sm.png b/public/ele-file-list/ic_file_android_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..4442119155bc3722b9b48f70c4741d2ff9fedab6 GIT binary patch literal 345 zcmV-f0jBFcw@vOW5gn$+<0TeBLDyYpxk(N%suD!+~f7w`Th6J?76n%m$2fGf6qy3$1KI^ zt-t4_bIUnw$1i2YCE@hd)9%2?>#~~KaP<4{*6+o_=&8BooUGuAsNRE()Lw_uRc**H zk(2ak00006bW%=J0Ox{9;eip8rMdtB0G3HaK~yNurO(L{gCGomVXQV0gtC;Pc3Y|F8#GYY{h+O-YYF)R*})G7#Z>OV00000NkvXXu0mjfN}#1U literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_bt.png b/public/ele-file-list/ic_file_bt.png new file mode 100644 index 0000000000000000000000000000000000000000..909255c3a9512e4d4bdfe5908f42ebbc9f5132c9 GIT binary patch literal 477 zcmV<30V4j1P)uIu{thu+9q(zHspNtgft010$bPE!DT_V5Xrn30dWX8>RT009L_L_t(Y z$L-hMZh}A%hG8q#c0NTGT=^~HUu}E;H`rMX*hH&46JtE!JsOgELITMqJK#pIL%P|^ z;Jh(;G`S!HFL*(c7i6h~ER~R@60%f6mP*J{3O_q3g!@S+WiZ^Izmuf(u!r}8^9+YR zqVk6yO^Q=1dj)ojY?nke{#N}DLm*yoyK)6YM9tP1Q}SrIgs#HqI8|Rja~x;Dlw4kr zroc=E3!qX!yLH0oneEP)M@EU%|SlUjulzP4Ev* zM0hk2;j;;(4uFY>rqXV$?tn@RmSP(d0`}klPZ78qfWdQ~=>-9@bD63Du8k=IEZ$ps s_pqdtvIkHt1Jzm#UYj1 zWoE@GwbGVj#3KLy|7gx6V#FX`!W&@29$~{Epxk(9#wTsaF!cNHR=*G3^3P?(Bv-!? zS-=zS_~xSBd!pQWaLF{~_1mW8eYWJ7nb~fZ*lJY24Z!E6t>B9L{`u?o<6XiSgo63vEh)Z-i4&yevH&xgwauR$~b7xBxcGZ*YCxg+;NW7 zUyamWg3wO={`}$e*39g;!sw`V&^Tz(A}ieH!TznV3R?w5u272;oEufHFVoY-=r5Mu)qDhr2sbIbgZoI09*S8Le zCJ?!P?Y`e1zbL3B$)Z1n^$=r>9_=s(&SoG`0e4e{V7sCome3#kYHcR_VwlmS%6x6|qL)*AsdqI^j3U8ffS z8D@+!))@4DT;q1!VOc@nUi090?|fPUPaq)-8@BOEPgc zN+QwSIyDkUrniq_-{YKn{V;zYRqUh%supLukOX}tzo#{#3lR>Q+~Y$C#~yFiuDSillw#3TRz|N8y+`~Lc*-F}SJTzbtzZpkri*d=AjB3i)}>G$Bp>aB&*Qgq8Z zYR4>9zYbBp3H1B#@%roT`RCm7&9vi{ui=ia>xHP^gp<~0iPBbR#wupUCQ7;h`26+a z^w#0@)Yb3A(eA#@?6|+@q`2gprrm*{+jyPYbeq|6oaAhk*JpyzPJ`G>eXf1d0000F zbW%=J0B7QCDdsZg=izN=Gb|@v>^wXG007uYL_t(2&xO+G%EB-hhT&-S8?Kr+tGjl% z_ul*b&q<_W(^~NU6}SlGfgn`KJF1lPUqexft;*qh@h5_EJqhOUH0@?kEP)fEjA+HBXn@B8=Z`Ss}e^rz?7q2<((;mv~G#(vzz zbJ)My_3qa6?a=b-z3t(;?BKZT-j(9dlkKr};I8BN^1kiind8x!)=w5C&ii#V&Hmsfbz*YpvFv z|Np-=8_UEI(j3zdj>G$bYxc>)W*CuJrUAm-jk+;GB9k6zNWmTnQV^vUM5zZ+>Oqux z5TzbOsS00Pd9MhM6DF0Qd+hcE)eLZe{}0oROOC#;2>rcd=KzImZ);Z`Ml+k_8NkEy z`YV%yt`}mtvyaL3VU5?*MIwZ0xx&(AnF38vZ|O3-;!haoQ!ER;^Y1F&9s1@?z=bib zm`8Atb%7 literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_code_sm.png b/public/ele-file-list/ic_file_code_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..c39d65f87cfb6101fe242603756922d7c1e93f95 GIT binary patch literal 252 zcmVKUH23WQ000JbQchC<=YmP$ff19Xx&QzGW=TXrR4C8Q&f5xrAPj)vm9?39 z%-;W5D^f})cop>D2!4zWKnz$kL#q16B@5QDjBVJGFxazTtB=4-l%9jsWYCb7CAgKW zI$vdJbuWk%6yB*ou{*(c^sjpQ4GhSeE)ZNM0dN4$o(#8w+{ujq0000 z+<0TeB4flNW5gn3#3EzFB4flNW5gn3#3KLy|DfD>{r>!h(o}WJJ7~rzk=A5z$uw-p zFJ;9g`Th3v`|#rQ*3s_0#_F%MN&P8&{Hs$u(*YL;8?6#!cedzYy!RV*J=cb(7bBohjiql!5!=14J000SeQchC< zd-e(OnV695JRVYx0003#NklY?C^p zGu{8L7wkpyGm~!u%VCBQ*W__bf7Zk3wq_)##T_{n!8?*f&`KCu2}37w=p+tV;?PPI zc20uOUpR@u#DBk$gw_CYnD}Aj4x-Rcq_9w`j;yPd+DPF_DRuhEC(f@@xPRu=+e_SX zTJEKgT3(*^9Qu^g8R+Vf*XKOvml=TC?9@@mW8F)kySA#VcnnDlU1v>?-Ux(oqfEU7 zD5Ov0ypmw3mkiSghRIQx%3;{5?>d8U#~t-r&pdAs3^LwqO=}*r1c62z0tya17XbXQ zccSz-_+l70Zli)z6C*Ej7W`i9N(i+%(VcCt$46QQFcw@vOW5gn$+<0TeBLDyYpxk)){q<diiS8*;$FmIeYi&mIzl znynMSbsRVf@Z z;QwC7`(DTUUdQ`h$NOH#`(DTUUdQ|Y|No%i|M&d=@cRFq-u{Hu{nYUOyXXC`D^8U^4{HVeP{eIH? zZq56HQzTIU000PdQchCM5t#BgDnk24oX~%?ZB|iCa#( z;QwC7`(DTUUdQ`h$NOH#`(DTU|NsA>;Q#pj|K|4o?)m?~>HWUw{c_IyXUhAU-v5l( z{B+O!>-he)<^2inVSNAq00(qZPE!Da=Sk_}-=^c{_W%F@b4f%&R4C82&Wj3wAPfc2 zmDQ|#^!)!{?M4Mn2L;g;6z*X%B2%$QL1#*qX)oavAS#Ry72+kVF literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_flash.png b/public/ele-file-list/ic_file_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..dc60dd7db4ae35f1f0f5ba67313a2743df94ef03 GIT binary patch literal 434 zcmV;j0ZsmiP)YX4|x|HH%oz`*~ktpA># z|7~qh$BQ-q000PdQchC)*X=c&4iB|Nr9?H(^Z8-RZ7tZL+uz2wNp53WEiYdhw@XSFsPk7wCHh| z!n)KD26>=V1jC($W!o7LW?~3~$3Xa$fv^%`u*(DC$%zbpk4jpX5(>>;*b)?)(z!zo z!Ymbh+aP!?#JdM!aL?{eAlx~YClmtZ?Ls&#j+z+;>z{uCGyH!TgD(ESH3--2czy6~ c6>Tkg0k6bYkx42j2mk;807*qoM6N<$f?S)=oB#j- literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_flash_sm.png b/public/ele-file-list/ic_file_flash_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c4e59eaf54860430ff30c6d202f624aa6a28f1 GIT binary patch literal 297 zcmV+^0oMMBP)4X}t;&Upph6G-HP vp#o|p5X;^%xV35fR>#4S{XBqo>)ng=8yODH`X48~00000NkvXXu0mjfN2`!C literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_folder.png b/public/ele-file-list/ic_file_folder.png new file mode 100644 index 0000000000000000000000000000000000000000..c60a93517cc42ce0166ef8e48b5bf45c9946a5eb GIT binary patch literal 265 zcmV+k0rvihP)402pj)VM1`BIPa5gI|3o*$EZeVBY0)m>f!tZyI6e3n~ckuIm@TNR?Al+S2 zFveKSU5~5KT-B;o_D4^3QCqd_&;H8Hk~QG&f5LvXSEJm(CK7Jwq{cacU1VTrmlJ4- zTG)AAq%I|JlLe@cIqRVgYT^|*bW^2gV5ssA?7RaFAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!6{>*82r$<^2k~>@V!yK0*jhRqf<=4TeU|-p@!FV=U%gsL5Z-AD?%_ P00000NkvXXu0mjf4wq=P literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_folder_sm.png b/public/ele-file-list/ic_file_folder_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..5475f5b2505d47bd4d4e8f1efd043344a88d60e8 GIT binary patch literal 168 zcmV;Z09XHsP)-VpN&nVa?7&I?)>-VpN&nVa|JGUTz)803&ldmy00?waPE!Er>Ezu`L`_-s=OzFE z05M5KK~xyiW55TJW&(j4jOPjBO@Z-df&q-zfds@+c+Duhjv>mEK=Dx^5>J$YXaE5B WON4(&7v^OE0000 z;QwC7`(DTUUdQ`h$NOH#`(DTUUdQ|Y|No%i|Ay84k=gum&irJ```GgSuH*gl`~T_q z{>AJ5r{Mj0(fn`C`)SMj`2GLx`Tv~W{(jT^((wMt?Eb*%{j=r$gw_3v*Zkr1{@e5Z zxaR$q+x&CS{NnZgx##`={lEzT000PdQchC9)s)^8>QvhK+F zAb3a0AgFR8R5=lPs0W`#WW9FZi#a3*i*lpv4nlh_)RM z(~NyiJ{}ej9ih3*Uxnvc^Nin|7kt5|h4Ybaeu2x8aM_~X?}M?=*`h_i X5pP^%*b;E|00000NkvXXu0mjfg;5ix literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_fonts_sm.png b/public/ele-file-list/ic_file_fonts_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..bae84b9e205afb68dfd0bf10e746b40bf38cbcb9 GIT binary patch literal 360 zcmV-u0hj)XP)SY8a?bpl-v7Jk z{esl|e$)JU(EM-B`(?`e_x%6l_WsxL{>|?GvE==!;r)@>{EOH8+4BCv>ixFn{j}x% zmfHMu&-`o5`yMj&ZU6uP2Xs$AsXOB@qvT!frIgZgYkib@qvT!frIgZgYp0W|F5wBhl%ooh4KCU|MTg)Z^&icv9`IngU(b4*=^MjfI000SeQchCiV$n{|P4~kU2@X>$@iXzY>#QK;+K2Te5$TSTJw9Z4L~P zqen(4=#dNstt3My>Ci|zbdnB@q(dvI@Y_iuR7WRikgM&SjG7mG6!KcBj11#eCa@&E z_9WOA;L_A+m`Nkj@?w0^Az@r<)z135zv>m|IM@IrCvHb|xeU)3*aATJcL5`Sh{G@* z08Z;i7R#M5tN>EZR_Oo)55i`<7d!=+g0KK@@(_%{pIZpdemC@p8I#AVV*seh(Cw-> z^!GRki8(pKcXG~Q$g2NmRU*!+iCpBWI`o7Xm|b)|R;J&mo2f@q2T0PfEX+lP?m0X! zz(w9ET`tSVL@V(#(fjJXSMzgx0$%XxU_^8u7Jd=or$+Yo0iWow*XS2$*JYzP)-z}T O0000@P)qK{r&%cf$@2J z@O^*rdwuYVjPinn@~NuzcX{x0b?~yY|M&R*^z{Dk@BPEX_@t%vo}l!Ji}b#~|E;d} zmzneb|Np6~{^jNT-rxJ$+WXVh`peAul$P^?g!7G#@|BqX>gxUI=>3L>`kbBly1VzX zwD+*F_L-aXj*#+&hw|`Tro;dM01b3fPE!E2N}Kt+wqMVhl@|)6D{>eB007!aL_t(2 z&vnwta>6hSfZ?N4WmXD4bwkV39M-ED>>rppipwSk98m=+G^)il<)KCkk zisN*jM#+i<=uFdepCXsk#dOWAX9R< zi53)Kpy#n14w(7VGB5x9oZ1gO%<9qe3ZVr+dc874AfWj}(h4N77!2+~zXOIf+}20- c|MKpg0ZnNkEh&ayF#rGn07*qoM6N<$f}_<1ApigX literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_ipa.png b/public/ele-file-list/ic_file_ipa.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bc08cfa854a64e219135a1128debed2bd6c GIT binary patch literal 709 zcmV;$0y_PPP)K{-WdlUB~-j#{68u`(wuZ0RR78$o!<>{$9rVt>gc0)c%v) z{$0fQS;qQa$NT^P|6a)bW77Xz#`{^u{8z>Mpx^&h#QST^{G#Fi{Qm!7$oqHD{E657 zrs)50&ik6(|9jE=W6AsS`~TeY{_FVvpj@bN#)%?Hd{;=fz_Wb{0 z&Hv~3{>knBv*rDA(fyO!{C?B?pyB_4)BH}s`ySt++5i9m6?9TgQvgQ|h5h&b`NTp< zBmu;QHVO8JN;Xe;S8V_Q0isDnK~zY`?bgY1n?MkNVcWrqHrv@|Po1 zVQ{*Tz{hn@Ud!N$NjY3HDTmATZ6|FZlXA$U463MwOv<1aEmyx=-`?L?K}fx>m(LR` zr~t5Q@s&Yg?&4Yi5#bUD;Kk_$5Q3)4-_RO@s(qb%U=JH#>l0az3TdTv6@wK-V~{-m zunT`0l0(9R!hf1v@7xday{$Fa)*l!5Ux~D%0CLc}%k3%E|t6*()g#Y=`Z><@s3y$e_Y> zRrs6zHi=FfzkCc(eCA*fhjB`V(sos7aaaKnLbsCqT;;vPcld8OwS`l5wU)xC$r;Y> rMmBJCH#@`mx3O}??^EN4d5eAlp_l4GXVEs!00000NkvXXu0mjfeUN@0 literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_ipa_sm.png b/public/ele-file-list/ic_file_ipa_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2e591103b50ae285ad56558defd4367274b48a GIT binary patch literal 414 zcmV;P0b%}$P))~uu;l(;$NT^P|7FJ(9{dmy*V#)jW{QvR#|J(BZk=gyO@BilZ{*2iEpx*tO-2H;o{C(2= zP{aG``2U;e|ES~tfZYGj?*78+{lV(}z3BaL&HQl9`%~*GcK`qY4RlgYQvhddDdyrb z=jY<#Gbj6_Y^DGJ0JBL%K~yNurP0?8gD?yQP|E5I*a?KNXZQI3&nqH*z=XG6DN=Ng z{9xI#oPEq@i4P}B$Bx)McyoOXn~(q`<K-9%$=PUqVd}AV;0)7NcpKwC} z+cZG~fODwiU;qmFY~<@vF91{?OvxD#;Dzqf9_hr;Xvh?>)rp`*3LvtdbVz`4sr$14 z3c&6`m8V(9jRjS&AbHaTwIDD=Mu6lGup<+uLpff&>|@WdzQ)WP(&*ZUVgLXD07*qo IM6N<$f?n_7%m4rY literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_misc.png b/public/ele-file-list/ic_file_misc.png new file mode 100644 index 0000000000000000000000000000000000000000..acf4dc2455606d48219eb147f12746a0cfc14581 GIT binary patch literal 407 zcmV;I0cie-P))!)|O z=lc8n{Qdsr>+s;`?abNZ=$P^BBHbVHSHsL~Bpdf{H>rxR`!sD+3Ja7-!2<;FP+!XC_3%9Wy#tBSDc!=XaOgdN~jv4ODBX%J&lw$0` z9hBR3pg=8Y!=Va?Hl!+~HiUX@n5r(dAy*-{VXVT~hDa4h*oHxJ(Pin*s!+j^7`6i= zr-@1&@xAZr3}^T{xN^E5g&QZ_DAf1C)^h!OMn}src5{7}Wn};W002ovPDHLkV1g@( B%CGz>%26R$R zQvm0JN#TJJlcl-<003r5L_t&-(_>&3O9O*c1|VQegMiEcAcqacnS{j2ovDD}WzX kXf&ym-0MMId4Cajxg#Z8m07*qoM6N<$f+Ck@BLDyZ literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_music.png b/public/ele-file-list/ic_file_music.png new file mode 100644 index 0000000000000000000000000000000000000000..0343055dad3c98917fea47f1312b435c48bc3e09 GIT binary patch literal 390 zcmV;10eSw3P)XOB@qvT!frIgZgYkib@qvT!frIh?|NpPB|A>n6`}_af-23tI{=B{T=H~pEn)LYi z{`B3{MFX_o1OWptM;Iw^^lVDgog3Y(E7*7`NYNeud()|rS*%A@*54K zDF6Tf2y{|TQviGP37MFX>@hBkApigX#7RU!R7l6|)yWQmPz;4(WU}Q>3<3hq@BffW z6VwC}Z@VM%@4uX+n+C6VXGgxYk<{9 literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_music_sm.png b/public/ele-file-list/ic_file_music_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..20c21176ae43cc27ea012607d79690edac45367b GIT binary patch literal 240 zcmVXOB@qvT!frIgZgYp0W|E{n9`uhLg-uuYO`HzwG_lAh_($o5|vi6~( z^{0J<`2YX_1$0tQQvibJN#Wlhn1%oV0AWc)K~yNuwaGaWfFKYB(GeINcJ=;;6{;iv zKbdyek4P&X+URNeym#Rls$i%BA#`EX2y!jJ+T;raXA?u4@l{pyR#xy- zRQFd`{o&#L+}!q7SO4+x{^;obFLu zoc)lH`-+P4czFM8Z1QYu|7B(PTU!Ry8zTS!010$bPE!DTnF;pskoD{v%cCR!00DVP zL_t(Y$L-h0ZbC5>MbU&*A6#CicSs(&0wZVJNBaZX=2CBDyV^p4^_vsQnRG ztHR$WXi>z3|bXpW`j^*611?A`~g$&2=hLwi|^)JNl&y z-4^2GZte=JVjp^t&#w`a0OEOxU4MGLni4g_TK^q*r6)iB=zoT{1FMfiozN6&*6}20|G`Csc}wd00000NkvXXu0mjf>lboq literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_pdf_sm.png b/public/ele-file-list/ic_file_pdf_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..a180b05c81333c57bd11fbe0b382e335bf58d351 GIT binary patch literal 306 zcmV-20nPr2P)cisHp#;q5qMQ|B8zLgoOWdbN_2=|KsETudh_j75@ML00wkYPE!DaN$BO@ z(FnRA0001iNkl5GD*y&lrpyF;L)m1Fs7Ww6vaHb^rhX07*qoM6N<$ Eg8Dv|&;S4c literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_picture.png b/public/ele-file-list/ic_file_picture.png new file mode 100644 index 0000000000000000000000000000000000000000..e62922eab3dfe1df75831c6ad8829ad3246c4c29 GIT binary patch literal 727 zcmV;|0x127P)*N3D-T%$H|FV?-d`bU$MgQE-|GA(4u8;q!i2sOM|Akfm zZ8iV*^#9}7|JKL<)58CjZvT#C|G=pKp?v?EbN}Aa|HQ49J#_v6000$qQchC;L~%PC=c-Ixy24P4vBjgePAD7r>6}?4)`iSaCueU+jGCw0g)&>t9wjWUVjC zp?KP_?0tdt1~Y)|)`r|QgSSdrLbtVlytfr}Tjy%i3QDOqZJ?A#a?=X3u+ve}21YBl zvu<=$xv_$ndU=zpnu131J!)JlXjNnPFT-FuL50HpsyQ|7WN-wM_2rs>K0|`q^WC?7CsK* zx(I*eE8rjgB&^%Qy3MDxO7v?sAM>ii>ZwHP_rWl6P(3-5=nbA`>ZamPV<`Xt002ov JPDHLkV1fy6c;)~A literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_picture_sm.png b/public/ele-file-list/ic_file_picture_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..076d2ad02b335cd6f1337ae3448451c942ce1811 GIT binary patch literal 283 zcmV+$0p$LPP)P)t-s00030 zcSHZ9fd6+x|93eoX)P_5btl|LEWU&b$A- zqyL0d|Lo=e;MD)ly#KVA|Eh_1#v1Yf000JbQchC<=z>Y%fs?~BYXATMc}YY;R4C8A z$w>}`FbqUdr_=3<17Ymx{wF0!AQIyRE52ke>JfRzRWI67JBM9ZLwMNGWHDjhg{>~Y zuN!UXf!Tx+L;m0C1l*>4K-3V{MF3II0u!eWK&;^dU=ZY_f^XmV(fB&9O|N8d-;>!QA za{u@7|L@`dyoUd-ZU5D?|Djd?_3i)N!T+aU|NQ#@(5e5;rT@sA|FwGmsbl|}O94JY za{vGU3UpFVQviGPdc+nqhX z|3liA6_gEZf(YXNyIy<^l#-PxP9k{QdNnPDfU+4G1;H5!LC{DZw2}p#WI-oc&`CP< zk_sy?H$+%xQwd>mIuocZ@QY9=94m8qX~Ut$=Z@!KnB!{=0V?6DPVSOA9Of`~mv$rr z!eF50Kv0M!3wBJ{qB(J3V_;8!g=-KJO@jFWB=DdtI8gOh00Qg|w))nBi}9)p{1nuP zngy$}6hE?%7x-^5BD$@Idm`L<7$=mOQ5swH0NJT)?0x7GIRF3v07*qoM6N<$f}AbG AVgLXD literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_ppt_sm.png b/public/ele-file-list/ic_file_ppt_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..6f14287d12d6997d50d24cc1959be9b6f5ceb88b GIT binary patch literal 263 zcmV+i0r>ujP)-^KsDh5wsL|LfcT*SG(~l>hbY|H_~LxPJeu zX8-Z!|K-sC>VUjL$4d(P?d00006bW%=J0D|Y?N=ZYWdCmX;0BA`>K~yNuwaqye zfFKM-(KscFh>FwxcPa`L@@+UCUyeCX;cn;=R%`b#;}6b(Wdn%)2qk0H1vN_55S@(x43+epj%xq_ N002ovPDHLkV1hhLd3XQ- literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_ps.png b/public/ele-file-list/ic_file_ps.png new file mode 100644 index 0000000000000000000000000000000000000000..548fee40f54aaf963b2bd4a586f368c313d5eb9c GIT binary patch literal 546 zcmV+-0^R+IP)p-{_^+z-s<{XmgVa5 z{9&2qQjg>9^!(W7`L@vWgRkpxr07;-`2E}H`NG)sinHu&pyybW}EG;2ROUTj^ zvb2OOh48&XlC30Z4SaOCRrqN-+Xf;y!Efp)feiXO55Qz3gZX5%0vsDiCtxas<#bFm z-bbG6JBbtqKJwHvJzLPr-(0GucT+?2TE;Zg_7 z_Pibf!`+f}hR}1)#3c$~`#Caz16^4BSUL*2by^GQs&Nwg0A^ySTPPqELC0O>BM?Yn z2zaR;eIS!Sih$`n-nf8wxd}ZC|GILos)TOBb9{Ar!(CrNt>WO}Zn*|F@E))&bnOE6 kgs`Vk@q94vwcF9?8^O6|>x4-xi~s-t07*qoM6N<$f`mO7wEzGB literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_ps_sm.png b/public/ele-file-list/ic_file_ps_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..3358eb781c6c855282dcd3bb022981e6381398a2 GIT binary patch literal 360 zcmV-u0hj)XP)J(rpED?yzYRl z>wK%~Uzp`mkK_FP|MmI)b*}u{=lRm&_`B5fx6t#Exb2Cv>~EszX`kmviQ)J9{^RZX zvd#0IzwcC&>U5^*ZlUM_jw#>(000PdQchCE}r?VsPUC005LpL_t(2&$Z0i z4uUWMMA3?(6$q*9n;Itv1BDft_!8aK3;bg>z`zi?a zJ7k>mt_VQVq*+6U0Hna2aHu|?JOJZk$rzOmi2Nq#kW!6obf99a&M{SIUU*kax)<~s zfT9K3iw(@cgVv(#Y)~5Sl$6ie0=GXv1i$S9@!sDLguDRLTN5XnSZZwm0000om;X(d|4o|M~m>{Qdu+&;Os!|9`pvf4KionExAw z?AibT00(qZPE!DTnfCArkl&L)od5s;i%CR5R7l6|*SijYFbIWVt<@^6xA%WpJ%b%= z6M;Aw!#}Zn0}BbwS?{{=Slg7jz-X#S&w>>hSP)VLA$1T^2O)J3QU@WWaLG~#w<${* z+}F8~L7KrILyF_QNE`@PNDib_xJ05IPmyPX1`WOf)0lLSB7OYI88pa-Ug-P<2O%7Q fuJ?go=X#(6yhlm_r$b#y00000NkvXXu0mjf#khF= literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_text_sm.png b/public/ele-file-list/ic_file_text_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..f55b60295d5bb4d45b97624cb6677ffdf61274e3 GIT binary patch literal 191 zcmV;w06_nVP)QPn|J$%GlK=n!1$0tQQvl_HNr8HQKd%4) z07ywhK~xyiV_+5y1%nU_7%kP(gt(0{~}9Py32tn%w{Z002ovPDHLkV1m9JMDG9q literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_video.png b/public/ele-file-list/ic_file_video.png new file mode 100644 index 0000000000000000000000000000000000000000..2487c7c50c6bed311cf1370f885f6c8d1bc55f49 GIT binary patch literal 361 zcmV-v0ha!WP)XOB@qvT!udx4tgYkib@qvT!frIgZgYkib@qvT!|NsB5u>Yo~_4D)o^78(yt^V%r z{ovvJ!^HW$zWA@P_JxP?_4WSd=KR^(`_$C>%*^?lo%x%b`H7429GaJVuApDknX%pl|$z!rtW1%qQZ6jINu zUGmds$@>5_j;zhkUVsD>{7+aa-P*#f5^e<9_aVL_-wApF543eIFMS2Z00000NkvXX Hu0mjfLA$aQ literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_video_sm.png b/public/ele-file-list/ic_file_video_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..fe453377436aa01b47a656798641bc608aaf5206 GIT binary patch literal 246 zcmVXOB@qvT!frIgZgYp0W|E{n9iHq{}_5SVc{kXdKs;l;-ruF6K{M_98%F6kUkoA?9 z^J1EnD*ylh1$0tQQvibJN#Wlhn1%oV0B1==K~yNuz0JuEfG`L}QM3g+I{p903ehGV z*ccPTICsWSizxk>pQ}<9Dz9>hb*N@cZQM``zjK%ij0I+4ix`^JAd$ zrN!`_zwd;w>v5#$TbAX`-}jZe?vuIhhqCOR?{~id000McQchCp z0T4+ctxLASqrrm*Ya zJ-~XiD#YfJ?&LfHa4EiGtx0%m$OG)%|PZH0!CczF5)tTG@^Z~QCQ!4Cd6j7b+8 l9FlNoP=6l?){h1reFDU1Pjh#kRgnMy002ovPDHLkV1oXY|EvH2 literal 0 KcmV+b0RR6000031 diff --git a/public/ele-file-list/ic_file_visio_sm.png b/public/ele-file-list/ic_file_visio_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..c158664acfc15007804dc38b2248913e7fc923ba GIT binary patch literal 267 zcmV+m0rdWfP)mX?)#a(?^~7S+2;AE$MK-T@ZakC)Z_S&xb42x z^;DDUY@p{ziQ%i3e9r&?00neXPE!Da=Skt;Aee>#0047IL_t(2&$Y};4udcZMNyaV zTqkJ*^t1o1l1Rw_o@a19)EL^Yr6Pf8s^b8bwP^MrXom;X(d|4oom;e9&|E1FZPniGj_Wx$4|MU3&q{{!8!~gyM z|I6Y3a;^VUoB!D9|HIt>z1jbh!2f%)|7@!N`uzX*`~T?j|F_lucd!5J^#9`T|I+3E z#ohm|(Eq5+|DDGFio5?`qW@Z-|J&;SpwIt}z5jo?|9`aq8rhyh00009bW%=J0DJcE z37MFYkGp38U;qFCVo5|nR7l6|*IRFbKoA9BtJZdoTtpDLC|+6=vD*Lt@5;^~X`;#Q z`qVVc(|Onra(01)K{MmmA!+Aja6c0=nCSyKGJ+2znL&~EkmZw5q&*aA4@Eu$McTrz zPFlk2w3Bwwx!&KCY^R6+7J6|Jw6WY3X&X1YaG`-SU?poj0BeV14j|LO3xF-B6kQAe zcp6v(m~mR-cXYLza|S{Vu7V%8m}udFn{ltR&waUVrG;Ank@PA*flS)YYb|tq;7CLb z`VORI0>q?&B0~1_MJ^=^_F9+%zC$_R#ced507QDo>vB2*2R?_4Dn1N7q&*N&s0am$ zZ-B%ImcY`Hlkk98U8pjG8Q?~|EnKp}sEwer1~%iG_mmj0000%>i@>x|EkXafVKb3;s3qa z|F6;ii@X1Jum5nY|7NHE-|YXV%>SIs|L*nwYLM6T+S z?2h&j4-+~ivM>H=l^#P z|NnRo|NnRo=>K^Si~o8MBma660RMUr00000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000RMOo0RMXs z0RMXs690M-YyWx>*8h4C{{MOq|NnXr|Nnas|Nnas|Nnas{{MUs*Z+MGZ2x``690Y> z0RMXs000000000000000000000000000000000000000000000000000000000000 z00000000000RL7P0RMdu0RMdu2mgH#P5*olzW;m>`u}_o|Nngu|Nngu|Nngu|Nnjv z|Nnjv|Nnjw|Nnjw|Nnmx`~QCtzyE*{P5*%r2>*c*0RM6f00000000000000000000 z000000000000000000000000000000000000RMmy0RMmy0{?#zGXH-OqW^yp^8bGk z|Nnmx|Nnmx|Nnpy|Nnpy`~QFu$p3&5$p3*6`~QIv|Nnsz|Nnv!|Nnv!|Nnv!^Z$bq zqW^>vGyjDW0{?^(00000000000000000000000000000000000000000RMp!0RMsw z0RMs!9shz6g8zXL<^O>Z|Nnv!|Nnv!|Nnv!|Nnv!|Nnv!-2Z|RbN_-775{<}75{@0 za{q)9+y8_T|Nn&&|Nn&&|Nn&&|Nn&&|Nn*(<^P8gga3#V9{+|B0RM;+0000000000 z00000000000RMv$0RM#&0RMy%5C4P`WB-H_(Eo%I{{Ms$|Nn#%|Nn&&|Nn&&|Nn&& z?f-=mlmCPgDF1{L0sn*(0RM#&0RMy&0sn>)C;x{MlK+Sk?Ei=p|Nn>+|Nn^-|Nn^- z|Nn^-{{M;-(f^ARWB-g45C4l30RM^;000000RM**0RM**0sn^*LH~vlxBrF``TvFz z|Nn;)|Nn;)|Nn;*|Nn;*_y30zvHyn>K>vmk1pkH-000000000000000000000RM>- z0RM>-1pkQ>KmUpou>Xq__y3F&|No2>|No2>|No2>|No5?`Tva+xc`n6LjRBy0soH_ z0RM;+0RM;+4gZM~!~cmB|Nn^-|Nn^-|Nn{;|Nn{;{r`#+%>RiKT>ps^4F8D}0RN8` z0000009;D<09;D<16)h@16)h@000000RNE^0RM~>0RM~>4F8Q3T>p*~%m0rQ{r`^? z|NoB^|NoB^|NoE`|NoE`!~c*K4gZi80RM{=0RM{=5C4l3$^VQK|No2>|No2>|No2> z;s1;jeE*CS8vltD0RN2>0000007^Ob04W>t08c*lBv?lGi(O3jj9*jtC1-8=0AN@6 z000000RNE`0RN8{0RNB`8UK+Ld;gIY;Qx{p|NoK||NoK||NoN~$^VlT5C4-D0RN5@ z0RN5@5C4u7$^VZO|NoB^|NoB^^8b$%O8=J>0RN5@0000005&J~06;MI06Hr66GJlg zZA?4%*i}UL|6EM>|6f!0*Pd6v^z(6qe`${?X|5QTv|6EJ=|6f!0|6yAA`(t7F!DVOp zP-kxW2xn{g0BLdi000000RNU30RNU22LG2AM*o->yZ@LM!~d8V5C51L0RNO00RNO0 z5C4=F$^VoV|NoR0|NoU1?EjS(FaMPm04yE#04yE#3oIS=l`S6i^fe{*|35DF|429X z|58Es|657-|6Wn||6y79|6^eI|7B+TG0RNU30RNU35C4}J$^VxZ|Noa4|Noa4?EjY+FaMVp04yE# z04yE#7%Uz2*DW3O|1%`@|2-}C|3^0V{!l;m-C9WZ-Cj`l{$N-5|6^bH|72$S|9^Pe z|Lm|v=KQ)ahWooQALfip0Q|l&00000000000000000000000000RNd70RNd75C54M z$^V%c|Noj8|Noj8?Ejh=FaMet04yE#04yE#7%Uz2*DM|N|1l!<|2r%8`9w4JmQ6hN zCRtbE_|6^qO|9*Gc{_U?t|NFTy{`u47~R_I`ER|Lmc=@t4 z-}$vP|N6Ky|NFZ#|NOo&|NX%*|Ng@-yZ*&54F1F~0RN;M0RN;M5C5ba$^WDq|No^N z|No^N?Ej@4FaM<+04yE#04yE#7%Uz2*DM|N|1BQ%|1>4_|2{7E|3^3W+E70Ba9Bq7 z6i`3+09;G=000000Qj#q0Qamo0r{~tEBUlEnEJLe@B6tj|NOi$|NOr(|NX%*$^OGH z5B|b00RN{P0RN{P5C5ke$^WMu|No~P|Np2R?Ek17FaM|<04yE#04yE#3oIS=l`I|g z^ei3q|1%@?|2!=A|3)_U|4={n`&dW!!(C4IQeag03tmt60AN@6000000Qs{t0Qj;s z1p2izTl%*%^!vIp|NOl%|NXx($^F4E4*kF|0RO2S0RO2S5C5ti$^WVy|Np8T|Np8T z?Ek7AF8`_>04*N#04yE#04yE#2rM1-Pb?kvz%e5A`#UT4|3x(R|4u#j|5!%%|6NY^ z@LyE;Zew8i0$^A800000000000Qs{t0Qs{tF8Q@I>-x7d|NFW!|NOl%$^5@D4*b3` z0ROBW0ROBW5C5zl$^Wb#|NpHX|NpHX^8c0AN@6000000Qapn0RG1>0Qj&q zO8K%h^7^$i|NFQy|NFZ#$^5)A4*a|^0ROKa0ROKa5C5+p$^Wk(|NpNa|NpQb|NpQb z;s3E9eE+f_8vn8(0ROQc0000005v7`02K)G06Q!8BttUxi%L26j8j4PC3Ii;09Z!% z000000QRRi0QIXj0QILh8TP6-d-tt2;P|jL|M{~t|N6Ew|NFTz$@{u85Bs_@0ROQd z0ROQd4gazr!~e1%|NpWe|NpWe|NpZf|NpZf{r|Ke%>T3@T>rHp4F9zu0ROEY00000 z07W(S07NzR14T9V14T9V000000Q93j0P~xTR1pl}q000000000000000000000P&bS0PvPQ1o4_Y zKk}VBu=Aig_w=JV|MjLg|Msaj|M#pm|M;&p`T4Rmxcap-Lj1ci0s6Ny000000ROln z0ROfj0ROfj5C69!WB<4!(f_z2{{Ofl|Nprn|Nprn|Nprn|Npup?f<$XlmELTDF3`8 z0sp%r0Pc`K0PKoE0q>GNC-9X$lJS^4?DCsC|MQ+Y|MQ_b|Ma9e|MjOh{`RUj(f6%3 zWB9N&5BRS&0Q#^s000000000000000000000ROro0ROlo0ROon9sjx`g8#cCDN|L~VR|MHqU^YWcLqw}CTGxel70`#Ie0000000000 z0000000000000000000000000000000000000000000000RPh}0RO)v0RO)v2>-w( zP5;3qzyHD|`v1Zu|Np`z|Np`z|Np}#|Np@z|NOfu|M{^m|M#mh|Msdg`}V0c!}Oy! zQSq5P2=bge0P2!I00000000000000000000000000000000000000000000000000 z000000000000000000000RP4&0RO@!0RO`!692>|YyZS1*8jyO{{O`$|Nq4%|Nq7( z|Nq7&|NqA(|Nq7(+W*BTaR0|86#um^0RQ9^000000000000000000000000000000 z0000000000000000000000000000000000000000000000000000000000000RP7( z0RPA$0RP4(BLBxHivP$b=l{qj|NqD*|NqD+>i)(kkN(3cCiko~0Q|iy0000000000 z00000000000000000000000000000000000000000000000000000000000000000 z000000000000000000000000000000000000RPD+0RPD+1OLe=LI27q!2ii9#Qw%A zM*O}l1pUD)0000000000000000000000000000000000000000000000000000000 z000000RQ+O|Nr0z|Np=P|Nj60|NH;|KllIuAK(Fi2Y?6Q0e~KO0f2ZO0fF!j0fE2+ z!GVAP@qvH li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * Dracula Theme originally by Zeno Rocha [@zenorocha] + * https://draculatheme.com/ + * + * Ported for PrismJS by Albert Vallverdu [@byverdu] + */ +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #282a36; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #6272a4; +} +.token.punctuation { + color: #f8f8f2; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #ff79c6; +} +.token.boolean, +.token.number { + color: #bd93f9; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #50fa7b; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #f1fa8c; +} +.token.keyword { + color: #8be9fd; +} +.token.regex, +.token.important { + color: #ffb86c; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #4099ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #4099ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #4099ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #4099ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #4099ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid transparent; + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: lighten; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #4099ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.inline.css b/public/tinymce/skins/ui/oxide-dark/content.inline.css new file mode 100644 index 0000000..8e7521d --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.inline.min.css b/public/tinymce/skins/ui/oxide-dark/content.inline.min.css new file mode 100644 index 0000000..b4ab9a3 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/public/tinymce/skins/ui/oxide-dark/content.min.css b/public/tinymce/skins/ui/oxide-dark/content.min.css new file mode 100644 index 0000000..e27b8a0 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#50fa7b}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#f1fa8c}.token.keyword{color:#8be9fd}.token.important,.token.regex{color:#ffb86c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #4099ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #4099ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #4099ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #4099ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #4099ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#4099ff}.mce-content-body .mce-edit-focus{outline:3px solid #4099ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid transparent;bottom:-1px;content:'';left:-1px;mix-blend-mode:lighten;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#4099ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide-dark/content.mobile.css b/public/tinymce/skins/ui/oxide-dark/content.mobile.css new file mode 100644 index 0000000..4bdb8ba --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css b/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css new file mode 100644 index 0000000..35f7dc0 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff b/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e3be038a607cb7c2544ed8ae3d6621f77bf4c38 GIT binary patch literal 4624 zcmV+r67TJIPew)n0RR9101^-Y3jhEB01?Ch0RRF3000000000000000000000000_ zQ!g?A009U9003YB003YQ5(&OzZDDW#00C$K009I5009K#Kc6CJVRLW*00L|P000O8 z000O8000nYYi{zW2><{90000000000 z000000T2KH000000000000000002M$0PLaz!2iGiKm))4KmY&$0RR910000000000 zAOHXW0009300093000~S0RRI4000~S0{{U4000~S1OVs&001@sAOHja761VNAmCx( z;o(=|TH$8mG~zkpKjK2-MdC@~RN`dg7331-#O2E6&FFdPk?8>G2JE8${r~>}00000 zAmCx(;o(=|TH$8mG~zbmKjJ~+MdC@~RN`dg6yy@+#O2B5&FFdPk?8;F2JE8${r~>} z0srG4qaP$5uO6))q8-&8)E&@S000000RR91000000006205>@S00000 z0RR91000000006205>@S000000RXB1RRdN70RR&K024Gm0y8om0u>Yv0wW?W0;)D$ zd`CuoT{bpdd`CuoT{Z!$Mtxm2HeG#2M|@p2HeGxG0{~V4RRgL60RRF32LKlU00AW- z0TBfy5dkt56%iB$BOxLtH4!v6GXeksR{c~0tp2M0ssgMcGBG3lR3b7lBLUUc{r~~0 z)YSe~0#-C4{s1F0Ga~{3A~XO10{~V4)dQ*mfdCZ%82~Q;00A-{0u>Yv0xJPEGcq!; zHms~HPB|eVIZiCBtTs*pfg(CiEG(+CkG=p0RaF4R`^6(9%guS3<792@i`1)2LKBI7XTvwF8}}mAr&DJH6axNH6axxG8PpS1|uRSH8eI8G8PpS z1|uRSH8eI8G8PpS1|uRSH8eH>DgsvhssdL1ssdL1DjOvx8W|@g8yh7h8yh7h8yh7h z8yh7h0@YOi08~`}08~_JCm9+hCK?$h0sti&8zm(h8zuh$B^w(hB^w(h000001^`w7 zRRe$n0RRI42LKBI6#yFmCjbBeH6axNH6axNAr&D9H8T|lGZiB>HzzeCH8T|hH8T|> zH8V9MH8V8l^PJm1zDpXW}fK)0f0fAIh{{U1}0#sD2EGSqk zC|H1iEUf;3EUYXPEEE6$0sw#jfdi@o0RRU84*&oYH6axv5hD>3Ar&JLBM~Ej0f2yj zfC4JifYt%4fPnti0V)Ajfc^ji000000sz(kD+4M6D*yuk82|t`Ar&DdA}#_o5i=1K z7Bez7H4!rr6b=H`0#yC10V*|KMJQ@mK0R4#C`Dd@R;nmPT{Zz${;ED!Rz3k%{;D=z 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 zVgPvnAOJ}KV*qaeO#p8IZvbupE&u=k0{{R3000000000000000000000000000000 G0001nZkiSV literal 0 KcmV+b0RR6000031 diff --git a/public/tinymce/skins/ui/oxide-dark/skin.css b/public/tinymce/skins/ui/oxide-dark/skin.css new file mode 100644 index 0000000..d34b9c1 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.css @@ -0,0 +1,3047 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox { + box-shadow: none; + box-sizing: content-box; + color: #2A3746; + cursor: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: normal; + -webkit-tap-highlight-color: transparent; + text-decoration: none; + text-shadow: none; + text-transform: none; + vertical-align: initial; + white-space: normal; +} +.tox *:not(svg):not(rect) { + box-sizing: inherit; + color: inherit; + cursor: inherit; + direction: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + line-height: inherit; + -webkit-tap-highlight-color: inherit; + text-align: inherit; + text-decoration: inherit; + text-shadow: inherit; + text-transform: inherit; + vertical-align: inherit; + white-space: inherit; +} +.tox *:not(svg):not(rect) { + /* stylelint-disable-line no-duplicate-selectors */ + background: transparent; + border: 0; + box-shadow: none; + float: none; + height: auto; + margin: 0; + max-width: none; + outline: 0; + padding: 0; + position: static; + width: auto; +} +.tox:not([dir=rtl]) { + direction: ltr; + text-align: left; +} +.tox[dir=rtl] { + direction: rtl; + text-align: right; +} +.tox-tinymce { + border: 1px solid #000000; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + overflow: hidden; + position: relative; + visibility: inherit !important; +} +.tox-tinymce-inline { + border: none; + box-shadow: none; +} +.tox-tinymce-inline .tox-editor-header { + background-color: transparent; + border: 1px solid #000000; + border-radius: 0; + box-shadow: none; +} +.tox-tinymce-aux { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + z-index: 1300; +} +.tox-tinymce *:focus, +.tox-tinymce-aux *:focus { + outline: none; +} +button::-moz-focus-inner { + border: 0; +} +.tox[dir=rtl] .tox-icon--flip svg { + transform: rotateY(180deg); +} +.tox .accessibility-issue__header { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description { + align-items: stretch; + border: 1px solid #000000; + border-radius: 3px; + display: flex; + justify-content: space-between; +} +.tox .accessibility-issue__description > div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #000000; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.5); + border-color: #207ab7; + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.5); + border-color: rgba(255, 165, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.5); + border-color: rgba(204, 0, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.5); + border-color: rgba(120, 171, 70, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #3d546f; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #3d546f; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #3d546f; + background-image: none; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #2b3b4e; + background-image: none; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #fff; +} +.tox .tox-button--naked[disabled] { + background-color: #3d546f; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #2b3b4e; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #fff; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(255, 255, 255, 0.2); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #1a1a1a; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #333333; + color: #fff; + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #fff; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #2b3b4e; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #4a5562; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #fff; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #2b3b4e; + border: 1px solid #1a1a1a; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #4a5562; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #2b3b4e; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #fff; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; +} +.tox .tox-comment__body { + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(255, 255, 255, 0.5); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #2b3b4e; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(43, 59, 78, 0), #2b3b4e); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #2b3b4e; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #fff; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #2b3b4e; + box-shadow: 0 0 8px 8px #2b3b4e; + color: #fff; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #2b3b4e; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-user__name { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #222f3e; +} +.tox .tox-dialog { + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(42, 55, 70, 0.15), 0 0 40px 1px rgba(42, 55, 70, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #2b3b4e; + border-bottom: none; + color: #fff; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #fff; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #fff; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #fff; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #fff; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #2b3b4e; + border-top: 1px solid #000000; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #000000; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #000000; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(255, 255, 255, 0.5); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #000000; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(42, 55, 70, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #2b3b4e; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(255, 255, 255, 0.5); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #222f3e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #fff; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #fff; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #000000; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: #fff; + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #000000; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn--active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #fff; +} +.tox .tox-notification--success p { + color: #fff; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #fff; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #fff; +} +.tox .tox-notification--error p { + color: #fff; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #fff; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #fff; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #fff; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #fff; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #fff; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #fff; +} +.tox .tox-notification--info p { + color: #fff; +} +.tox .tox-notification--info a { + color: #fff; +} +.tox .tox-notification--info svg { + fill: #fff; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #fff; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar, +.tox .tox-pop--resizing .tox-toolbar__group { + flex-wrap: nowrap; +} +.tox .tox-pop--transition { + transition: 0.15s ease; + transition-property: left, right, top, bottom; +} +.tox .tox-pop--transition::before, +.tox .tox-pop--transition::after { + transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; +} +.tox .tox-pop__dialog { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + opacity: 1; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--inset::before, +.tox .tox-pop.tox-pop--inset::after { + opacity: 0; + transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #222f3e transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #000000 transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #222f3e transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #000000 transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #222f3e transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #000000 transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #222f3e; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #000000; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #222f3e; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #000000; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(255, 255, 255, 0.5); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #222f3e; + border-top: 1px solid #000000; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: #fff; + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: #fff; +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #4a5562; + border-radius: 1px; + box-shadow: 0 0 0 2px #4a5562; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #fff; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #4a5562; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:hover svg { + fill: #fff; +} +.tox .tox-tbtn:active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:active svg { + fill: #fff; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #fff; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #4a5562 inset; +} +.tox .tox-split-button:focus { + background: #4a5562; + box-shadow: none; + color: #fff; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #222f3e; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #000000; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #000000; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #3d546f; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(42, 55, 70, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #3d546f; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #3d546f; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #3d546f; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #3d546f; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #000000; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #000000; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.min.css b/public/tinymce/skins/ui/oxide-dark/skin.min.css new file mode 100644 index 0000000..e71f6f0 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#2a3746;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #000;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #000;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#000;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.5);border-color:#207ab7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.5);border-color:rgba(255,165,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.5);border-color:rgba(204,0,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.5);border-color:rgba(120,171,70,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.8)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:hover:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:active:not(:disabled){background-color:#2b3b4e;background-image:none;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#fff}.tox .tox-button--naked[disabled]{background-color:#3d546f;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:focus:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:active:not(:disabled){background-color:#2b3b4e;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#fff}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(255,255,255,.2)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(255,255,255,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#1a1a1a;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#333;color:#fff;cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#fff;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#2b3b4e;color:#fff}.tox .tox-collection--list .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#4a5562;color:#fff}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(255,255,255,.5);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#fff}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(255,255,255,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#2b3b4e;border:1px solid #1a1a1a;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #000}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #000}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#4a5562}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#2b3b4e;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#fff;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(255,255,255,.5);font-size:12px}.tox .tox-comment__body{color:#fff;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(255,255,255,.5);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#2b3b4e;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(43,59,78,0),#2b3b4e);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#2b3b4e;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#fff;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#2b3b4e;box-shadow:0 0 8px 8px #2b3b4e;color:#fff;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#2b3b4e;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(255,255,255,.5)}.tox .tox-user__name{color:rgba(255,255,255,.5);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(34,47,62,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#222f3e}.tox .tox-dialog{background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(42,55,70,.15),0 0 40px 1px rgba(42,55,70,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#2b3b4e;border-bottom:none;color:#fff;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#fff;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(255,255,255,.5);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#fff}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#fff;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#fff;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#2b3b4e;border-top:1px solid #000;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(34,47,62,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #000}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #000;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(255,255,255,.5);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #000}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(42,55,70,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #2b3b4e;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(255,255,255,.5);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#222f3e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#fff}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #000}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#fff}.tox .tox-notification--success p{color:#fff}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#fff}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#fff}.tox .tox-notification--error p{color:#fff}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#fff}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#fff}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#fff}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#fff}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#fff}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#fff}.tox .tox-notification--info p{color:#fff}.tox .tox-notification--info a{color:#fff}.tox .tox-notification--info svg{fill:#fff}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#fff;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#222f3e transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#000 transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #222f3e transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #000 transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #222f3e transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #000 transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #222f3e;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #000;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#222f3e;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #000;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(255,255,255,.5);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#222f3e;border-top:1px solid #000;color:#fff;display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#fff;text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:#fff}.tox .tox-statusbar__resize-handle:focus svg{background-color:#4a5562;border-radius:1px;box-shadow:0 0 0 2px #4a5562}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(34,47,62,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#fff}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#4a5562;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:hover svg{fill:#fff}.tox .tox-tbtn:active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:active svg{fill:#fff}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#fff}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #4a5562 inset}.tox .tox-split-button:focus{background:#4a5562;box-shadow:none;color:#fff}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-toolbar-overlord{background-color:#222f3e}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #000;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #000}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #000}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #000}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#3d546f;border-radius:3px;box-shadow:0 2px 4px rgba(42,55,70,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #3d546f;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #3d546f;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #3d546f;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #3d546f;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #000;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #000;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.mobile.css b/public/tinymce/skins/ui/oxide-dark/skin.mobile.css new file mode 100644 index 0000000..875721a --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css b/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css new file mode 100644 index 0000000..3a45cac --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css new file mode 100644 index 0000000..d2adc4d --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css new file mode 100644 index 0000000..a0893b9 --- /dev/null +++ b/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/public/tinymce/skins/ui/oxide/content.css b/public/tinymce/skins/ui/oxide/content.css new file mode 100644 index 0000000..2ac0cca --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.css @@ -0,0 +1,732 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide/content.inline.css b/public/tinymce/skins/ui/oxide/content.inline.css new file mode 100644 index 0000000..8e7521d --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/public/tinymce/skins/ui/oxide/content.inline.min.css b/public/tinymce/skins/ui/oxide/content.inline.min.css new file mode 100644 index 0000000..b4ab9a3 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/public/tinymce/skins/ui/oxide/content.min.css b/public/tinymce/skins/ui/oxide/content.min.css new file mode 100644 index 0000000..844858d --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide/content.mobile.css b/public/tinymce/skins/ui/oxide/content.mobile.css new file mode 100644 index 0000000..4bdb8ba --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/tinymce/skins/ui/oxide/content.mobile.min.css b/public/tinymce/skins/ui/oxide/content.mobile.min.css new file mode 100644 index 0000000..35f7dc0 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff b/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e3be038a607cb7c2544ed8ae3d6621f77bf4c38 GIT binary patch literal 4624 zcmV+r67TJIPew)n0RR9101^-Y3jhEB01?Ch0RRF3000000000000000000000000_ zQ!g?A009U9003YB003YQ5(&OzZDDW#00C$K009I5009K#Kc6CJVRLW*00L|P000O8 z000O8000nYYi{zW2><{90000000000 z000000T2KH000000000000000002M$0PLaz!2iGiKm))4KmY&$0RR910000000000 zAOHXW0009300093000~S0RRI4000~S0{{U4000~S1OVs&001@sAOHja761VNAmCx( z;o(=|TH$8mG~zkpKjK2-MdC@~RN`dg7331-#O2E6&FFdPk?8>G2JE8${r~>}00000 zAmCx(;o(=|TH$8mG~zbmKjJ~+MdC@~RN`dg6yy@+#O2B5&FFdPk?8;F2JE8${r~>} z0srG4qaP$5uO6))q8-&8)E&@S000000RR91000000006205>@S00000 z0RR91000000006205>@S000000RXB1RRdN70RR&K024Gm0y8om0u>Yv0wW?W0;)D$ zd`CuoT{bpdd`CuoT{Z!$Mtxm2HeG#2M|@p2HeGxG0{~V4RRgL60RRF32LKlU00AW- z0TBfy5dkt56%iB$BOxLtH4!v6GXeksR{c~0tp2M0ssgMcGBG3lR3b7lBLUUc{r~~0 z)YSe~0#-C4{s1F0Ga~{3A~XO10{~V4)dQ*mfdCZ%82~Q;00A-{0u>Yv0xJPEGcq!; zHms~HPB|eVIZiCBtTs*pfg(CiEG(+CkG=p0RaF4R`^6(9%guS3<792@i`1)2LKBI7XTvwF8}}mAr&DJH6axNH6axxG8PpS1|uRSH8eI8G8PpS z1|uRSH8eI8G8PpS1|uRSH8eH>DgsvhssdL1ssdL1DjOvx8W|@g8yh7h8yh7h8yh7h z8yh7h0@YOi08~`}08~_JCm9+hCK?$h0sti&8zm(h8zuh$B^w(hB^w(h000001^`w7 zRRe$n0RRI42LKBI6#yFmCjbBeH6axNH6axNAr&D9H8T|lGZiB>HzzeCH8T|hH8T|> zH8V9MH8V8l^PJm1zDpXW}fK)0f0fAIh{{U1}0#sD2EGSqk zC|H1iEUf;3EUYXPEEE6$0sw#jfdi@o0RRU84*&oYH6axv5hD>3Ar&JLBM~Ej0f2yj zfC4JifYt%4fPnti0V)Ajfc^ji000000sz(kD+4M6D*yuk82|t`Ar&DdA}#_o5i=1K z7Bez7H4!rr6b=H`0#yC10V*|KMJQ@mK0R4#C`Dd@R;nmPT{Zz${;ED!Rz3k%{;D=z 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 zVgPvnAOJ}KV*qaeO#p8IZvbupE&u=k0{{R3000000000000000000000000000000 G0001nZkiSV literal 0 KcmV+b0RR6000031 diff --git a/public/tinymce/skins/ui/oxide/skin.css b/public/tinymce/skins/ui/oxide/skin.css new file mode 100644 index 0000000..49a82fa --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.css @@ -0,0 +1,3047 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox { + box-shadow: none; + box-sizing: content-box; + color: #222f3e; + cursor: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: normal; + -webkit-tap-highlight-color: transparent; + text-decoration: none; + text-shadow: none; + text-transform: none; + vertical-align: initial; + white-space: normal; +} +.tox *:not(svg):not(rect) { + box-sizing: inherit; + color: inherit; + cursor: inherit; + direction: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + line-height: inherit; + -webkit-tap-highlight-color: inherit; + text-align: inherit; + text-decoration: inherit; + text-shadow: inherit; + text-transform: inherit; + vertical-align: inherit; + white-space: inherit; +} +.tox *:not(svg):not(rect) { + /* stylelint-disable-line no-duplicate-selectors */ + background: transparent; + border: 0; + box-shadow: none; + float: none; + height: auto; + margin: 0; + max-width: none; + outline: 0; + padding: 0; + position: static; + width: auto; +} +.tox:not([dir=rtl]) { + direction: ltr; + text-align: left; +} +.tox[dir=rtl] { + direction: rtl; + text-align: right; +} +.tox-tinymce { + border: 1px solid #cccccc; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + overflow: hidden; + position: relative; + visibility: inherit !important; +} +.tox-tinymce-inline { + border: none; + box-shadow: none; +} +.tox-tinymce-inline .tox-editor-header { + background-color: transparent; + border: 1px solid #cccccc; + border-radius: 0; + box-shadow: none; +} +.tox-tinymce-aux { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + z-index: 1300; +} +.tox-tinymce *:focus, +.tox-tinymce-aux *:focus { + outline: none; +} +button::-moz-focus-inner { + border: 0; +} +.tox[dir=rtl] .tox-icon--flip svg { + transform: rotateY(180deg); +} +.tox .accessibility-issue__header { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description { + align-items: stretch; + border: 1px solid #cccccc; + border-radius: 3px; + display: flex; + justify-content: space-between; +} +.tox .accessibility-issue__description > div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #cccccc; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.1); + border-color: rgba(32, 122, 183, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: rgba(32, 122, 183, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.1); + border-color: rgba(255, 165, 0, 0.5); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.5); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.1); + border-color: rgba(204, 0, 0, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.1); + border-color: rgba(120, 171, 70, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #f0f0f0; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #f0f0f0; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #f0f0f0; + background-image: none; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #d6d6d6; + background-image: none; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked[disabled] { + background-color: #f0f0f0; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #d6d6d6; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #222f3e; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(34, 47, 62, 0.3); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #cccccc; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #e6e6e6; + color: rgba(34, 47, 62, 0.7); + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #222f3e; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #fff; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #dee0e2; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #222f3e; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #dee0e2; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #fff; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #222f3e; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; +} +.tox .tox-comment__body { + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(34, 47, 62, 0.7); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #fff; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(255, 255, 255, 0), #fff); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #fff; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #222f3e; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #fff; + box-shadow: 0 0 8px 8px #fff; + color: #222f3e; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #fff; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-user__name { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #fff; +} +.tox .tox-dialog { + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #fff; + border-bottom: none; + color: #222f3e; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #222f3e; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #222f3e; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #222f3e; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #222f3e; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #cccccc; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #cccccc; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(34, 47, 62, 0.7); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #cccccc; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(34, 47, 62, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #fff; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #222f3e; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #222f3e; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #cccccc; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #cccccc; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn--active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #222f3e; +} +.tox .tox-notification--success p { + color: #222f3e; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #222f3e; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #222f3e; +} +.tox .tox-notification--error p { + color: #222f3e; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #222f3e; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #222f3e; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #222f3e; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #222f3e; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #222f3e; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #222f3e; +} +.tox .tox-notification--info p { + color: #222f3e; +} +.tox .tox-notification--info a { + color: #222f3e; +} +.tox .tox-notification--info svg { + fill: #222f3e; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #222f3e; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar, +.tox .tox-pop--resizing .tox-toolbar__group { + flex-wrap: nowrap; +} +.tox .tox-pop--transition { + transition: 0.15s ease; + transition-property: left, right, top, bottom; +} +.tox .tox-pop--transition::before, +.tox .tox-pop--transition::after { + transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; +} +.tox .tox-pop__dialog { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + opacity: 1; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--inset::before, +.tox .tox-pop.tox-pop--inset::after { + opacity: 0; + transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #fff transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #cccccc transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #fff transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #cccccc transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #fff transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #cccccc transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #fff; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #cccccc; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #fff; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #cccccc; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(34, 47, 62, 0.7); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + color: rgba(34, 47, 62, 0.7); + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: rgba(34, 47, 62, 0.7); + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #dee0e2; + border-radius: 1px; + box-shadow: 0 0 0 2px #dee0e2; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #222f3e; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #dee0e2; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:hover svg { + fill: #222f3e; +} +.tox .tox-tbtn:active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:active svg { + fill: #222f3e; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #222f3e; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #dee0e2 inset; +} +.tox .tox-split-button:focus { + background: #dee0e2; + box-shadow: none; + color: #222f3e; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #fff; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #cccccc; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #cccccc; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #222f3e; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #222f3e; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #222f3e; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #222f3e; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #222f3e; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #cccccc; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #cccccc; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/public/tinymce/skins/ui/oxide/skin.min.css b/public/tinymce/skins/ui/oxide/skin.min.css new file mode 100644 index 0000000..f570b8e --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/public/tinymce/skins/ui/oxide/skin.mobile.css b/public/tinymce/skins/ui/oxide/skin.mobile.css new file mode 100644 index 0000000..875721a --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/public/tinymce/skins/ui/oxide/skin.mobile.min.css b/public/tinymce/skins/ui/oxide/skin.mobile.min.css new file mode 100644 index 0000000..3a45cac --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/public/tinymce/skins/ui/oxide/skin.shadowdom.css b/public/tinymce/skins/ui/oxide/skin.shadowdom.css new file mode 100644 index 0000000..d2adc4d --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css b/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css new file mode 100644 index 0000000..a0893b9 --- /dev/null +++ b/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..1170257 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/api/dashboard/analysis/index.ts b/src/api/dashboard/analysis/index.ts new file mode 100644 index 0000000..19354b6 --- /dev/null +++ b/src/api/dashboard/analysis/index.ts @@ -0,0 +1,56 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { PayNumData, SaleroomResult, VisitData, CloudData } from './model'; + +/** + * 获取支付笔数数据 + */ +export async function getPayNumList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/analysis-pay-num.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取销售量数据 + */ +export async function getSaleroomList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/analysis-saleroom.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取最近 1 小时访问情况数据 + * @returns {Promise} + */ +export async function getVisitHourList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/analysis-visits.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取词云数据 + */ +export async function getWordCloudList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/analysis-hot-search.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/dashboard/analysis/model/index.ts b/src/api/dashboard/analysis/model/index.ts new file mode 100644 index 0000000..1844807 --- /dev/null +++ b/src/api/dashboard/analysis/model/index.ts @@ -0,0 +1,51 @@ +/** + * 支付笔数数据 + */ +export interface PayNumData { + /** 日期 */ + date?: string; + /** 支付笔数 */ + value?: number; +} + +/** + * 销售量数据 + */ +export interface SaleroomData { + /** 月份 */ + month?: string; + /** 销售量 */ + value?: number; +} + +/** + * 销售量和访问量数据 + */ +export interface SaleroomResult { + /** 销售量 */ + list1: SaleroomData[]; + /** 访问量 */ + list2: SaleroomData[]; +} + +/** + * 访问情况数据 + */ +export interface VisitData { + /** 时间 */ + time?: string; + /** 访问量 */ + visits?: number; + /** 浏览量 */ + views?: number; +} + +/** + * 词云数据 + */ +export interface CloudData { + /** 标题 */ + name: string; + /** 数量 */ + value: number; +} diff --git a/src/api/dashboard/monitor/index.ts b/src/api/dashboard/monitor/index.ts new file mode 100644 index 0000000..37af9f4 --- /dev/null +++ b/src/api/dashboard/monitor/index.ts @@ -0,0 +1,44 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { UserCount, BrowserCount } from './model'; +const BASE_URL = import.meta.env.BASE_URL; + +/** + * 获取中国地图geo数据 + */ +export async function getChinaMapData() { + const res = await request.get( + BASE_URL + 'json/china-provinces.geo.json', + { baseURL: '' } + ); + if (res.data) { + return res.data; + } + return Promise.reject(new Error('获取地图数据失败')); +} + +/** + * 获取用户分布数据 + */ +export async function getUserCountList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/monitor-user-count.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取用户浏览器分布数据 + */ +export async function getBrowserCountList() { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/monitor-browser-count.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/dashboard/monitor/model/index.ts b/src/api/dashboard/monitor/model/index.ts new file mode 100644 index 0000000..c715a0c --- /dev/null +++ b/src/api/dashboard/monitor/model/index.ts @@ -0,0 +1,21 @@ +/** + * 用户分布数据 + */ +export interface UserCount { + /** 省份 */ + name: string; + /** 用户数量 */ + value: number; + /** 百分比 */ + percent?: number; +} + +/** + * 浏览器分布数据 + */ +export interface BrowserCount { + /** 浏览器 */ + name: string; + /** 用户数量 */ + value: number; +} diff --git a/src/api/example/index.ts b/src/api/example/index.ts new file mode 100644 index 0000000..391f06d --- /dev/null +++ b/src/api/example/index.ts @@ -0,0 +1,163 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { + NoticeResult, + Message, + UserItem, + UserScore, + Piece, + PieceParam +} from './model'; + +/** + * 查询未读通知 + */ +export async function getUnreadNotice(): Promise { + const res = await request.get( + 'https://cdn.eleadmin.com/20200610/message.json' + ); + return res.data; +} + +/** + * 分页查询通知 + */ +export async function pageNotices(_params: any) { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/notices.json' + ); + return res.data; +} + +/** + * 分页查询私信 + */ +export async function pageLetters(_params: any) { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/letters.json' + ); + return res.data; +} + +/** + * 分页查询代办 + */ +export async function pageTodos(_params: any) { + const res = await request.get>( + 'https://cdn.eleadmin.com/20200610/todos.json' + ); + return res.data; +} + +/** + * 查询未读数量 + */ +export async function getUnReadNum() { + return { notice: 2, letter: 3, todo: 4 }; +} + +/** + * 获取已添加成员 + */ +export async function listAddedUsers() { + const data: UserItem[] = [ + { + key: '1', + number: '00001', + name: 'John Brown', + department: '研发部' + }, + { + key: '2', + number: '00002', + name: 'Jim Green', + department: '产品部' + }, + { + key: '3', + number: '00003', + name: 'Joe Black', + department: '产品部' + } + ]; + return data; +} + +/** + * 获取成绩 + */ +export async function pageUserScores() { + const res = await request.get>>( + 'https://cdn.eleadmin.com/20200610/example-table-merge.json' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取案卷列表 + */ +export async function getPieceList(params: PieceParam) { + const res = await request.get>>( + 'https://cdn.eleadmin.com/20200610/document.json', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询项目进度 + */ +export async function getProjectList() { + const res = await request.get( + 'https://cdn.eleadmin.com/20200610/project-list.json' + ); + return res.data; +} + +/** + * 获取演示markdown + */ +export async function getDemoMD() { + const res = await request.get( + 'https://cdn.eleadmin.com/20200610/demo.md' + ); + return res.data; +} + +/** + * 获取演示多选卡片 + */ +export async function getDemoCardData() { + return [ + { + value: 1, + title: 'ElementUI', + content: + 'Element, 一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库, 提供了配套设计资源, 帮助你的网站快速成型。', + avatar: + 'https://cdn.eleadmin.com/20200609/c184eef391ae48dba87e3057e70238fb.jpg' + }, + { + value: 2, + title: 'Vue.js', + content: + 'Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用。', + avatar: + 'https://cdn.eleadmin.com/20200609/b6a811873e704db49db994053a5019b2.jpg' + }, + { + value: 3, + title: 'Vue Router', + content: + 'Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成, 让构建单页面应用变得易如反掌。', + avatar: + 'https://cdn.eleadmin.com/20200609/f6bc05af944a4f738b54128717952107.jpg' + } + ]; +} diff --git a/src/api/example/model/index.ts b/src/api/example/model/index.ts new file mode 100644 index 0000000..53a67da --- /dev/null +++ b/src/api/example/model/index.ts @@ -0,0 +1,177 @@ +import { PageParam } from '@/api'; + +/** + * 通知数据格式 + */ +export interface NoticeModel { + /** 通知id */ + id: number; + /** 图标颜色 */ + color?: string; + /** 图标 */ + icon?: string; + /** 标题 */ + title?: string; + /** 时间 */ + time?: string; +} + +/** + * 私信数据格式 + */ +export interface LetterModel { + /** 私信id */ + id: number; + /** 头像 */ + avatar?: string; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 时间 */ + time?: string; +} + +/** + * 待办数据格式 + */ +export interface TodoModel { + /** 待办id */ + id: number; + /** 状态 */ + status?: number; + /** 标题 */ + title?: string; + /** 描述 */ + description?: string; +} + +/** + * 查询未读通知返回结果 + */ +export interface NoticeResult { + /** 通知 */ + notice: NoticeModel[]; + /** 私信 */ + letter: LetterModel[]; + /** 待办 */ + todo: TodoModel[]; +} + +/** + * 消息 + */ +export interface Message { + /** 消息id */ + id?: number; + /** 标题 */ + title?: string; + /** 时间 */ + time?: string; + /** 状态 */ + status?: number; +} + +/** + * 成员 + */ +export interface UserItem { + /** 成员id */ + key: string; + /** 工号 */ + number?: string; + /** 用户名 */ + name?: string; + /** 部门 */ + department?: string; + /** 是否编辑状态 */ + isEdit?: boolean; +} + +/** + * 成绩 + */ +export interface UserScore { + /** 成绩id */ + id: number; + /** 姓名 */ + userName: string; + /** 课程 */ + courseName: string; + /** 得分 */ + score: number; + /** 合并行 */ + userNameRowSpan: number; +} + +/** + * 案卷 + */ +export interface Piece { + /** 案卷id */ + id?: number; + /** 案卷题名 */ + title?: string; + /** 案卷档号 */ + piece_no?: string; + /** 密级 */ + secret?: string; + /** 存放位置 */ + location?: string; + /** 案卷类型 */ + type?: string; + /** 保管期限 */ + retention?: string; + /** 载体类型 */ + carrier?: string; + /** 归档年度 */ + year?: string; + /** 件数 */ + amount?: number; +} + +/** + * 案卷查询参数 + */ +export interface PieceParam extends PageParam { + /** 案卷题名 */ + title?: string; + /** 案卷档号 */ + piece_no?: string; +} + +/** + * 项目进度数据类型 + */ +export interface Project { + /** id */ + id: string; + /** 项目名称 */ + projectName: string; + /** 状态 */ + status: number; + /** 开始时间 */ + startDate: string; + /** 结束时间 */ + endDate: string; + /** 进度 */ + progress: number; + /** 金额 */ + money: number; +} + +/** + * 房屋租赁合同 + */ +export interface Contract { + /** 甲方 */ + partyA?: string; + /** 乙方 */ + partyB?: string; + /** 房屋地址 */ + address?: string; + /** 日期 */ + date?: string; + /** 项目 */ + projects?: Project[]; +} diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..b9dbd7f --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,35 @@ +/** + * 接口统一返回结果 + */ +export interface ApiResult { + /** 状态码 */ + code: number; + /** 状态信息 */ + message?: string; + /** 返回数据 */ + data?: T; +} + +/** + * 分页查询统一结果 + */ +export interface PageResult { + /** 返回数据 */ + list: T[]; + /** 总数量 */ + count: number; +} + +/** + * 分页查询基本参数 + */ +export interface PageParam { + /** 第几页 */ + page?: number; + /** 每页多少条 */ + limit?: number; + /** 排序字段 */ + sort?: string; + /** 排序方式, asc升序, desc降序 */ + order?: string; +} diff --git a/src/api/layout/index.ts b/src/api/layout/index.ts new file mode 100644 index 0000000..8b2d4d7 --- /dev/null +++ b/src/api/layout/index.ts @@ -0,0 +1,39 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { User } from '@/api/system/user/model'; +import type { UpdatePasswordParam } from './model'; + +/** + * 获取当前登录用户的个人信息/菜单/权限/角色 + */ +export async function getUserInfo(): Promise { + const res = await request.get>('/auth/user'); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改当前登录用户的密码 + */ +export async function updatePassword( + data: UpdatePasswordParam +): Promise { + const res = await request.put>('/auth/password', data); + if (res.data.code === 0) { + return res.data.message ?? '修改成功'; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改当前登录用户的个人信息 + */ +export async function updateUserInfo(data: User): Promise { + const res = await request.put>('/auth/user', data); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/layout/model/index.ts b/src/api/layout/model/index.ts new file mode 100644 index 0000000..acdb129 --- /dev/null +++ b/src/api/layout/model/index.ts @@ -0,0 +1,9 @@ +/** + * 修改密码参数 + */ +export interface UpdatePasswordParam { + /** 新密码 */ + password: string; + /** 原始密码 */ + oldPassword: string; +} diff --git a/src/api/login/index.ts b/src/api/login/index.ts new file mode 100644 index 0000000..ad564df --- /dev/null +++ b/src/api/login/index.ts @@ -0,0 +1,27 @@ +import request from '@/utils/request'; +import { setToken } from '@/utils/token-util'; +import type { ApiResult } from '@/api'; +import type { LoginParam, LoginResult, CaptchaResult } from './model'; + +/** + * 登录 + */ +export async function login(data: LoginParam) { + const res = await request.post>('/login', data); + if (res.data.code === 0) { + setToken(res.data.data?.access_token, data.remember); + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取验证码 + */ +export async function getCaptcha() { + const res = await request.get>('/captcha'); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/login/model/index.ts b/src/api/login/model/index.ts new file mode 100644 index 0000000..33802a9 --- /dev/null +++ b/src/api/login/model/index.ts @@ -0,0 +1,35 @@ +import type { User } from '../../system/user/model'; + +/** + * 登录参数 + */ +export interface LoginParam { + /** 账号 */ + username?: string; + /** 密码 */ + password?: string; + /** 租户id */ + tenantId?: number; + /** 是否记住密码 */ + remember?: boolean; +} + +/** + * 登录返回结果 + */ +export interface LoginResult { + /** token */ + access_token?: string; + /** 用户信息 */ + user?: User; +} + +/** + * 图形验证码返回结果 + */ +export interface CaptchaResult { + /** 图形验证码base64数据 */ + base64: string; + /** 验证码文本 */ + text: string; +} diff --git a/src/api/system/dictionary-data/index.ts b/src/api/system/dictionary-data/index.ts new file mode 100644 index 0000000..30a411c --- /dev/null +++ b/src/api/system/dictionary-data/index.ts @@ -0,0 +1,86 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { DictionaryData, DictionaryDataParam } from './model'; + +/** + * 分页查询字典数据 + */ +export async function pageDictionaryData(params: DictionaryDataParam) { + const res = await request.get>>( + '/system/dictionary-data/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询字典数据列表 + */ +export async function listDictionaryData(params: DictionaryDataParam) { + const res = await request.get>( + '/system/dictionary-data', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加字典数据 + */ +export async function addDictionaryData(data: DictionaryData) { + const res = await request.post>( + '/system/dictionary-data', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改字典数据 + */ +export async function updateDictionaryData(data: DictionaryData) { + const res = await request.put>( + '/system/dictionary-data', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除字典数据 + */ +export async function removeDictionaryData(id?: number) { + const res = await request.delete>( + '/system/dictionary-data/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除字典数据 + */ +export async function removeDictionaryDataBatch(data: (number | undefined)[]) { + const res = await request.delete>( + '/system/dictionary-data/batch', + { data } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/dictionary-data/model/index.ts b/src/api/system/dictionary-data/model/index.ts new file mode 100644 index 0000000..cb416ed --- /dev/null +++ b/src/api/system/dictionary-data/model/index.ts @@ -0,0 +1,37 @@ +import { PageParam } from '@/api'; + +/** + * 字典数据 + */ +export interface DictionaryData { + /** 字典数据id */ + dictDataId?: number; + /** 字典id */ + dictId?: number; + /** 字典数据标识 */ + dictDataCode: string; + /** 字典数据名称 */ + dictDataName: string; + /** 排序号 */ + sortNumber?: number; + /** 备注 */ + comments?: string; + /** 创建时间 */ + createTime?: string; +} + +/** + * 字典数据搜索条件 + */ +export interface DictionaryDataParam extends PageParam { + /** 关键字 */ + keywords?: string; + /** 字典数据名称 */ + dictDataName?: string; + /** 字典数据名称 */ + dictDataCode?: string; + /** 字典标识 */ + dictCode?: string; + /** 字典id */ + dictId?: number; +} diff --git a/src/api/system/dictionary/index.ts b/src/api/system/dictionary/index.ts new file mode 100644 index 0000000..ea18c74 --- /dev/null +++ b/src/api/system/dictionary/index.ts @@ -0,0 +1,68 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { Dictionary, DictionaryParam } from './model'; + +/** + * 分页查询字典列表 + */ +export async function pageDictionaries(params: DictionaryParam) { + const res = await request.get>( + '/system/dictionary/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询字典列表 + */ +export async function listDictionaries(params?: DictionaryParam) { + const res = await request.get>('/system/dictionary', { + params + }); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加字典 + */ +export async function addDictionary(data: Dictionary) { + const res = await request.post>( + '/system/dictionary', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改字典 + */ +export async function updateDictionary(data: Dictionary) { + const res = await request.put>('/system/dictionary', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除字典 + */ +export async function removeDictionary(id?: number) { + const res = await request.delete>( + '/system/dictionary/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/dictionary/model/index.ts b/src/api/system/dictionary/model/index.ts new file mode 100644 index 0000000..0b20c87 --- /dev/null +++ b/src/api/system/dictionary/model/index.ts @@ -0,0 +1,29 @@ +import { PageParam } from '@/api'; + +/** + * 字典 + */ +export interface Dictionary { + /** 字典id */ + dictId?: number; + /** 字典标识 */ + dictCode?: string; + /** 字典名称 */ + dictName?: string; + /** 排序号 */ + sortNumber?: number; + /** 备注 */ + comments?: string; + /** 创建时间 */ + createTime?: string; +} + +/** + * 字典搜索条件 + */ +export interface DictionaryParam extends PageParam { + /** 字典标识 */ + dictCode?: string; + /** 字典名称 */ + dictName?: string; +} diff --git a/src/api/system/file/index.ts b/src/api/system/file/index.ts new file mode 100644 index 0000000..4e80c83 --- /dev/null +++ b/src/api/system/file/index.ts @@ -0,0 +1,81 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { FileRecord, FileRecordParam } from './model'; +import type { AxiosRequestConfig } from 'axios'; + +/** + * 上传文件 + * @param file 文件 + */ +export async function uploadFile(file: File, config?: AxiosRequestConfig) { + const formData = new FormData(); + formData.append('file', file); + const res = await request.post>( + '/file/upload', + formData, + config + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 上传base64文件 + * @param base64 base64数据 + * @param fileName 文件名称 + */ +export async function uploadBase64File(base64: string, fileName?: string) { + const formData = new FormData(); + formData.append('base64', base64); + if (fileName) { + formData.append('fileName', fileName); + } + const res = await request.post>( + '/file/upload/base64', + formData + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 分页查询文件上传记录 + */ +export async function pageFiles(params: FileRecordParam) { + const res = await request.get>>( + '/file/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除文件 + */ +export async function removeFile(id?: number) { + const res = await request.delete>('/file/remove/' + id); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除文件 + */ +export async function removeFiles(data: (number | undefined)[]) { + const res = await request.delete>('/file/remove/batch', { + data + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/file/model/index.ts b/src/api/system/file/model/index.ts new file mode 100644 index 0000000..c1bb29f --- /dev/null +++ b/src/api/system/file/model/index.ts @@ -0,0 +1,43 @@ +import { PageParam } from '@/api'; + +/** + * 文件上传记录 + */ +export interface FileRecord { + /** id */ + id: number; + /** 文件名称 */ + name?: string; + /** 文件存储路径 */ + path?: string; + /** 文件大小 */ + length?: number; + /** 文件类型 */ + contentType?: string; + /** 上传人id */ + createUserId?: number; + /** 上传时间 */ + createTime?: string; + /** 文件访问地址 */ + url?: string; + /** 文件缩略图访问地址 */ + thumbnail?: string; + /** 文件下载地址 */ + downloadUrl?: string; + /** 上传人账号 */ + createUsername?: string; + /** 上传人名称 */ + createNickname?: string; +} + +/** + * 文件上传记录查询参数 + */ +export interface FileRecordParam extends PageParam { + /** 文件名称 */ + name?: string; + /** 文件存储路径 */ + path?: string; + /** 上传人名称 */ + createNickname?: string; +} diff --git a/src/api/system/login-record/index.ts b/src/api/system/login-record/index.ts new file mode 100644 index 0000000..ca76fd7 --- /dev/null +++ b/src/api/system/login-record/index.ts @@ -0,0 +1,31 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { LoginRecord, LoginRecordParam } from './model'; + +/** + * 分页查询登录日志 + */ +export async function pageLoginRecords(params: LoginRecordParam) { + const res = await request.get>>( + '/system/login-record/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询登录日志列表 + */ +export async function listLoginRecords(params?: LoginRecordParam) { + const res = await request.get>( + '/system/login-record', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/login-record/model/index.ts b/src/api/system/login-record/model/index.ts new file mode 100644 index 0000000..bfbaf2f --- /dev/null +++ b/src/api/system/login-record/model/index.ts @@ -0,0 +1,43 @@ +import { PageParam } from '@/api'; + +/** + * 登录日志 + */ +export interface LoginRecord { + /** 登录日志id */ + id: number; + /** 用户账号 */ + username: string; + /** 操作系统 */ + os: string; + /** 设备名称 */ + device: string; + /** 浏览器类型 */ + browser: string; + /** ip地址 */ + ip: string; + /** 操作类型, 0登录成功, 1登录失败, 2退出登录, 3续签token */ + loginType: number; + /** 备注 */ + comments: string; + /** 操作时间 */ + createTime: string; + /** 用户昵称 */ + nickname: string; +} + +/** + * 登录日志搜索条件 + */ +export interface LoginRecordParam extends PageParam { + /** 用户账号 */ + username?: string; + /** 用户昵称 */ + nickname?: string; + /** 开始时间 */ + createTimeStart?: string; + /** 截止时间 */ + createTimeEnd?: string; + /** 操作类型 */ + loginType?: number; +} diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts new file mode 100644 index 0000000..d0afbd9 --- /dev/null +++ b/src/api/system/menu/index.ts @@ -0,0 +1,49 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { Menu, MenuParam } from './model'; + +/** + * 查询菜单列表 + */ +export async function listMenus(params?: MenuParam) { + const res = await request.get>('/system/menu', { + params + }); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加菜单 + */ +export async function addMenu(data: Menu) { + const res = await request.post>('/system/menu', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改菜单 + */ +export async function updateMenu(data: Menu) { + const res = await request.put>('/system/menu', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除菜单 + */ +export async function removeMenu(id?: number) { + const res = await request.delete>('/system/menu/' + id); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/menu/model/index.ts b/src/api/system/menu/model/index.ts new file mode 100644 index 0000000..7add480 --- /dev/null +++ b/src/api/system/menu/model/index.ts @@ -0,0 +1,49 @@ +/** + * 菜单 + */ +export interface Menu { + /** 菜单id */ + menuId?: number; + /** 上级id, 0是顶级 */ + parentId?: number; + /** 菜单名称 */ + title: string; + /** 菜单路由地址 */ + path: string; + /** 菜单组件地址 */ + component?: string; + /** 菜单类型, 0菜单, 1按钮 */ + menuType?: number; + /** 排序号 */ + sortNumber?: number; + /** 权限标识 */ + authority?: string; + /** 菜单图标 */ + icon?: string; + /** 是否隐藏, 0否,1是(仅注册路由不显示左侧菜单) */ + hide?: number; + /** 路由元信息 */ + meta?: string; + /** 创建时间 */ + createTime?: string; + /** 子菜单 */ + children?: Menu[]; + /** 打开方式 */ + openType?: number; + /** 权限树回显选中状态, 0未选中, 1选中 */ + checked?: boolean; +} + +/** + * 菜单搜索参数 + */ +export interface MenuParam { + /** 菜单名称 */ + title?: string; + /** 菜单路由地址 */ + path?: string; + /** 权限标识 */ + authority?: string; + /** 上级id */ + parentId?: number; +} diff --git a/src/api/system/operation-record/index.ts b/src/api/system/operation-record/index.ts new file mode 100644 index 0000000..7fb288e --- /dev/null +++ b/src/api/system/operation-record/index.ts @@ -0,0 +1,31 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { OperationRecord, OperationRecordParam } from './model'; + +/** + * 分页查询操作日志 + */ +export async function pageOperationRecords(params: OperationRecordParam) { + const res = await request.get>>( + '/system/operation-record/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询操作日志列表 + */ +export async function listOperationRecords(params?: OperationRecordParam) { + const res = await request.get>( + '/system/operation-record', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/operation-record/model/index.ts b/src/api/system/operation-record/model/index.ts new file mode 100644 index 0000000..c7e9c7f --- /dev/null +++ b/src/api/system/operation-record/model/index.ts @@ -0,0 +1,61 @@ +import { PageParam } from '@/api'; + +/** + * 操作日志 + */ +export interface OperationRecord { + /** 操作日志id */ + id?: number; + /** 用户id */ + userId?: number; + /** 操作模块 */ + module: string; + /** 操作功能 */ + description: string; + /** 请求地址 */ + url: string; + /** 请求方式 */ + requestMethod: string; + /** 调用方法 */ + method: string; + /** 请求参数 */ + params: string; + /** 返回结果 */ + result: string; + /** 异常信息 */ + error: string; + /** 消耗时间, 单位毫秒 */ + spendTime: number; + /** 操作系统 */ + os: string; + /** 设备名称 */ + device: string; + /** 浏览器类型 */ + browser: string; + /** ip地址 */ + ip: string; + /** 状态, 0成功, 1异常 */ + status: number; + /** 操作时间 */ + createTime: string; + /** 用户昵称 */ + nickname: string; + /** 用户账号 */ + username: string; +} + +/** + * 操作日志搜索条件 + */ +export interface OperationRecordParam extends PageParam { + /** 用户昵称 */ + username?: string; + /** 操作模块 */ + module?: string; + /** 开始时间 */ + createTimeStart?: string; + /** 截至时间 */ + createTimeEnd?: string; + /** 状态 */ + status?: number; +} diff --git a/src/api/system/organization/index.ts b/src/api/system/organization/index.ts new file mode 100644 index 0000000..bf374b7 --- /dev/null +++ b/src/api/system/organization/index.ts @@ -0,0 +1,72 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Organization, OrganizationParam } from './model'; + +/** + * 分页查询机构 + */ +export async function pageOrganizations(params: OrganizationParam) { + const res = await request.get>>( + '/system/organization/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询机构列表 + */ +export async function listOrganizations(params?: OrganizationParam) { + const res = await request.get>( + '/system/organization', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加机构 + */ +export async function addOrganization(data: Organization) { + const res = await request.post>( + '/system/organization', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改机构 + */ +export async function updateOrganization(data: Organization) { + const res = await request.put>( + '/system/organization', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除机构 + */ +export async function removeOrganization(id?: number) { + const res = await request.delete>( + '/system/organization/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/organization/model/index.ts b/src/api/system/organization/model/index.ts new file mode 100644 index 0000000..4b2deda --- /dev/null +++ b/src/api/system/organization/model/index.ts @@ -0,0 +1,35 @@ +import { PageParam } from '@/api'; + +/** + * 机构 + */ +export interface Organization { + /** 机构id */ + organizationId?: number; + /** 上级id, 0是顶级 */ + parentId?: number; + /** 机构名称 */ + organizationName?: string; + /** 机构全称 */ + organizationFullName?: string; + /** 机构代码 */ + organizationCode?: string; + /** 机构类型(字典) */ + organizationType?: string; + /** 排序号 */ + sortNumber?: number; + /** 备注 */ + comments?: string; + /** 创建时间 */ + createTime?: string; + /** 机构类型名称 */ + organizationTypeName?: string; +} + +/** + * 机构搜索条件 + */ +export interface OrganizationParam extends PageParam { + /** 机构名称 */ + organizationName?: string; +} diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts new file mode 100644 index 0000000..9a89031 --- /dev/null +++ b/src/api/system/role/index.ts @@ -0,0 +1,104 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Role, RoleParam } from './model'; +import type { Menu } from '../menu/model'; + +/** + * 分页查询角色 + */ +export async function pageRoles(params: RoleParam) { + const res = await request.get>>( + '/system/role/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询角色列表 + */ +export async function listRoles(params?: RoleParam) { + const res = await request.get>('/system/role', { + params + }); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加角色 + */ +export async function addRole(data: Role) { + const res = await request.post>('/system/role', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改角色 + */ +export async function updateRole(data: Role) { + const res = await request.put>('/system/role', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除角色 + */ +export async function removeRole(id?: number) { + const res = await request.delete>('/system/role/' + id); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除角色 + */ +export async function removeRoles(data: (number | undefined)[]) { + const res = await request.delete>('/system/role/batch', { + data + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 获取角色分配的菜单 + */ +export async function listRoleMenus(roleId?: number) { + const res = await request.get>( + '/system/role-menu/' + roleId + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改角色菜单 + */ +export async function updateRoleMenus(roleId?: number, data?: number[]) { + const res = await request.put>( + '/system/role-menu/' + roleId, + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/role/model/index.ts b/src/api/system/role/model/index.ts new file mode 100644 index 0000000..ed10171 --- /dev/null +++ b/src/api/system/role/model/index.ts @@ -0,0 +1,29 @@ +import type { PageParam } from '@/api'; + +/** + * 角色 + */ +export interface Role { + /** 角色id */ + roleId?: number; + /** 角色标识 */ + roleCode?: string; + /** 角色名称 */ + roleName?: string; + /** 备注 */ + comments?: string; + /** 创建时间 */ + createTime?: string; +} + +/** + * 角色搜索条件 + */ +export interface RoleParam extends PageParam { + /** 角色名称 */ + roleName?: string; + /** 角色标识 */ + roleCode?: string; + /** 备注 */ + comments?: string; +} diff --git a/src/api/system/user-file/index.ts b/src/api/system/user-file/index.ts new file mode 100644 index 0000000..1187f92 --- /dev/null +++ b/src/api/system/user-file/index.ts @@ -0,0 +1,79 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { UserFile, UserFileParam } from './model'; + +/** + * 分页查询用户文件 + */ +export async function pageUserFiles(params: UserFileParam) { + const res = await request.get>>( + '/system/user-file/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询用户文件列表 + */ +export async function listUserFiles(params: UserFileParam) { + const res = await request.get>('/system/user-file', { + params + }); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加用户文件 + */ +export async function addUserFile(data: UserFile) { + const res = await request.post>('/system/user-file', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改用户文件 + */ +export async function updateUserFile(data: UserFile) { + const res = await request.put>('/system/user-file', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除用户文件 + */ +export async function removeUserFile(id?: number) { + const res = await request.delete>( + '/system/user-file/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除用户文件 + */ +export async function removeUserFiles(data: (number | undefined)[]) { + const res = await request.delete>( + '/system/user-file/batch', + { data } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/user-file/model/index.ts b/src/api/system/user-file/model/index.ts new file mode 100644 index 0000000..c84fbc1 --- /dev/null +++ b/src/api/system/user-file/model/index.ts @@ -0,0 +1,41 @@ +import { PageParam } from '@/api'; + +/** + * 用户文件 + */ +export interface UserFile { + /** id */ + id?: number; + /** 用户id */ + userId?: number; + /** 文件名称 */ + name?: string; + /** 是否是文件夹, 0否, 1是 */ + isDirectory?: number; + /** 上级id */ + parentId?: number; + /** 文件存储路径 */ + path?: string; + /** 文件大小 */ + length?: number; + /** 文件类型 */ + contentType?: string; + /** 上传时间 */ + createTime?: string; + /** 文件访问地址 */ + url?: string; + /** 文件缩略图访问地址 */ + thumbnail?: string; + /** 文件下载地址 */ + downloadUrl?: string; +} + +/** + * 用户文件查询参数 + */ +export interface UserFileParam extends PageParam { + /** 文件名称 */ + name?: string; + /** 上级id */ + parentId?: number; +} diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts new file mode 100644 index 0000000..c5f594e --- /dev/null +++ b/src/api/system/user/index.ts @@ -0,0 +1,148 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { User, UserParam } from './model'; + +/** + * 分页查询用户 + */ +export async function pageUsers(params: UserParam) { + const res = await request.get>>( + '/system/user/page', + { params } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询用户列表 + */ +export async function listUsers(params?: UserParam) { + const res = await request.get>('/system/user', { + params + }); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询用户 + */ +export async function getUser(id: number) { + const res = await request.get>('/system/user/' + id); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加用户 + */ +export async function addUser(data: User) { + const res = await request.post>('/system/user', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改用户 + */ +export async function updateUser(data: User) { + const res = await request.put>('/system/user', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除用户 + */ +export async function removeUser(id?: number) { + const res = await request.delete>('/system/user/' + id); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除用户 + */ +export async function removeUsers(data: (number | undefined)[]) { + const res = await request.delete>('/system/user/batch', { + data + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改用户状态 + */ +export async function updateUserStatus(userId?: number, status?: number) { + const res = await request.put>('/system/user/status', { + userId, + status + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 重置用户密码 + */ +export async function updateUserPassword(userId?: number, password = '123456') { + const res = await request.put>('/system/user/password', { + userId, + password + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 导入用户 + */ +export async function importUsers(file: File) { + const formData = new FormData(); + formData.append('file', file); + const res = await request.post>( + '/system/user/import', + formData + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 检查用户是否存在 + */ +export async function checkExistence( + field: string, + value: string, + id?: number +) { + const res = await request.get>('/system/user/existence', { + params: { field, value, id } + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/user/model/index.ts b/src/api/system/user/model/index.ts new file mode 100644 index 0000000..0755024 --- /dev/null +++ b/src/api/system/user/model/index.ts @@ -0,0 +1,77 @@ +import type { PageParam } from '@/api'; +import type { Role } from '../../role/model'; +import type { Menu } from '../../menu/model'; + +/** + * 用户 + */ +export interface User { + /** 用户id */ + userId?: number; + /** 账号 */ + username?: string; + /** 密码 */ + password?: string; + /** 昵称 */ + nickname?: string; + /** 头像 */ + avatar?: string; + /** 性别(字典) */ + sex?: string; + /** 手机号 */ + phone?: string; + /** 邮箱 */ + email?: string; + /** 出生日期 */ + birthday?: string; + /** 个人简介 */ + introduction?: string; + /** 机构id */ + organizationId?: number; + /** 状态, 0正常, 1冻结 */ + status?: number; + /** 性别名称 */ + sexName?: string; + /** 机构名称 */ + organizationName?: string; + /** 角色列表 */ + roles?: Role[]; + /** 权限列表 */ + authorities?: Menu[]; + /** 创建时间 */ + createTime?: string; + /** 街道地址 */ + address?: string; + /** 联系电话前缀 */ + tellPre?: string; + /** 联系电话 */ + tell?: string; +} + +/** + * 用户搜索条件 + */ +export interface UserParam extends PageParam { + /** 账号 */ + username?: string; + /** 昵称 */ + nickname?: string; + /** 性别(字典) */ + sex?: string; + /** 手机号 */ + phone?: string; + /** 状态 */ + status?: number; + /** 机构id */ + organizationId?: number; + /** 性别名称 */ + sexName?: string; + /** 机构名称 */ + organizationName?: string; + /** 邮箱 */ + email?: string; + /** 创建时间开始时间 */ + createTimeStart?: string; + /** 创建时间截止时间 */ + createTimeEnd?: string; +} diff --git a/src/as-needed.ts b/src/as-needed.ts new file mode 100644 index 0000000..3fa86d2 --- /dev/null +++ b/src/as-needed.ts @@ -0,0 +1,8 @@ +/** 按需引入 */ +import type { App, Plugin } from 'vue'; + +const installer: Plugin = { + install(_app: App) {} +}; + +export default installer; diff --git a/src/assets/login-bg.png b/src/assets/login-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..787837a256587e81c2ffd3abcac0324acff7a718 GIT binary patch literal 59273 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 zOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFhKNUFhN-a z0I;M1003Ch0000iX#fBKmNWnW081JG0DvV8006*}1^@tHNdo`?u%rP109euh001m$ z0001%GynhqOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFh04!+$03i13KmY&$06>tx z^#&7^MX;m+003Ch0000iX#fBKmNWnW081JG0DvV8006*}1^@tHNdo`?u%rP109euh z001m$0001%GynhqOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFh04!+$005RW0I^>O z0ssI20D}CjH<+L-0svUj0000iX#fBKmNWnW081JG0DvV8006*}1^@tHNdo`?u%rP1 z09euh001m$0001%GynhqOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFh04!+$005RW z000pCbszu$001D!-+F@y$|6|O0000iX#fBKmNWnW081JG0DvV8006*}1^@tHNdo`? zu%rP109euh001m$0001%GynhqOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFh04!+$ z005RW0000>8i3fZ0|5X4002S$)*DPv76AY(X#fBKmNWnW081JG0DvV8006*}1^@tH zNdo`?u%rP109euh001m$0001%GynhqOBw(GfF%t80Kk$4003Y~0{{T9qyYc`SkeFh z04!+$005RW0000>8UO%@{W=f;0000G8UO%*B@ICA*MR^4004j>f9nk8UO%*B@F-o#C{zJ000002=ceyV1lv;mNWnW081JG z0DvV8006*}1^@tHNdo`?u%rP109euh001m$0001%GynhqOBw(GfF%t80Kk$4003Y~ z0{{T9qyYc`SkeFh04!+$005RW0000>8UO%*B@F-oz>)?a_U+)rZ6FH3@Ei<6rKEtl z3_O?yrUe~DT5=INZHtLT0hM3j<;IRPAvXaIoS=3HXQgl)A(8Cn833ef=Yu*Su~ z|B>5JqMrUvjXWiQ0}u@Wk2;N9d{2ipmpJ{i8fFea_e2ALXb=sX!B9_k{k~x+c~MG< z<;dZqk%MpmdL|kGM1yGfK+AFeTw&h6lD>QRP>WS1pj)B=Ks1Pkds?ZtxlnRT`%U@X z5kw3LphuzsKs1PkjbeCkOwe*v-2ik?GysSO(QqTzt6<1;dPp0t!y)V`0lg6o0HQ%O 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
ktZRV%ZDsZ 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

#$xnZz?6^Gpb>SZi| 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 literal 0 KcmV+b0RR6000031 diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..3359d58 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/ByteMdEditor/index.vue b/src/components/ByteMdEditor/index.vue new file mode 100644 index 0000000..d1de8a1 --- /dev/null +++ b/src/components/ByteMdEditor/index.vue @@ -0,0 +1,132 @@ + + + + + + diff --git a/src/components/ByteMdViewer/index.vue b/src/components/ByteMdViewer/index.vue new file mode 100644 index 0000000..bd3d45e --- /dev/null +++ b/src/components/ByteMdViewer/index.vue @@ -0,0 +1,108 @@ + + + + diff --git a/src/components/DictData/index.vue b/src/components/DictData/index.vue new file mode 100644 index 0000000..c879d3d --- /dev/null +++ b/src/components/DictData/index.vue @@ -0,0 +1,130 @@ + + + + diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue new file mode 100644 index 0000000..391ab4a --- /dev/null +++ b/src/components/FileUpload/index.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue new file mode 100644 index 0000000..dc73615 --- /dev/null +++ b/src/components/ImageUpload/index.vue @@ -0,0 +1,163 @@ + + + diff --git a/src/components/ProForm/components/pro-form-footer.vue b/src/components/ProForm/components/pro-form-footer.vue new file mode 100644 index 0000000..d377ab1 --- /dev/null +++ b/src/components/ProForm/components/pro-form-footer.vue @@ -0,0 +1,49 @@ + + + + diff --git a/src/components/ProForm/components/pro-form-item.vue b/src/components/ProForm/components/pro-form-item.vue new file mode 100644 index 0000000..17f3bd4 --- /dev/null +++ b/src/components/ProForm/components/pro-form-item.vue @@ -0,0 +1,800 @@ + + + + diff --git a/src/components/ProForm/index.vue b/src/components/ProForm/index.vue new file mode 100644 index 0000000..80089cb --- /dev/null +++ b/src/components/ProForm/index.vue @@ -0,0 +1,237 @@ + + + + diff --git a/src/components/ProForm/types.ts b/src/components/ProForm/types.ts new file mode 100644 index 0000000..5450c96 --- /dev/null +++ b/src/components/ProForm/types.ts @@ -0,0 +1,45 @@ +import type { ElColProps, ElFormItemProps } from 'ele-admin-plus/es/ele-app/el'; + +/** + * 下拉选项数据 + */ +export interface ProFormItemOption { + /** 循环key */ + key?: keyof any; + /** 选中值 */ + value: string | number; + /** 显示文本 */ + label?: string; + /** 子级 */ + children?: ProFormItemOption[]; + /** 是否禁用 */ + disabled?: boolean; +} + +/** + * 表单每一项 + */ +export interface ProFormItemProps { + /** 循环key */ + key?: keyof any; + /** 字段名 */ + prop: string; + /** 标题 */ + label?: string; + /** 是否为必填项 */ + required?: boolean; + /** ElFormItem属性 */ + itemProps?: ElFormItemProps; + /** ElFormItem插槽 */ + itemSlots?: Record; + /** 组件类型 */ + type?: string; + /** 组件属性 */ + props?: Record; + /** 组件插槽 */ + slots?: Record; + /** 下拉[单选|多选]选项 */ + options?: ProFormItemOption[]; + /** ElCol属性 */ + colProps?: ElColProps; +} diff --git a/src/components/ProForm/util.ts b/src/components/ProForm/util.ts new file mode 100644 index 0000000..896062c --- /dev/null +++ b/src/components/ProForm/util.ts @@ -0,0 +1,140 @@ +/** + * 表单数据类型为字符串的组件类型 + */ +export const stringTypes = [ + 'input', + 'textarea', + 'date', + 'datetime', + 'time', + 'timeSelect', + 'autocomplete', + 'editor' +]; + +/** + * 表单数据类型为数字的组件类型 + */ +export const numberTypes = [ + 'select', + 'radio', + 'radioButton', + 'checkbox', + 'checkboxButton', + 'switch', + 'inputNumber', + 'rate', + 'slider', + 'tableSelect' +]; + +/** + * 表单数据类型为数组的组件类型 + */ +export const arrayTypes = [ + 'multipleSelect', + 'checkbox', + 'checkboxButton', + 'daterange', + 'datetimerange', + 'timerange', + 'cascader', + 'sliderRange', + 'treeMultipleSelect', + 'virtualTreeMultipleSelect', + 'tableMultipleSelect', + 'multipleCheckCard', + 'editTag', + 'dictCheckbox', + 'dictMultipleSelect', + 'regions' +]; + +/** + * 表单验证规则使用blur触发的组件类型 + */ +export const blurTypes = ['input', 'textarea']; + +/** + * 选择类型的组件类型 + */ +export const selectTypes = [ + 'select', + 'multipleSelect', + 'radio', + 'radioButton', + 'checkbox', + 'checkboxButton', + 'date', + 'datetime', + 'daterange', + 'datetimerange', + 'time', + 'timerange', + 'timeSelect', + 'switch', + 'cascader', + 'rate', + 'slider', + 'sliderRange', + 'treeSelect', + 'tableMultipleSelect', + 'virtualTreeSelect', + 'virtualTreeMultipleSelect', + 'tableSelect', + 'tableMultipleSelect', + 'checkCard', + 'multipleCheckCard', + 'dictRadio', + 'dictSelect', + 'dictCheckbox', + 'dictMultipleSelect', + 'regions' +]; + +/** + * 上传类型的组件类型 + */ +export const uploadTypes = ['imageUpload', 'fileUpload']; + +/** + * 获取验证规则值类型 + * @param type 组件类型 + */ +export function getRuleType(type?: string) { + if (type) { + if (arrayTypes.includes(type)) { + return 'array'; + } + if (numberTypes.includes(type)) { + return 'number'; + } + } + return 'string'; +} + +/** + * 获取验证规则触发类型 + * @param type 组件类型 + */ +export function getRuleTrigger(type?: string) { + return type && blurTypes.includes(type) ? 'blur' : 'change'; +} + +/** + * 获取验证规则提示文本 + * @param type 组件类型 + * @param label 表单项标题 + */ +export function getRuleMessage(type?: string, label?: string) { + const text = label ?? ''; + if (type) { + if (selectTypes.includes(type)) { + return `请选择${text}`; + } + if (uploadTypes.includes(type)) { + return `请上传${text}`; + } + } + return `请输入${text}`; +} diff --git a/src/components/RedirectLayout/index.vue b/src/components/RedirectLayout/index.vue new file mode 100644 index 0000000..d2260b4 --- /dev/null +++ b/src/components/RedirectLayout/index.vue @@ -0,0 +1,32 @@ + + + + + + diff --git a/src/components/RegionsSelect/index.vue b/src/components/RegionsSelect/index.vue new file mode 100644 index 0000000..885ac56 --- /dev/null +++ b/src/components/RegionsSelect/index.vue @@ -0,0 +1,149 @@ + + + + + + diff --git a/src/components/RegionsSelect/util.ts b/src/components/RegionsSelect/util.ts new file mode 100644 index 0000000..9af1bac --- /dev/null +++ b/src/components/RegionsSelect/util.ts @@ -0,0 +1,40 @@ +import request from '@/utils/request'; +const BASE_URL = import.meta.env.BASE_URL; +let reqPromise: Promise; + +/** + * 省市区数据 + */ +export interface RegionsData { + label: string; + value: string; + children?: { + value: string; + label: string; + children?: { + value: string; + label: string; + }[]; + }[]; +} + +/** + * 获取省市区数据 + */ +export function getRegionsData() { + if (!reqPromise) { + reqPromise = new Promise((resolve, reject) => { + request + .get(BASE_URL + 'json/regions-data.json', { + baseURL: '' + }) + .then((res) => { + resolve(res.data ?? []); + }) + .catch((e) => { + reject(e); + }); + }); + } + return reqPromise; +} diff --git a/src/components/RouterLayout/index.vue b/src/components/RouterLayout/index.vue new file mode 100644 index 0000000..3cb6ae0 --- /dev/null +++ b/src/components/RouterLayout/index.vue @@ -0,0 +1,30 @@ + + + + + + diff --git a/src/components/TinymceEditor/index.vue b/src/components/TinymceEditor/index.vue new file mode 100644 index 0000000..6e85c56 --- /dev/null +++ b/src/components/TinymceEditor/index.vue @@ -0,0 +1,249 @@ + + + + + + + + diff --git a/src/components/TinymceEditor/util.ts b/src/components/TinymceEditor/util.ts new file mode 100644 index 0000000..959b4d5 --- /dev/null +++ b/src/components/TinymceEditor/util.ts @@ -0,0 +1,254 @@ +import type { + Editor as TinyMCEEditor, + EditorEvent, + RawEditorSettings +} from 'tinymce'; +const BASE_URL = import.meta.env.BASE_URL; + +/** 默认加载插件 */ +const PLUGINS: string = [ + 'code', + 'preview', + 'fullscreen', + 'paste', + 'searchreplace', + //'save', + //'autosave', + 'link', + 'autolink', + 'image', + 'media', + 'table', + 'codesample', + 'lists', + 'advlist', + 'hr', + 'charmap', + 'emoticons', + 'anchor', + 'directionality', + 'pagebreak', + 'quickbars', + 'nonbreaking', + 'visualblocks', + 'visualchars', + 'wordcount' +].join(' '); + +/** 默认工具栏布局 */ +const TOOLBAR: string = [ + 'fullscreen', + 'preview', + 'code', + '|', + 'undo', + 'redo', + '|', + 'forecolor', + 'backcolor', + '|', + 'bold', + 'italic', + 'underline', + 'strikethrough', + '|', + 'alignleft', + 'aligncenter', + 'alignright', + 'alignjustify', + '|', + 'outdent', + 'indent', + '|', + 'numlist', + 'bullist', + '|', + 'formatselect', + 'fontselect', + 'fontsizeselect', + '|', + 'link', + 'image', + 'media', + 'emoticons', + 'charmap', + 'anchor', + 'pagebreak', + 'codesample', + '|', + 'ltr', + 'rtl' +].join(' '); + +/** 默认配置 */ +export const DEFAULT_CONFIG: RawEditorSettings = { + height: 300, + branding: false, + skin_url: BASE_URL + 'tinymce/skins/ui/oxide', + content_css: BASE_URL + 'tinymce/skins/content/default/content.min.css', + language_url: BASE_URL + 'tinymce/langs/zh_CN.js', + language: 'zh_CN', + plugins: PLUGINS, + toolbar: TOOLBAR, + draggable_modal: true, + toolbar_mode: 'sliding', + quickbars_insert_toolbar: '', + convert_urls: false, + images_upload_handler: (blobInfo: any, success: any, error: any) => { + if (blobInfo.blob().size / 1024 > 400) { + error('大小不能超过 400KB'); + return; + } + success('data:image/jpeg;base64,' + blobInfo.base64()); + }, + file_picker_types: 'media image file', + file_picker_callback: () => {} +}; + +/** 暗黑主题配置 */ +export const DARK_CONFIG: RawEditorSettings = { + skin_url: BASE_URL + 'tinymce/skins/ui/oxide-dark', + content_css: BASE_URL + 'tinymce/skins/content/dark/content.min.css' +}; + +/** 支持监听的事件 */ +export const VALID_EVENTS = [ + 'onActivate', + 'onAddUndo', + 'onBeforeAddUndo', + 'onBeforeExecCommand', + 'onBeforeGetContent', + 'onBeforeRenderUI', + 'onBeforeSetContent', + 'onBeforePaste', + 'onBlur', + 'onChange', + 'onClearUndos', + 'onClick', + 'onContextMenu', + 'onCopy', + 'onCut', + 'onDblclick', + 'onDeactivate', + 'onDirty', + 'onDrag', + 'onDragDrop', + 'onDragEnd', + 'onDragGesture', + 'onDragOver', + 'onDrop', + 'onExecCommand', + 'onFocus', + 'onFocusIn', + 'onFocusOut', + 'onGetContent', + 'onHide', + 'onInit', + 'onKeyDown', + 'onKeyPress', + 'onKeyUp', + 'onLoadContent', + 'onMouseDown', + 'onMouseEnter', + 'onMouseLeave', + 'onMouseMove', + 'onMouseOut', + 'onMouseOver', + 'onMouseUp', + 'onNodeChange', + 'onObjectResizeStart', + 'onObjectResized', + 'onObjectSelected', + 'onPaste', + 'onPostProcess', + 'onPostRender', + 'onPreProcess', + 'onProgressState', + 'onRedo', + 'onRemove', + 'onReset', + 'onSaveContent', + 'onSelectionChange', + 'onSetAttrib', + 'onSetContent', + 'onShow', + 'onSubmit', + 'onUndo', + 'onVisualAid' +]; + +let unique = 0; + +/** + * 生成编辑器 id + */ +export function uuid(prefix: string): string { + const time = Date.now(); + const random = Math.floor(Math.random() * 1000000000); + unique++; + return prefix + '_' + random + unique + String(time); +} + +/** + * 绑定事件 + */ +export function bindHandlers( + initEvent: EditorEvent, + listeners: Record, + editor: TinyMCEEditor +): void { + const validEvents = VALID_EVENTS.map((event) => event.toLowerCase()); + Object.keys(listeners) + .filter((key: string) => validEvents.includes(key.toLowerCase())) + .forEach((key: string) => { + const handler = listeners[key]; + if (typeof handler === 'function') { + if (key === 'onInit') { + handler(initEvent, editor); + } else { + editor.on(key.substring(2), (e: EditorEvent) => + handler(e, editor) + ); + } + } + }); +} + +/** + * 弹出提示框 + */ +export function openAlert( + editor: TinyMCEEditor | null, + option: AlertOption = {} +) { + editor?.windowManager?.open?.({ + title: option.title ?? '提示', + body: { + type: 'panel', + items: [ + { + type: 'htmlpanel', + html: `

${option.content ?? ''}

` + } + ] + }, + buttons: [ + { + type: 'cancel', + name: 'closeButton', + text: '确定', + primary: true + } + ] + }); +} + +/** + * 弹出提示框参数 + */ +export interface AlertOption { + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; +} diff --git a/src/components/icons/AlipayFilled.vue b/src/components/icons/AlipayFilled.vue new file mode 100644 index 0000000..745398f --- /dev/null +++ b/src/components/icons/AlipayFilled.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/QqFilled.vue b/src/components/icons/QqFilled.vue new file mode 100644 index 0000000..925fdf1 --- /dev/null +++ b/src/components/icons/QqFilled.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/WechatFilled.vue b/src/components/icons/WechatFilled.vue new file mode 100644 index 0000000..6b5a8af --- /dev/null +++ b/src/components/icons/WechatFilled.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts new file mode 100644 index 0000000..64da9d0 --- /dev/null +++ b/src/components/icons/index.ts @@ -0,0 +1,4 @@ +export * from 'ele-admin-plus/es/icons'; +export { default as AlipayFilled } from './AlipayFilled.vue'; +export { default as QqFilled } from './QqFilled.vue'; +export { default as WechatFilled } from './WechatFilled.vue'; diff --git a/src/config/setting.ts b/src/config/setting.ts new file mode 100644 index 0000000..c48d11f --- /dev/null +++ b/src/config/setting.ts @@ -0,0 +1,36 @@ +/** 接口地址 */ +export const API_BASE_URL: string = import.meta.env.VITE_API_URL; + +/** 项目名称 */ +export const PROJECT_NAME: string = import.meta.env.VITE_APP_NAME; + +/** 不需要登录的路由 */ +export const WHITE_LIST: string[] = ['/login', '/forget']; + +/** 首页路径, 为空则取第一个菜单的地址 */ +export const HOME_PATH: string | undefined = void 0; + +/** 外层布局的路由地址 */ +export const LAYOUT_PATH = '/'; + +/** 刷新路由的路由地址 */ +export const REDIRECT_PATH = '/redirect'; + +/** 开启页签栏后是否缓存组件 */ +//export const TAB_KEEP_ALIVE = !import.meta.env.DEV; +export const TAB_KEEP_ALIVE = true; + +/** token本地缓存的名称 */ +export const TOKEN_CACHE_NAME = 'token'; + +/** 主题配置本地缓存的名称 */ +export const THEME_CACHE_NAME = 'theme'; + +/** i18n本地缓存的名称 */ +export const I18N_CACHE_NAME = 'i18n-lang'; + +/** 高德地图key, 请到高德地图官网自行申请 */ +export const MAP_KEY = '006d995d433058322319fa797f2876f5'; + +/** EleAdminPlus授权码 */ +export const LICENSE_CODE = import.meta.env.VITE_LICENSE; diff --git a/src/global-import.ts b/src/global-import.ts new file mode 100644 index 0000000..b7f145b --- /dev/null +++ b/src/global-import.ts @@ -0,0 +1,17 @@ +/** 全局安装 */ +import type { App, Plugin } from 'vue'; +import ElementPlus from 'element-plus/es'; +import EleAdminPlus from 'ele-admin-plus/es'; +import 'element-plus/theme-chalk/src/index.scss'; +import 'ele-admin-plus/es/style/index.scss'; +import 'cropperjs/dist/cropper.css'; +import 'xgplayer/dist/index.min.css'; + +const installer: Plugin = { + install(app: App) { + app.use(ElementPlus); + app.use(EleAdminPlus); + } +}; + +export default installer; diff --git a/src/i18n/index.ts b/src/i18n/index.ts new file mode 100644 index 0000000..6f21465 --- /dev/null +++ b/src/i18n/index.ts @@ -0,0 +1,19 @@ +/** + * 国际化配置 + */ +import { createI18n } from 'vue-i18n'; +import { getCacheLang } from './use-locale'; +import { zh_CN } from './lang/zh_CN'; +import { zh_TW } from './lang/zh_TW'; +import { en } from './lang/en'; + +const messages = { zh_CN, zh_TW, en }; + +const i18n = createI18n({ + messages, + legacy: false, + silentTranslationWarn: true, + locale: getCacheLang() +}); + +export default i18n; diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts new file mode 100644 index 0000000..921ced6 --- /dev/null +++ b/src/i18n/lang/en.ts @@ -0,0 +1,118 @@ +import type { Locale } from './zh_CN'; + +export const en: Locale = { + layout: { + home: 'Home', + header: { + profile: 'Profile', + password: 'Password', + logout: 'SignOut' + }, + footer: { + website: 'Website', + document: 'Document', + authorization: 'Authorization', + copyright: 'Copyright © 2023 Wuhan EClouds Technology Co., Ltd' + }, + logout: { + title: 'Confirm', + message: 'Are you sure you want to log out?' + }, + tabs: { + reload: 'Refresh', + close: 'Close', + closeLeft: 'Close Left', + closeRight: 'Close Right', + closeOther: 'Close Other', + closeAll: 'Close All', + fullscreen: 'Fullscreen', + fullscreenExit: 'Fullscreen' + }, + setting: { + title: 'Theme Setting', + sideStyles: { + dark: 'Dark Sidebar', + light: 'Light Sidebar' + }, + headStyles: { + light: 'Light Header', + dark: 'Dark Header', + primary: 'Primary Header' + }, + layoutStyles: { + side: 'Side Menu Layout', + top: 'Top Menu Layout', + mix: 'Mix Menu Layout' + }, + colors: { + default: 'Daybreak Blue', + dust: 'Dust Blue', + sunset: 'Sunset Orange', + volcano: 'Volcano', + purple: 'Golden Purple', + green: 'Polar Green', + geekblue: 'Geek Blue' + }, + darkMode: 'Dark Mode', + roundedTheme: 'Rounded Theme', + layout: 'Navigation Mode', + sidebarLayout: 'Sidebar Double Menu', + fluid: 'Full Body Width', + other: 'Other Setting', + fixedHeader: 'Fixed Header', + fixedSidebar: 'Fixed Sidebar', + fixedBody: 'Fixed Body', + logoInHeader: 'Logo In Header', + colorfulIcon: 'Colorful Icon', + uniqueOpened: 'Menu Unique Open', + responsive: 'Responsive', + weakMode: 'Weak Mode', + showTabs: 'Show Tabs', + fixedHome: 'Fixed Home Tab', + tabStyle: 'Tab Style', + tabStyles: { + default: 'Default', + dot: 'Dot', + card: 'Card' + }, + transitionName: 'Transition', + transitions: { + slideRight: 'Slide Right', + slideBottom: 'Slide Bottom', + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + fade: 'Fade' + }, + reset: 'Reset' + } + }, + login: { + title: 'User Login', + username: 'please input username', + password: 'please input password', + code: 'please input code', + remember: 'remember', + login: 'Login', + passwordType: 'Password', + qrcodeType: 'QR Code', + refreshQrcode: 'Refresh' + }, + list: { + // 基础列表 + basic: { + table: { + avatar: 'Avatar', + username: 'Username', + nickname: 'Nickname', + organizationName: 'Organization', + phone: 'Phone', + email: 'Email', + roles: 'Roles', + sexName: 'Sex', + createTime: 'CreateTime', + status: 'Status', + action: 'Action' + } + } + } +}; diff --git a/src/i18n/lang/zh_CN.ts b/src/i18n/lang/zh_CN.ts new file mode 100644 index 0000000..7943798 --- /dev/null +++ b/src/i18n/lang/zh_CN.ts @@ -0,0 +1,118 @@ +export const zh_CN = { + layout: { + home: '主页', + header: { + profile: '个人中心', + password: '修改密码', + logout: '退出登录' + }, + footer: { + website: '官网', + document: '文档', + authorization: '授权', + copyright: 'Copyright © 2023 武汉易云智科技有限公司' + }, + logout: { + title: '系统提示', + message: '确定要退出登录吗?' + }, + tabs: { + reload: '刷新当前页签', + close: '关闭当前页签', + closeLeft: '关闭左侧页签', + closeRight: '关闭右侧页签', + closeOther: '关闭其它页签', + closeAll: '关闭全部页签', + fullscreen: '内容区域全屏', + fullscreenExit: '退出内容全屏' + }, + setting: { + title: '主题风格设置', + sideStyles: { + dark: '暗色侧栏', + light: '亮色侧栏' + }, + headStyles: { + light: '亮色顶栏', + dark: '暗色顶栏', + primary: '主色顶栏' + }, + layoutStyles: { + side: '左侧菜单布局', + top: '顶部菜单布局', + mix: '混合菜单布局' + }, + colors: { + default: '拂晓蓝', + dust: '薄暮', + sunset: '日暮', + volcano: '火山', + purple: '酱紫', + green: '极光绿', + geekblue: '极客蓝' + }, + darkMode: '开启暗黑模式', + roundedTheme: '开启圆角主题', + layout: '导航模式', + sidebarLayout: '侧栏双排菜单', + fluid: '内容区域铺满', + other: '其它配置', + fixedHeader: '固定顶栏区域', + fixedSidebar: '固定侧栏区域', + fixedBody: '固定主体区域', + logoInHeader: 'Logo置于顶栏', + colorfulIcon: '侧栏彩色图标', + uniqueOpened: '侧栏排他展开', + responsive: '移动端响应式', + weakMode: '开启色弱模式', + showTabs: '开启多页签栏', + fixedHome: '固定主页页签', + tabStyle: '页签显示风格', + tabStyles: { + default: '默认', + dot: '圆点', + card: '卡片' + }, + transitionName: '路由切换动画', + transitions: { + slideRight: '滑动消退', + slideBottom: '底部消退', + zoomIn: '放大渐变', + zoomOut: '缩小渐变', + fade: '淡入淡出' + }, + reset: '重置' + } + }, + login: { + title: '用户登录', + username: '请输入登录账号', + password: '请输入登录密码', + code: '请输入验证码', + remember: '记住密码', + login: '登录', + passwordType: '密码登录', + qrcodeType: '扫码登录', + refreshQrcode: '刷新二维码' + }, + list: { + // 基础列表 + basic: { + table: { + avatar: '头像', + username: '用户账号', + nickname: '用户名', + organizationName: '组织机构', + phone: '手机号', + email: '邮箱', + roles: '角色', + sexName: '性别', + createTime: '创建时间', + status: '状态', + action: '操作' + } + } + } +}; + +export type Locale = typeof zh_CN; diff --git a/src/i18n/lang/zh_TW.ts b/src/i18n/lang/zh_TW.ts new file mode 100644 index 0000000..e8ee67c --- /dev/null +++ b/src/i18n/lang/zh_TW.ts @@ -0,0 +1,118 @@ +import type { Locale } from './zh_CN'; + +export const zh_TW: Locale = { + layout: { + home: '主頁', + header: { + profile: '個人中心', + password: '修改密碼', + logout: '安全登出' + }, + footer: { + website: '官網', + document: '檔案', + authorization: '授權', + copyright: 'Copyright © 2023 武漢易雲智科技有限公司' + }, + logout: { + title: '詢問', + message: '確定要登出嗎?' + }, + tabs: { + reload: '重繪當前頁簽', + close: '關閉當前頁簽', + closeLeft: '關閉左側頁簽', + closeRight: '關閉右側頁簽', + closeOther: '關閉其他頁簽', + closeAll: '關閉全部頁簽', + fullscreen: '內容區域全屏', + fullscreenExit: '退出內容全屏' + }, + setting: { + title: '主題風格設定', + sideStyles: { + dark: '暗色側欄', + light: '亮色側欄' + }, + headStyles: { + light: '亮色頂欄', + dark: '暗色頂欄', + primary: '主色頂欄' + }, + layoutStyles: { + side: '左側選單佈局', + top: '頂部選單佈局', + mix: '混合選單佈局' + }, + colors: { + default: '拂曉藍', + dust: '薄暮', + sunset: '日暮', + volcano: '火山', + purple: '醬紫', + green: '極光綠', + geekblue: '極客藍' + }, + darkMode: '開啟暗黑模式', + roundedTheme: '開啟圓角主題', + layout: '導航模式', + sidebarLayout: '側欄雙排選單', + fluid: '內容區域鋪滿', + other: '其它配寘', + fixedHeader: '固定頂欄區域', + fixedSidebar: '固定側欄區域', + fixedBody: '固定主體區域', + logoInHeader: 'Logo置於頂欄', + colorfulIcon: '側欄彩色圖標', + uniqueOpened: '側欄排他展開', + responsive: '移動端響應式', + weakMode: '開啟色弱模式', + showTabs: '開啟多頁簽欄', + fixedHome: '固定主頁頁簽', + tabStyle: '頁簽顯示風格', + tabStyles: { + default: '默認', + dot: '圓點', + card: '卡片' + }, + transitionName: '路由切換動畫', + transitions: { + slideRight: '滑動消退', + slideBottom: '底部消退', + zoomIn: '放大漸變', + zoomOut: '縮小漸變', + fade: '淡入淡出' + }, + reset: '重置' + } + }, + login: { + title: '用戶登錄', + username: '請輸入登入帳號', + password: '請輸入登入密碼', + code: '請輸入驗證碼', + remember: '記住密碼', + login: '登入', + passwordType: '密碼登入', + qrcodeType: '掃碼登入', + refreshQrcode: '重繪二維碼' + }, + list: { + // 基础列表 + basic: { + table: { + avatar: '頭像', + username: '用戶賬號', + nickname: '用戶名', + organizationName: '組織機構', + phone: '手機號', + email: '郵箱', + roles: '角色', + sexName: '性別', + createTime: '創建時間', + status: '狀態', + action: '操作' + } + } + } +}; diff --git a/src/i18n/use-locale.ts b/src/i18n/use-locale.ts new file mode 100644 index 0000000..f7a5673 --- /dev/null +++ b/src/i18n/use-locale.ts @@ -0,0 +1,71 @@ +/** + * ElementPlus/EleAdminPlus/Dayjs国际化配置 + */ +import { ref, watch } from 'vue'; +import { useI18n } from 'vue-i18n'; +import { useRouter } from 'vue-router'; +import type { RouteLocationNormalized } from 'vue-router'; +import { I18N_CACHE_NAME } from '@/config/setting'; +import { setPageTitle } from '@/utils/page-title-util'; +import type { Language } from 'element-plus/es/locale'; +import type { EleLocale } from 'ele-admin-plus/es/ele-config-provider/types'; +// ElementPlus +import zh_CN from 'element-plus/es/locale/lang/zh-cn'; +import zh_TW from 'element-plus/es/locale/lang/zh-tw'; +import en from 'element-plus/es/locale/lang/en'; +// EleAdminPlus +import eleZh_CN from 'ele-admin-plus/es/lang/zh_CN'; +import eleZh_TW from 'ele-admin-plus/es/lang/zh_TW'; +import eleEn from 'ele-admin-plus/es/lang/en_US'; +// Dayjs +import dayjs from 'dayjs'; +import 'dayjs/locale/zh-cn'; +import 'dayjs/locale/zh-tw'; +const elLocales = { zh_CN, zh_TW, en }; +const eleLocales = { zh_CN: eleZh_CN, zh_TW: eleZh_TW, en: eleEn }; + +export function useLocale() { + const { currentRoute } = useRouter(); + const { locale } = useI18n(); + const elLocale = ref(); + const eleLocale = ref(); + + watch( + locale, + () => { + elLocale.value = elLocales[locale.value]; + eleLocale.value = eleLocales[locale.value]; + dayjs.locale(locale.value.toLowerCase().replace(/_/g, '-')); + setPageTitle(getRouteTitle(currentRoute.value)); + }, + { immediate: true } + ); + return { elLocale, eleLocale }; +} + +/** + * 获取缓存的语言 + */ +export function getCacheLang() { + return localStorage.getItem(I18N_CACHE_NAME) || 'zh_CN'; +} + +/** + * 获取缓存的语言 + */ +export function setCacheLang(lang?: string) { + if (!lang) { + localStorage.removeItem(I18N_CACHE_NAME); + return; + } + localStorage.setItem(I18N_CACHE_NAME, lang); +} + +/** + * 获取路由对应的标题 + * @param route 路由 + */ +export function getRouteTitle(route: RouteLocationNormalized) { + const lang = route.meta?.lang ?? {}; + return lang[getCacheLang()] ?? route.meta?.title; +} diff --git a/src/layout/components/header-notice.vue b/src/layout/components/header-notice.vue new file mode 100644 index 0000000..0c2eeca --- /dev/null +++ b/src/layout/components/header-notice.vue @@ -0,0 +1,313 @@ + + + + + + diff --git a/src/layout/components/header-user.vue b/src/layout/components/header-user.vue new file mode 100644 index 0000000..c919cfd --- /dev/null +++ b/src/layout/components/header-user.vue @@ -0,0 +1,105 @@ + + + + + + diff --git a/src/layout/components/i18n-icon.vue b/src/layout/components/i18n-icon.vue new file mode 100644 index 0000000..6e1261b --- /dev/null +++ b/src/layout/components/i18n-icon.vue @@ -0,0 +1,61 @@ + + + + diff --git a/src/layout/components/page-footer.vue b/src/layout/components/page-footer.vue new file mode 100644 index 0000000..3c7cd6e --- /dev/null +++ b/src/layout/components/page-footer.vue @@ -0,0 +1,40 @@ + + + + diff --git a/src/layout/components/password-modal.vue b/src/layout/components/password-modal.vue new file mode 100644 index 0000000..a873d31 --- /dev/null +++ b/src/layout/components/password-modal.vue @@ -0,0 +1,159 @@ + + + + diff --git a/src/layout/components/setting-drawer.vue b/src/layout/components/setting-drawer.vue new file mode 100644 index 0000000..1f6a790 --- /dev/null +++ b/src/layout/components/setting-drawer.vue @@ -0,0 +1,883 @@ + + + + + + diff --git a/src/layout/index.vue b/src/layout/index.vue new file mode 100644 index 0000000..d1fb6d9 --- /dev/null +++ b/src/layout/index.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/src/layout/menu-icons.ts b/src/layout/menu-icons.ts new file mode 100644 index 0000000..421a855 --- /dev/null +++ b/src/layout/menu-icons.ts @@ -0,0 +1,2 @@ +/** 菜单用到的图标 */ +export * from '@/components/icons'; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..68fae92 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,24 @@ +import { createApp } from 'vue'; +import App from './App.vue'; +import store from './store'; +import router from './router'; +import permission from './utils/permission'; +import DictData from '@/components/DictData/index.vue'; +import i18n from './i18n'; +import installer from './as-needed'; +import 'element-plus/theme-chalk/display.css'; +import 'ele-admin-plus/es/style/nprogress.scss'; +import './styles/themes/rounded.scss'; +import './styles/themes/dark.scss'; +import './styles/index.scss'; + +const app = createApp(App); + +app.use(store); +app.use(router); +app.use(permission); +app.use(i18n); +app.use(installer); +app.component('DictData', DictData); + +app.mount('#app'); diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..95e789d --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,68 @@ +/** + * 路由配置 + */ +import NProgress from 'nprogress'; +import type { _RouteLocationBase } from 'vue-router'; +import { createRouter, createWebHistory } from 'vue-router'; +import { WHITE_LIST, REDIRECT_PATH, LAYOUT_PATH } from '@/config/setting'; +import { useUserStore } from '@/store/modules/user'; +import { getToken } from '@/utils/token-util'; +import { setPageTitle } from '@/utils/page-title-util'; +import { getRouteTitle } from '@/i18n/use-locale'; +import { routes, getMenuRoutes } from './routes'; + +NProgress.configure({ + speed: 200, + minimum: 0.02, + trickleSpeed: 200, + showSpinner: false +}); + +const router = createRouter({ + routes, + history: createWebHistory(), + scrollBehavior: () => { + return { top: 0 }; + } +}); + +/** + * 路由守卫 + */ +router.beforeEach(async (to) => { + if (!to.path.includes(REDIRECT_PATH)) { + NProgress.start(); + setPageTitle(getRouteTitle(to)); + } + if (!getToken()) { + // 未登录跳转登录界面 + if (!WHITE_LIST.includes(to.path)) { + return { + path: '/login', + query: to.path === LAYOUT_PATH ? {} : { from: to.path } + }; + } + return; + } + // 注册动态路由 + const userStore = useUserStore(); + if (!userStore.menus) { + const { menus, homePath } = await userStore.fetchUserInfo(); + if (menus) { + getMenuRoutes(menus, homePath).forEach((r) => { + router.addRoute(r); + }); + return { ...to, replace: true }; + } + } +}); + +router.afterEach((to) => { + if (!to.path.includes(REDIRECT_PATH) && NProgress.isStarted()) { + setTimeout(() => { + NProgress.done(true); + }, 200); + } +}); + +export default router; diff --git a/src/router/routes.ts b/src/router/routes.ts new file mode 100644 index 0000000..c4b36cc --- /dev/null +++ b/src/router/routes.ts @@ -0,0 +1,71 @@ +import type { RouteRecordRaw } from 'vue-router'; +import { menuToRoutes, eachTree } from 'ele-admin-plus/es'; +import type { MenuItem } from 'ele-admin-plus/es/ele-pro-layout/types'; +import { HOME_PATH, LAYOUT_PATH, REDIRECT_PATH } from '@/config/setting'; +import Layout from '@/layout/index.vue'; +import RedirectLayout from '@/components/RedirectLayout/index.vue'; +const modules = import.meta.glob('/src/views/**/index.vue'); + +/** + * 静态路由 + */ +export const routes = [ + { + path: '/login', + component: () => import('@/views/login/index.vue'), + meta: { title: '登录' } + }, + // 404 + { + path: '/:path(.*)*', + component: () => import('@/views/exception/404/index.vue') + } +]; + +/** + * 根据菜单生成动态路由 + * @param menus 菜单数据 + * @param homePath 主页地址 + */ +export function getMenuRoutes(menus?: MenuItem[], homePath?: string) { + const childs: RouteRecordRaw[] = [ + // 用于刷新的路由 + { + path: REDIRECT_PATH + '/:path(.*)', + component: RedirectLayout, + meta: { hideFooter: true } + } + ]; + const routes: RouteRecordRaw[] = [ + { + path: LAYOUT_PATH, + component: Layout, + redirect: HOME_PATH ?? homePath, + children: childs + } + ]; + // 路由铺平处理 + eachTree(menuToRoutes(menus, getComponent), (route) => { + const temp = Object.assign({}, route, { children: void 0 }); + if (route.meta?.layout === false) { + routes.push(temp); // 不需要外层布局的路由 + } else { + childs.push(temp); // 需要外层布局的路由 + } + }); + return routes; +} + +/** + * 解析路由组件 + * @param component 组件名称 + */ +function getComponent(component?: string) { + if (component) { + const module = modules[`/src/views${component}.vue`]; + if (!module) { + return modules[`/src/views${component}/index.vue`]; + } + return module; + } +} diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts new file mode 100644 index 0000000..fe7917e --- /dev/null +++ b/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..bf43b30 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,6 @@ +/** + * pinia + */ +import { createPinia } from 'pinia'; + +export default createPinia(); diff --git a/src/store/modules/theme.ts b/src/store/modules/theme.ts new file mode 100644 index 0000000..66d0c3c --- /dev/null +++ b/src/store/modules/theme.ts @@ -0,0 +1,561 @@ +/** + * 主题状态管理 + */ +import { defineStore } from 'pinia'; +import { changeColor } from 'ele-admin-plus/es/utils/theme-util'; +import type { + TabItem, + Layout, + SidebarLayout, + HeaderStyle, + SidebarStyle, + TabStyle, + TabItemEventOption, + MenuItemTrigger +} from 'ele-admin-plus/es/ele-pro-layout/types'; +import { THEME_CACHE_NAME, TAB_KEEP_ALIVE } from '@/config/setting'; + +/** + * 默认值 + */ +const DEFAULT_STATE = Object.freeze({ + /** 页签数据 */ + tabs: [], + /** 是否折叠侧栏 */ + collapse: false, + /** 侧栏一级是否紧凑风格 */ + compact: false, + /** 内容区是否最大化 */ + maximized: false, + /** 是否需要页签栏 */ + tabBar: true, + /** 布局类型 */ + layout: 'side', + /** 侧栏布局类型 */ + sidebarLayout: 'default', + /** 顶栏风格 */ + headerStyle: 'light', + /** 侧栏风格 */ + sidebarStyle: 'dark', + /** 页签风格 */ + tabStyle: 'simple', + /** 是否固定顶栏 */ + fixedHeader: false, + /** 是否固定侧栏 */ + fixedSidebar: true, + /** 是否固定内容区 */ + fixedBody: true, + /** 内容区是否撑满 */ + fluid: true, + /** 图标是否置于顶栏 */ + logoInHeader: false, + /** 侧栏菜单是否彩色图标 */ + colorfulIcon: false, + /** 侧栏排他展开 */ + uniqueOpened: true, + /** 固定主页页签 */ + fixedHome: true, + /** 路由切换动画 */ + transitionName: 'slide-right', + /** 是否色弱模式 */ + weakMode: false, + /** 是否暗黑模式 */ + darkMode: false, + /** 主题色 */ + color: null, + /** 内容区宽度 */ + contentWidth: null, + /** 是否开启圆角主题 */ + roundedTheme: true, + /** 顶栏菜单触发模式 */ + navTrigger: 'route', + /** 双侧栏一级菜单触发模式 */ + boxTrigger: 'route', + /** 侧栏菜单触发模式 */ + itemTrigger: 'route', + /** 是否开启响应式 */ + responsive: true +}); + +/** + * 读取缓存配置 + */ +function getCacheSetting(): Record { + try { + const value = localStorage.getItem(THEME_CACHE_NAME); + if (value) { + const cache = JSON.parse(value); + if (typeof cache === 'object') { + return cache; + } + } + } catch (e) { + console.error(e); + } + return {}; +} + +/** + * 缓存配置 + */ +function cacheSetting(key: string, value: unknown) { + const cache = getCacheSetting(); + if (cache[key] !== value) { + cache[key] = value; + localStorage.setItem(THEME_CACHE_NAME, JSON.stringify(cache)); + } +} + +/** + * 开关响应式布局 + */ +function changeResponsive(responsive: boolean) { + const classes = 'ele-body-limited'; + if (responsive) { + document.body.classList.remove(classes); + } else { + document.body.classList.add(classes); + } +} + +/** + * 切换圆角主题 + */ +function changeRoundedTheme(roundedTheme: boolean) { + const classes = 'rounded'; + const $html = document.querySelector('html'); + if ($html && roundedTheme) { + $html.classList.add(classes); + } else if ($html) { + $html.classList.remove(classes); + } +} + +/** + * 切换色弱模式 + */ +function changeWeakMode(weakMode: boolean) { + const classes = 'ele-admin-weak'; + if (weakMode) { + document.body.classList.add(classes); + } else { + document.body.classList.remove(classes); + } +} + +/** + * 切换主题 + */ +function changeTheme(value?: string | null, dark?: boolean) { + return new Promise((resolve, reject) => { + try { + changeColor(value, dark); + resolve(); + } catch (e) { + reject(e); + } + }); +} + +export const useThemeStore = defineStore({ + id: 'theme', + state: (): ThemeState => { + const state = { ...DEFAULT_STATE }; + // 读取本地缓存 + const cache = getCacheSetting(); + Object.keys(state).forEach((key) => { + if (typeof cache[key] !== 'undefined') { + state[key] = cache[key]; + } + }); + return state; + }, + getters: { + /** 需要缓存的组件 */ + keepAliveInclude(): string[] { + if (!TAB_KEEP_ALIVE || !this.tabBar || !this.tabs) { + return []; + } + const components = new Set(); + this.tabs.forEach((t) => { + if (t.meta?.keepAlive !== false && !t.refresh && t.components) { + t.components.forEach((c) => { + if (typeof c === 'string' && c) { + components.add(c); + } + }); + } + }); + return Array.from(components); + } + }, + actions: { + setTabs(value: TabItem[]) { + this.tabs = value; + //cacheSetting('tabs', value); + }, + setCollapse(value: boolean) { + this.collapse = value; + }, + setCompact(value: boolean) { + this.compact = value; + }, + setMaximized(value: boolean) { + this.maximized = value; + }, + setTabBar(value: boolean) { + this.tabBar = value; + cacheSetting('tabBar', value); + }, + setLayout(value: Layout) { + this.layout = value; + cacheSetting('layout', value); + }, + setSidebarLayout(value: SidebarLayout) { + this.sidebarLayout = value; + cacheSetting('sidebarLayout', value); + }, + setHeaderStyle(value: HeaderStyle) { + this.headerStyle = value; + cacheSetting('headerStyle', value); + }, + setSidebarStyle(value: SidebarStyle) { + this.sidebarStyle = value; + cacheSetting('sidebarStyle', value); + }, + setTabStyle(value: TabStyle) { + this.tabStyle = value; + cacheSetting('tabStyle', value); + }, + setFixedHeader(value: boolean) { + this.fixedHeader = value; + cacheSetting('fixedHeader', value); + }, + setFixedSidebar(value: boolean) { + this.fixedSidebar = value; + cacheSetting('fixedSidebar', value); + }, + setFixedBody(value: boolean) { + this.fixedBody = value; + cacheSetting('fixedBody', value); + }, + setFluid(value: boolean) { + this.fluid = value; + cacheSetting('fluid', value); + }, + setLogoInHeader(value: boolean) { + this.logoInHeader = value; + cacheSetting('logoInHeader', value); + }, + setColorfulIcon(value: boolean) { + this.colorfulIcon = value; + cacheSetting('colorfulIcon', value); + }, + setUniqueOpened(value: boolean) { + this.uniqueOpened = value; + cacheSetting('uniqueOpened', value); + }, + setFixedHome(value: boolean) { + this.fixedHome = value; + cacheSetting('fixedHome', value); + }, + setTransitionName(value: string) { + this.transitionName = value; + cacheSetting('transitionName', value); + }, + setContentWidth(value: number | null) { + this.contentWidth = value; + }, + setWeakMode(value: boolean) { + changeWeakMode(value); + this.weakMode = value; + cacheSetting('weakMode', value); + }, + /** + * 切换暗黑模式 + * @param value 是否是暗黑模式 + */ + async setDarkMode(value: boolean) { + await changeTheme(this.color, value); + this.darkMode = value; + cacheSetting('darkMode', value); + }, + /** + * 切换主题色 + * @param value 主题色 + */ + async setColor(value: string | null) { + await changeTheme(value, this.darkMode); + this.color = value; + cacheSetting('color', value); + }, + /** + * 重置 + */ + async resetSetting() { + const excludes = ['tabs', 'collapse', 'contentWidth']; + Object.keys(DEFAULT_STATE).forEach((key) => { + if (!excludes.includes(key)) { + this[key] = DEFAULT_STATE[key]; + } + }); + localStorage.removeItem(THEME_CACHE_NAME); + changeResponsive(this.responsive); + changeRoundedTheme(this.roundedTheme); + changeWeakMode(this.weakMode); + await changeTheme(this.color, this.darkMode); + }, + /** + * 恢复主题 + */ + recoverTheme() { + // 关闭响应式布局 + if (!this.responsive) { + changeResponsive(false); + } + // 开启圆角主题 + if (this.roundedTheme) { + changeRoundedTheme(true); + } + // 开启色弱模式 + if (this.weakMode) { + changeWeakMode(true); + } + // 恢复主题色 + if (this.color || this.darkMode) { + changeTheme(this.color, this.darkMode).catch((e) => { + console.error(e); + }); + } + }, + /** + * 添加页签或更新页签数据 + * @param data 页签数据 + */ + tabAdd(data: TabItem) { + const i = this.tabs.findIndex((d) => d.key === data.key); + if (i === -1) { + this.setTabs([...this.tabs, data]); + } else if (data.fullPath !== this.tabs[i].fullPath) { + const temps = [...this.tabs]; + temps[i] = data; + this.setTabs(temps); + } + }, + /** + * 关闭页签 + */ + async tabRemove({ key, active }: TabItemEventOption): TabRemoveReturn { + const i = this.tabs.findIndex((t) => t.key === key || t.fullPath === key); + if (i === -1) { + return {}; + } + const t = this.tabs[i]; + if (!t.closable || (t.home && this.tabs.length === 1)) { + return Promise.reject(); + } + const path = this.tabs[i + (i === 0 ? 1 : -1)]?.fullPath; + this.setTabs(this.tabs.filter((_d, j) => j !== i)); + return t.key === active ? { path, home: !path } : {}; + }, + /** + * 关闭左侧页签 + */ + async tabRemoveLeft({ key, active }: TabItemEventOption): TabRemoveReturn { + let index = -1; // 选中页签的索引 + for (let i = 0; i < this.tabs.length; i++) { + if (this.tabs[i].key === active) { + index = i; + } + if (this.tabs[i].key === key) { + if (i === 0) { + break; + } + const temp = this.tabs.filter((d, j) => !d.closable && j < i); + if (temp.length === i) { + break; + } + const path = index === -1 ? void 0 : this.tabs[i].fullPath; + this.setTabs(temp.concat(this.tabs.slice(i))); + return { path }; + } + } + return Promise.reject(); + }, + /** + * 关闭右侧页签 + */ + async tabRemoveRight({ key, active }: TabItemEventOption): TabRemoveReturn { + let index = -1; // 选中页签的索引 + for (let i = 0; i < this.tabs.length; i++) { + if (this.tabs[i].key === active) { + index = i; + } + if (this.tabs[i].key === key) { + if (i === this.tabs.length - 1) { + break; + } + const temp = this.tabs.filter((d, j) => !d.closable && j > i); + if (temp.length === this.tabs.length - i - 1) { + break; + } + const path = index === -1 ? this.tabs[i].fullPath : void 0; + this.setTabs(this.tabs.slice(0, i + 1).concat(temp)); + return { path }; + } + } + return Promise.reject(); + }, + /** + * 关闭其它页签 + */ + async tabRemoveOther({ key, active }: TabItemEventOption): TabRemoveReturn { + let path: string | undefined; // 关闭后跳转的地址 + const temps = this.tabs.filter((d) => { + if (d.key === key) { + path = d.fullPath; + } + return !d.closable || d.key === key; + }); + if (temps.length === this.tabs.length) { + return Promise.reject(); + } + this.setTabs(temps); + return key === active ? {} : { path }; + }, + /** + * 关闭全部页签 + */ + async tabRemoveAll({ active }: TabItemEventOption): TabRemoveReturn { + if (this.tabs.length === 1 && this.tabs[0].home) { + return Promise.reject(); + } + const temps = this.tabs.filter((d) => !d.closable); + if (temps.length === this.tabs.length) { + return Promise.reject(); + } + const t = active ? this.tabs.find((d) => d.key === active) : void 0; + const jump = t != null && t.closable === true; // 关闭后是否跳转 + if (!temps.length) { + const h = this.tabs.find((d) => d.home); + if (!h) { + this.setTabs([]); + return { home: true }; + } + this.setTabs([h]); + return { home: t?.home ? void 0 : true }; + } + this.setTabs(temps); + return { path: jump ? temps[0].fullPath : void 0 }; + }, + /** + * 修改页签 + * @param data 页签数据 + */ + tabSetItem(data: TabItem) { + if (!data.key && !data.fullPath) { + if (!data.path) { + return; + } + this.tabs.forEach((d) => { + if (data.path === d.path) { + this.tabSetItem({ ...data, key: d.key }); + } + }); + return; + } + const k = data.key ? 'key' : 'fullPath'; + const i = this.tabs.findIndex((d) => data[k] === d[k]); + if (i === -1) { + return; + } + const item = { ...this.tabs[i] }; + if (data.title) { + item.title = data.title; + } + if (typeof data.closable === 'boolean') { + item.closable = data.closable; + } + if (typeof data.refresh === 'boolean') { + item.refresh = data.refresh; + } + if (data.components) { + item.components = data.components; + } + const temps = [...this.tabs]; + temps[i] = item; + this.setTabs(temps); + }, + /** 修改菜单触发模式 */ + setMenuItemTrigger(key: string, trigger: MenuItemTrigger) { + if (key === 'navTrigger') { + this.navTrigger = trigger; + } else if (key === 'boxTrigger') { + this.boxTrigger = trigger; + } else if (key === 'itemTrigger') { + this.itemTrigger = trigger; + } + }, + /** 切换圆角主题 */ + setRoundedTheme(value: boolean) { + changeRoundedTheme(value); + this.roundedTheme = value; + cacheSetting('roundedTheme', value); + }, + /** 修改响应式开关 */ + setResponsive(value: boolean) { + changeResponsive(value); + this.responsive = value; + cacheSetting('responsive', value); + } + } +}); + +/** + * 主题状态类型 + */ +export interface ThemeState { + tabs: TabItem[]; + collapse: boolean; + compact: boolean; + maximized: boolean; + tabBar: boolean; + layout: Layout; + sidebarLayout: SidebarLayout; + headerStyle: HeaderStyle; + sidebarStyle: SidebarStyle; + tabStyle: TabStyle; + fixedHeader: boolean; + fixedSidebar: boolean; + fixedBody: boolean; + fluid: boolean; + logoInHeader: boolean; + colorfulIcon: boolean; + uniqueOpened: boolean; + fixedHome: boolean; + transitionName: string; + weakMode: boolean; + darkMode: boolean; + color: string | null; + contentWidth: number | null; + navTrigger: MenuItemTrigger; + boxTrigger: MenuItemTrigger; + itemTrigger: MenuItemTrigger; + roundedTheme: boolean; + responsive: boolean; +} + +/** + * 关闭页签返回结果 + */ +export interface TabRemoveResult { + /** 关闭后要跳转的地址 */ + path?: string; + /** 关闭后是否跳转到首页 */ + home?: boolean; +} + +/** + * 关闭页签方法返回类型 + */ +export type TabRemoveReturn = Promise; diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts new file mode 100644 index 0000000..1ff355e --- /dev/null +++ b/src/store/modules/user.ts @@ -0,0 +1,171 @@ +/** + * 登录用户状态管理 + */ +import { defineStore } from 'pinia'; +import type { BadgeProps } from 'element-plus'; +import { toTree, mapTree, isExternalLink } from 'ele-admin-plus/es'; +import type { MenuItem } from 'ele-admin-plus/es/ele-pro-layout/types'; +import type { User } from '@/api/system/user/model'; +import type { Menu } from '@/api/system/menu/model'; +import type { DictionaryData } from '@/api/system/dictionary-data/model'; +import { getUserInfo } from '@/api/layout'; +/** 直接指定菜单数据 */ +const USER_MENUS: Menu[] | null = null; + +export interface UserState { + info: User | null; + menus: MenuItem[] | null; + authorities: (string | undefined)[]; + roles: (string | undefined)[]; + dicts: Record; +} + +export const useUserStore = defineStore({ + id: 'user', + state: (): UserState => ({ + /** 当前登录用户的信息 */ + info: null, + /** 当前登录用户的菜单 */ + menus: null, + /** 当前登录用户的权限 */ + authorities: [], + /** 当前登录用户的角色 */ + roles: [], + /** 字典数据缓存 */ + dicts: {} + }), + actions: { + /** + * 请求登录用户的个人信息/权限/角色/菜单 + */ + async fetchUserInfo() { + const result = await getUserInfo().catch((e) => console.error(e)); + if (!result) { + return {}; + } + // 用户信息 + this.setInfo(result); + // 用户权限 + if (result.authorities) { + this.authorities = + result.authorities.map((d) => d.authority).filter((a) => !!a) ?? []; + } + // 用户角色 + this.roles = result.roles?.map?.((d) => d.roleCode) ?? []; + // 用户菜单, 过滤掉按钮类型并转为children形式 + const { menus, homePath } = formatMenus( + USER_MENUS ?? + toTree({ + data: result.authorities?.filter?.((d) => d.menuType !== 1), + idField: 'menuId', + parentIdField: 'parentId' + }) + ); + this.setMenus(menus); + return { menus, homePath }; + }, + /** + * 更新用户信息 + */ + setInfo(value: User) { + this.info = value; + }, + /** + * 更新菜单数据 + */ + setMenus(menus: MenuItem[] | null) { + this.menus = menus; + }, + /** + * 更新菜单的徽章 + * @param path 菜单地址 + * @param value 徽章值 + * @param type 徽章类型 + */ + setMenuBadge( + path: string, + value?: number | string | null, + type?: BadgeProps['type'] + ) { + this.menus = mapTree(this.menus, (m) => { + if (path === m.path) { + const meta = m.meta || {}; + return { + ...m, + meta: { + ...meta, + props: { + ...meta.props, + badge: value == null ? void 0 : { value, type } + } + } + }; + } + return m; + }); + }, + /** + * 更新字典数据 + */ + setDicts( + value: DictionaryData[] | Record, + code?: string | null + ) { + if (code == null) { + this.dicts = value as Record; + return; + } + this.dicts[code] = value as DictionaryData[]; + } + } +}); + +/** + * 菜单数据处理为EleProLayout所需要的格式 + * @param data 菜单数据 + * @param childField 子级的字段名称 + */ +function formatMenus(data: Menu[], childField = 'children') { + let homePath: string | undefined; + let homeTitle: string | undefined; + const menus = mapTree( + data, + (item) => { + const meta: MenuItem['meta'] = + typeof item.meta === 'string' + ? JSON.parse(item.meta || '{}') + : item.meta; + const menu: MenuItem = { + path: item.path, + component: item.component, + meta: { title: item.title, icon: item.icon, hide: !!item.hide, ...meta } + }; + const children = item[childField] + ? item[childField].filter((d: any) => !(d.meta?.hide ?? d.hide)) + : void 0; + if (!children?.length) { + if (!homePath && menu.path && !isExternalLink(menu.path)) { + homePath = menu.path; + homeTitle = menu.meta?.title; + } + } else { + const childPath = children[0].path; + if (childPath) { + if (!menu.redirect) { + menu.redirect = childPath; + } + if (!menu.path) { + menu.path = childPath.substring(0, childPath.lastIndexOf('/')); + } + } + } + if (!menu.path) { + console.error('菜单path不能为空且要唯一:', item); + return; + } + return menu; + }, + childField + ); + return { menus, homePath, homeTitle }; +} diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..00eec6a --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,103 @@ +/** 全局样式 */ +@use 'element-plus/theme-chalk/src/mixins/function.scss' as *; +@use './transition.scss' as *; + +* { + outline: none; +} + +html { + overflow: auto; +} + +body { + margin: 0; + line-height: 1.58; + color: getCssVar('text-color', 'regular'); + font-size: getCssVar('font-size', 'base'); + font-family: getCssVar('font-family'); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + overflow-x: hidden; + overflow-y: auto; + height: 100vh; +} + +/* 关闭响应式 */ +body.ele-body-limited { + min-width: 1200px; +} + +/* 色弱模式 */ +.ele-admin-weak { + filter: invert(0.8); +} + +/* 按钮加图标减少间距 */ +.ele-btn-icon.el-button, +.ele-btn-icon.el-button.is-round { + padding-left: 10px; + padding-right: 12px; + + &.el-button--small { + padding-left: 5px; + padding-right: 6px; + } + + &.el-button--large { + padding-left: 14px; + padding-right: 16px; + } +} + +/* 级联选择器增加高度 */ +.ele-popper-higher .el-cascader-menu__wrap.el-scrollbar__wrap { + height: 280px; +} + +/* 间距组件样式优化 */ +.el-space--horizontal > .el-space__item:last-child { + margin-right: 0 !important; +} + +.el-space--vertical > .el-space__item:last-child { + padding-bottom: 0 !important; +} + +/* echarts */ +.echarts > div > div { + max-width: 100%; + overflow: hidden; +} + +/* 小屏幕时分页去掉一些组件 */ +@media screen and (max-width: 768px) { + .ele-pro-table .el-pagination { + .el-pagination__sizes, + .el-pagination__jump { + display: none; + } + } +} + +/* 暗黑模式切换过渡 */ +::view-transition-old(root), +::view-transition-new(root) { + animation: none; + mix-blend-mode: normal; +} + +::view-transition-old(root) { + z-index: 2147483646; +} + +::view-transition-new(root) { + z-index: 1; +} + +.dark::view-transition-old(root) { + z-index: 1; +} + +.dark::view-transition-new(root) { + z-index: 2147483646; +} diff --git a/src/styles/themes/dark.scss b/src/styles/themes/dark.scss new file mode 100644 index 0000000..45bd068 --- /dev/null +++ b/src/styles/themes/dark.scss @@ -0,0 +1,77 @@ +/** 暗黑主题(css-var) */ +@forward 'element-plus/theme-chalk/src/dark/var.scss' with ( + $colors: ( + 'primary': ( + 'base': #1668dc + ), + 'success': ( + 'base': #49aa19 + ), + 'warning': ( + 'base': #d89614 + ), + 'danger': ( + 'base': #dc4446 + ), + 'error': ( + 'base': #dc4446 + ), + 'info': ( + 'base': #8b8b8b + ) + ), + $text-color: ( + 'primary': rgba(255, 255, 255, 0.9), + 'regular': rgba(255, 255, 255, 0.85), + 'secondary': rgba(255, 255, 255, 0.4), + 'placeholder': rgba(255, 255, 255, 0.3), + 'disabled': rgba(255, 255, 255, 0.28) + ), + $border-color: ( + '': #424242, + 'light': #303030, + 'lighter': #303030, + 'extra-light': #282828, + 'dark': #303030, + 'darker': #424242 + ), + $fill-color: ( + '': #303030, + 'light': #282828, + 'lighter': #1d1d1d, + 'extra-light': #1a1a1a, + 'dark': #282828, + 'darker': #303030 + ), + $bg-color: ( + '': #141414, + 'page': #080808, + 'overlay': #1f1f1f + ), + $box-shadow: ( + '': ( + 0px 0px 12px rgba(0, 0, 0, 0.8) + ), + 'light': ( + 0 3px 6px -4px rgba(0, 0, 0, 0.48), + 0 6px 16px 0 rgba(0, 0, 0, 0.32), + 0 9px 28px 8px rgba(0, 0, 0, 0.2) + ), + 'lighter': ( + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + ), + 'dark': ( + 0 3px 6px -4px rgba(0, 0, 0, 0.48), + 0 6px 16px 0 rgba(0, 0, 0, 0.32), + 0 9px 28px 8px rgba(0, 0, 0, 0.2) + ) + ), + $mask-color: ( + '': rgba(20, 20, 20, 0.8), + 'extra-light': rgba(20, 20, 20, 0.6) + ) +); +@use 'element-plus/theme-chalk/src/dark/css-vars.scss'; +@use 'ele-admin-plus/es/style/themes/dark-css-var.scss'; diff --git a/src/styles/themes/rounded.scss b/src/styles/themes/rounded.scss new file mode 100644 index 0000000..af46b82 --- /dev/null +++ b/src/styles/themes/rounded.scss @@ -0,0 +1,13 @@ +/** 圆角主题(css-var) */ +@use 'element-plus/theme-chalk/src/mixins/_var.scss' as *; +@use 'ele-admin-plus/es/style/themes/rounded-css-var.scss' as *; + +#{$rounded-selector} { + @include set-component-css-var( + 'border-radius', + ( + 'base': 6px, + 'small': 4px + ) + ); +} diff --git a/src/styles/transition.scss b/src/styles/transition.scss new file mode 100644 index 0000000..a559791 --- /dev/null +++ b/src/styles/transition.scss @@ -0,0 +1,92 @@ +/** 路由切换动画 */ + +/* 执行动画时隐藏页脚 */ +.fade-enter-active, +.fade-leave-active, +.slide-bottom-enter-active, +.slide-bottom-leave-active, +.slide-right-leave-active, +.slide-right-enter-active, +.zoom-in-enter-active, +.zoom-in-leave-active, +.zoom-out-leave-active, +.zoom-out-enter-active { + & + .ele-footer { + visibility: hidden; + } +} + +/* 渐变 */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.2s ease-in-out; +} + +.fade-enter-from, +.fade-leave-to { + opacity: 0; +} + +/* 底部消退 */ +.slide-bottom-enter-active, +.slide-bottom-leave-active { + transition: (opacity 0.2s ease-out, transform 0.25s ease-out); +} + +.slide-bottom-enter-from { + opacity: 0; + transform: translateY(-10%); +} + +.slide-bottom-leave-to { + opacity: 0; + transform: translateY(10%); +} + +/* 右侧消退 */ +.slide-right-leave-active, +.slide-right-enter-active { + transition: (opacity 0.2s ease-out, transform 0.25s ease-out); +} + +.slide-right-enter-from { + opacity: 0; + transform: translateX(-60px); +} + +.slide-right-leave-to { + opacity: 0; + transform: translateX(60px); +} + +/* 放大渐变 */ +.zoom-in-enter-active, +.zoom-in-leave-active { + transition: (opacity 0.2s ease-out, transform 0.25s ease-out); +} + +.zoom-in-enter-from { + opacity: 0; + transform: scale(0.9); +} + +.zoom-in-leave-to { + opacity: 0; + transform: scale(1.1); +} + +/* 缩小渐变 */ +.zoom-out-leave-active, +.zoom-out-enter-active { + transition: (opacity 0.2s ease-out, transform 0.25s ease-out); +} + +.zoom-out-enter-from { + opacity: 0; + transform: scale(1.2); +} + +.zoom-out-leave-to { + opacity: 0; + transform: scale(0.8); +} diff --git a/src/styles/variables.scss b/src/styles/variables.scss new file mode 100644 index 0000000..4566445 --- /dev/null +++ b/src/styles/variables.scss @@ -0,0 +1,81 @@ +/** ElementPlus样式变量修改(影响所有scss) */ +@forward 'element-plus/theme-chalk/src/common/var.scss' with ( + $colors: ( + 'primary': ( + 'base': #1677ff + ), + 'success': ( + 'base': #52c41a + ), + 'warning': ( + 'base': #faad14 + ), + 'danger': ( + 'base': #ff4d4f + ), + 'error': ( + 'base': #ff4d4f + ) + ), + $text-color: ( + 'primary': rgba(0, 0, 0, 0.92), + 'regular': rgba(0, 0, 0, 0.88), + 'secondary': rgba(0, 0, 0, 0.6), + 'placeholder': rgba(0, 0, 0, 0.36), + 'disabled': rgba(0, 0, 0, 0.28) + ), + $border-color: ( + '': #d9d9d9, + 'light': #e8e8e8, + 'lighter': #e8e8e8, + 'extra-light': #f0f0f0 + ), + $fill-color: ( + '': #f0f0f0, + 'light': #f5f5f5, + 'lighter': #f7f7f7, + 'extra-light': #fafafa + ), + $bg-color: ( + '': #ffffff, + 'page': #f0f2f5, + 'overlay': #ffffff + ), + $box-shadow: ( + '': ( + 0 2px 10px 2px rgba(0, 0, 0, 0.1) + ), + 'light': ( + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + ), + 'lighter': ( + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + ), + 'dark': ( + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + ) + ), + $overlay-color: ( + '': rgba(0, 0, 0, 0.8), + 'light': rgba(0, 0, 0, 0.6), + 'lighter': rgba(0, 0, 0, 0.45) + ), + $mask-color: ( + '': rgba(255, 255, 255, 0.4), + 'extra-light': rgba(255, 255, 255, 0.6) + ), + $border-radius: ( + 'base': 3px, + 'small': 2px + ) +); + +@forward 'ele-admin-plus/es/style/themes/default.scss' with ( + $scrollbar-selector: 'pc' +); diff --git a/src/utils/common.ts b/src/utils/common.ts new file mode 100644 index 0000000..6915190 --- /dev/null +++ b/src/utils/common.ts @@ -0,0 +1,131 @@ +import type { Router } from 'vue-router'; +import { removeToken } from '@/utils/token-util'; + +/** + * 退出登录 + * @param route 是否使用路由跳转 + * @param from 登录后跳转的地址 + * @param push 路由跳转方法 + */ +export function logout(route?: boolean, from?: string, push?: Router['push']) { + removeToken(); + if (route && push) { + push({ + path: '/login', + query: from ? { from: encodeURIComponent(from) } : void 0 + }); + return; + } + // 这样跳转避免再次登录重复注册动态路由 + const BASE_URL = import.meta.env.BASE_URL; + const url = BASE_URL + 'login'; // hash 路由模式使用 '#/login' + location.replace(from ? `${url}?from=${encodeURIComponent(from)}` : url); +} + +/** + * 下载文件 + * @param data 二进制数据 + * @param name 文件名 + * @param type 文件类型 + */ +export function download(data: Blob | string, name: string, type?: string) { + const blob = new Blob([data], { type: type || 'application/octet-stream' }); + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = name; + a.style.display = 'none'; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); +} + +/** + * 参数转url字符串 + * @param params 参数 + * @param url 需要拼接参数的地址 + */ +export function toURLSearch( + params?: Record | null, + url?: string +): string { + if (typeof params !== 'object' || params == null) { + return ''; + } + const result = transformParams(params) + .map((d) => `${encodeURIComponent(d[0])}=${encodeURIComponent(d[1])}`) + .join('&'); + if (!url) { + return result; + } + return (url.includes('?') ? `${url}&` : `${url}?`) + result; +} + +/** + * 参数转表单数据 + * @param params 参数 + */ +export function toFormData(params?: Record | null): FormData { + const formData = new FormData(); + if (typeof params !== 'object' || params == null) { + return formData; + } + transformParams(params).forEach((d) => { + formData.append(d[0], d[1]); + }); + return formData; +} + +/** + * get请求处理数组和对象类型参数 + * @param params 参数 + */ +export function transformParams(params?: Record | null) { + const result: [string, string][] = []; + if (params != null && typeof params === 'object') { + Object.keys(params).forEach((key) => { + const value = params[key]; + if (value != null && value !== '') { + if (typeof value === 'object' && !isBlobFile(value)) { + getObjectParamsArray(value).forEach((item) => { + result.push([`${key}${item[0]}`, item[1]]); + }); + } else { + result.push([key, value]); + } + } + }); + } + return result; +} + +/** + * 对象转参数数组 + * @param obj 对象 + */ +export function getObjectParamsArray(obj: Record) { + const result: [string, string][] = []; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if (value != null && value !== '') { + const name = `[${key}]`; + if (typeof value === 'object' && !isBlobFile(value)) { + getObjectParamsArray(value).forEach((item) => { + result.push([`${name}${item[0]}`, item[1]]); + }); + } else { + result.push([name, value]); + } + } + }); + return result; +} + +/** + * 判断是否是文件 + * @param obj 对象 + */ +export function isBlobFile(obj: any) { + return obj != null && (obj instanceof Blob || obj instanceof File); +} diff --git a/src/utils/page-title-util.ts b/src/utils/page-title-util.ts new file mode 100644 index 0000000..e7f2f30 --- /dev/null +++ b/src/utils/page-title-util.ts @@ -0,0 +1,16 @@ +import { PROJECT_NAME } from '@/config/setting'; + +/** + * 修改浏览器标题 + * @param title 标题 + */ +export function setPageTitle(title?: string) { + const names: string[] = []; + if (title) { + names.push(title); + } + if (PROJECT_NAME) { + names.push(PROJECT_NAME); + } + document.title = names.join(' - '); +} diff --git a/src/utils/permission.ts b/src/utils/permission.ts new file mode 100644 index 0000000..bf8e17f --- /dev/null +++ b/src/utils/permission.ts @@ -0,0 +1,42 @@ +/** + * 按钮级权限控制指令 + */ +import type { App } from 'vue'; +import { usePermission } from './use-permission'; + +export default { + install(app: App) { + app.directive('role', { + mounted: (el, binding) => { + const { hasRole } = usePermission(); + if (!hasRole(binding.value)) { + el.parentNode?.removeChild?.(el); + } + } + }); + app.directive('any-role', { + mounted: (el, binding) => { + const { hasAnyRole } = usePermission(); + if (!hasAnyRole(binding.value)) { + el.parentNode?.removeChild?.(el); + } + } + }); + app.directive('permission', { + mounted: (el, binding) => { + const { hasPermission } = usePermission(); + if (!hasPermission(binding.value)) { + el.parentNode?.removeChild?.(el); + } + } + }); + app.directive('any-permission', { + mounted: (el, binding) => { + const { hasAnyPermission } = usePermission(); + if (!hasAnyPermission(binding.value)) { + el.parentNode?.removeChild?.(el); + } + } + }); + } +}; diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..b3032d7 --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,79 @@ +/** + * axios实例 + */ +import axios from 'axios'; +import type { AxiosResponse } from 'axios'; +import { unref } from 'vue'; +import type { Action } from 'element-plus'; +import { ElMessageBox } from 'element-plus/es'; +import { API_BASE_URL, LAYOUT_PATH } from '@/config/setting'; +import type { ApiResult } from '@/api'; +import router from '@/router'; +import { getToken, setToken } from './token-util'; +import { logout, toURLSearch } from './common'; + +/** 创建axios实例 */ +const service = axios.create({ + baseURL: API_BASE_URL +}); + +/** + * 添加请求拦截器 + */ +service.interceptors.request.use( + (config) => { + // 添加token到header + const token = getToken(); + if (token && config.headers) { + config.headers['Authorization'] = token; + } + // get请求处理数组和对象类型参数 + if (config.method === 'get' && config.params) { + config.url = toURLSearch(config.params, config.url); + config.params = {}; + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +/** + * 添加响应拦截器 + */ +service.interceptors.response.use( + (res: AxiosResponse>) => { + // 登录过期处理 + if (res.data?.code === 401) { + const { path, fullPath } = unref(router.currentRoute); + if (path == LAYOUT_PATH) { + logout(true, void 0, router.push); + } else if (path !== '/login') { + ElMessageBox.close(); + ElMessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', { + confirmButtonText: '重新登录', + callback: (action: Action) => { + if (action === 'confirm') { + logout(false, fullPath); + } + }, + type: 'warning', + draggable: true + }); + } + return Promise.reject(new Error(res.data.message)); + } + // 续期token + const newToken = res.headers['authorization']; + if (newToken) { + setToken(newToken); + } + return res; + }, + (error) => { + return Promise.reject(error); + } +); + +export default service; diff --git a/src/utils/token-util.ts b/src/utils/token-util.ts new file mode 100644 index 0000000..7477550 --- /dev/null +++ b/src/utils/token-util.ts @@ -0,0 +1,39 @@ +/** + * token操作封装 + */ +import { TOKEN_CACHE_NAME } from '@/config/setting'; + +/** + * 获取缓存的token + */ +export function getToken(): string | null { + const token = localStorage.getItem(TOKEN_CACHE_NAME); + if (!token) { + return sessionStorage.getItem(TOKEN_CACHE_NAME); + } + return token; +} + +/** + * 缓存token + * @param token token + * @param remember 是否永久存储 + */ +export function setToken(token?: string, remember?: boolean) { + removeToken(); + if (token) { + if (remember) { + localStorage.setItem(TOKEN_CACHE_NAME, token); + } else { + sessionStorage.setItem(TOKEN_CACHE_NAME, token); + } + } +} + +/** + * 移除token + */ +export function removeToken() { + localStorage.removeItem(TOKEN_CACHE_NAME); + sessionStorage.removeItem(TOKEN_CACHE_NAME); +} diff --git a/src/utils/use-body-resize.ts b/src/utils/use-body-resize.ts new file mode 100644 index 0000000..0970afc --- /dev/null +++ b/src/utils/use-body-resize.ts @@ -0,0 +1,21 @@ +import { watch } from 'vue'; +import { storeToRefs } from 'pinia'; +import { useThemeStore } from '@/store/modules/theme'; + +/** + * 主体区尺寸改变hook + * @param hook 改变回调 + */ +export function useBodyResize(hook: Function) { + if (!hook) { + return; + } + const themeStore = useThemeStore(); + const { contentWidth } = storeToRefs(themeStore); + + watch(contentWidth, (value, oldValue) => { + if (value != null && oldValue != null) { + hook(); + } + }); +} diff --git a/src/utils/use-dict-data.ts b/src/utils/use-dict-data.ts new file mode 100644 index 0000000..ae0b647 --- /dev/null +++ b/src/utils/use-dict-data.ts @@ -0,0 +1,37 @@ +import type { ComputedRef } from 'vue'; +import { computed } from 'vue'; +import { EleMessage } from 'ele-admin-plus/es'; +import { storeToRefs } from 'pinia'; +import { useUserStore } from '@/store/modules/user'; +import { listDictionaryData } from '@/api/system/dictionary-data'; +import type { DictionaryData } from '@/api/system/dictionary-data/model'; + +/** + * 获取字典数据hook + * @param codes 字典编码 + */ +export function useDictData(codes: string[]): ComputedRef[] { + const result: ComputedRef[] = []; + + // 已缓存的字典 + const userStore = useUserStore(); + const { dicts } = storeToRefs(userStore); + + codes.forEach((code) => { + result.push(computed(() => dicts.value[code] || [])); + // 若还未缓存过则获取字典数据 + if (dicts.value[code] != null) { + return; + } + userStore.setDicts([], code); + listDictionaryData({ dictCode: code }) + .then((list) => { + userStore.setDicts(list, code); + }) + .catch((e) => { + EleMessage.error(e.message); + }); + }); + + return result; +} diff --git a/src/utils/use-echarts.ts b/src/utils/use-echarts.ts new file mode 100644 index 0000000..ed1e8c1 --- /dev/null +++ b/src/utils/use-echarts.ts @@ -0,0 +1,77 @@ +import type { Ref } from 'vue'; +import { + ref, + reactive, + unref, + provide, + watch, + onActivated, + onDeactivated, + nextTick +} from 'vue'; +import { storeToRefs } from 'pinia'; +import type VChart from 'vue-echarts'; +import { THEME_KEY } from 'vue-echarts'; +import { ChartTheme, ChartThemeDark } from 'ele-admin-plus/es'; +import { useThemeStore } from '@/store/modules/theme'; +import { useBodyResize } from './use-body-resize'; + +/** + * echarts自动切换主题/重置尺寸hook + * @param refs 图表ref + */ +export function useEcharts(refs: Ref | null>[]) { + /** 是否是暗黑主题 */ + const themeStore = useThemeStore(); + const { darkMode } = storeToRefs(themeStore); + /** 是否为deactivated状态 */ + const deactivated = ref(false); + /** 当前图表是否是暗黑主题 */ + const isDark = ref(unref(darkMode)); + /** 当前图表主题 */ + const chartsTheme = reactive({ + ...(unref(isDark) ? ChartThemeDark : ChartTheme) + }); + + // 设置图表主题 + provide(THEME_KEY, chartsTheme); + + /** 重置图表尺寸 */ + const resizeCharts = () => { + refs.forEach((chartRef) => { + unref(chartRef)?.resize?.(); + }); + }; + + /** 屏幕尺寸变化监听 */ + useBodyResize(() => { + resizeCharts(); + }); + + /** 更改图表主题 */ + const changeTheme = (dark: boolean) => { + isDark.value = dark; + Object.assign(chartsTheme, dark ? ChartThemeDark : ChartTheme); + }; + + onActivated(() => { + deactivated.value = false; + nextTick(() => { + if (unref(isDark) !== unref(darkMode)) { + changeTheme(unref(darkMode)); + } else { + resizeCharts(); + } + }); + }); + + onDeactivated(() => { + deactivated.value = true; + }); + + watch(darkMode, (dark) => { + if (!unref(deactivated)) { + changeTheme(dark); + } + }); +} diff --git a/src/utils/use-form-data.ts b/src/utils/use-form-data.ts new file mode 100644 index 0000000..38209b1 --- /dev/null +++ b/src/utils/use-form-data.ts @@ -0,0 +1,58 @@ +import { reactive } from 'vue'; +import type { UnwrapNestedRefs } from 'vue'; +type Result = [ + UnwrapNestedRefs, + (field?: string) => void, + (data: object, excludes?: string[]) => void, + (field: string, value: unknown) => void +] & { + form: UnwrapNestedRefs; + resetFields: (field?: string) => void; + assignFields: (data: object, excludes?: string[]) => void; +}; + +/** + * 表单数据hook + * @param initValue 默认值 + */ +export function useFormData(initValue?: T): Result { + /** 表单数据 */ + const form = reactive({ ...initValue } as T); + + /** 重置为初始值 */ + const resetFields = (field?: string) => { + const keys = Object.keys(form); + if (typeof field === 'string' && field) { + if (keys.includes(field)) { + form[field] = initValue ? initValue[field] : void 0; + } + return; + } + keys.forEach((key) => { + form[key] = initValue ? initValue[key] : void 0; + }); + }; + + /** 赋值不改变字段 */ + const assignFields = (data: object, excludes?: string[]) => { + Object.keys(form).forEach((key) => { + if (!excludes?.includes?.(key)) { + form[key] = data[key]; + } + }); + }; + + /** 赋值某字段 */ + const setFieldValue = (field: string, value: unknown) => { + form[field] = value; + }; + + const result = [form, resetFields, assignFields, setFieldValue]; + // 支持对象解构以兼容旧版 + Object.assign(result, { + form, + resetFields, + assignFields + }); + return result as Result; +} diff --git a/src/utils/use-mobile.ts b/src/utils/use-mobile.ts new file mode 100644 index 0000000..8722d3f --- /dev/null +++ b/src/utils/use-mobile.ts @@ -0,0 +1,43 @@ +import { ref, onBeforeUnmount } from 'vue'; + +/** + * 获取是否是移动端小屏幕hook + * @param onChange 值改变回调 + */ +export function useMobile(onChange?: (isMobile: boolean) => void) { + const media = window.matchMedia('(max-width: 768px)'); + const mobile = ref(media.matches); + + const onMediaChangeListener = () => { + mobile.value = media.matches; + onChange && onChange(mobile.value); + }; + media.addEventListener('change', onMediaChangeListener); + + onBeforeUnmount(() => { + media.removeEventListener('change', onMediaChangeListener); + }); + + return { mobile }; +} + +/** + * 获取是否是移动端触摸设备hook + * @param onChange 值改变回调 + */ +export function useMobileDevice(onChange?: (isMobile: boolean) => void) { + const media = window.matchMedia('(pointer: coarse)'); + const mobileDevice = ref(media.matches); + + const onMediaChangeListener = () => { + mobileDevice.value = media.matches; + onChange && onChange(mobileDevice.value); + }; + media.addEventListener('change', onMediaChangeListener); + + onBeforeUnmount(() => { + media.removeEventListener('change', onMediaChangeListener); + }); + + return { mobileDevice }; +} diff --git a/src/utils/use-page-tab.ts b/src/utils/use-page-tab.ts new file mode 100644 index 0000000..66e2866 --- /dev/null +++ b/src/utils/use-page-tab.ts @@ -0,0 +1,210 @@ +import { unref } from 'vue'; +import { useRouter } from 'vue-router'; +import { EleMessage } from 'ele-admin-plus/es'; +import type { + TabItem, + TabItemEventOption +} from 'ele-admin-plus/es/ele-pro-layout/types'; +import { useThemeStore } from '@/store/modules/theme'; +import type { TabRemoveResult } from '@/store/modules/theme'; +import { HOME_PATH, LAYOUT_PATH, REDIRECT_PATH } from '@/config/setting'; + +/** + * 页签操作hook + */ +export function usePageTab() { + const HOME_ROUTE = HOME_PATH || LAYOUT_PATH; + const { push, replace, currentRoute } = useRouter(); + const themeStore = useThemeStore(); + + /** + * 刷新当前路由 + */ + const reloadPageTab = (option?: TabReloadOptions) => { + const { path, fullPath, query } = unref(currentRoute); + if (path.includes(REDIRECT_PATH)) { + return; + } + if (!option) { + // 刷新当前路由 + if (path.includes(REDIRECT_PATH)) { + return; + } + setPageTab({ fullPath, refresh: true }); + replace({ path: REDIRECT_PATH + path, query }); + } else { + // 刷新指定页签 + setPageTab({ fullPath: option.fullPath, refresh: true }); + replace(REDIRECT_PATH + option.fullPath); + } + }; + + /** + * 关闭当前页签 + */ + const finishPageTab = () => { + const key = getRouteTabKey(); + removePageTab({ key, active: key }); + }; + + /** + * 关闭指定页签 + */ + const removePageTab = (option: TabItemEventOption) => { + themeStore + .tabRemove(option) + .then((result) => { + onRemoveDone(result); + }) + .catch(() => { + EleMessage.error('当前页签不可关闭'); + }); + }; + + /** + * 关闭左侧页签 + */ + const removeLeftPageTab = (option: TabItemEventOption) => { + themeStore + .tabRemoveLeft(option) + .then((result) => { + onRemoveDone(result); + }) + .catch(() => { + EleMessage.error('左侧没有可关闭的页签'); + }); + }; + + /** + * 关闭右侧页签 + */ + const removeRightPageTab = (option: TabItemEventOption) => { + themeStore + .tabRemoveRight(option) + .then((result) => { + onRemoveDone(result); + }) + .catch(() => { + EleMessage.error('右侧没有可关闭的页签'); + }); + }; + + /** + * 关闭其它页签 + */ + const removeOtherPageTab = (option: TabItemEventOption) => { + themeStore + .tabRemoveOther(option) + .then((result) => { + onRemoveDone(result); + }) + .catch(() => { + EleMessage.error('没有可关闭的页签'); + }); + }; + + /** + * 关闭全部页签 + */ + const removeAllPageTab = (option: TabItemEventOption) => { + themeStore + .tabRemoveAll(option) + .then((result) => { + onRemoveDone(result); + }) + .catch(() => { + EleMessage.error('没有可关闭的页签'); + }); + }; + + /** + * 页签移除方法完成操作 + */ + const onRemoveDone = ({ path, home }: TabRemoveResult) => { + if (path) { + push(path); + } else if (home) { + push(HOME_ROUTE); + } + }; + + /** + * 更新页签数据 + * @param data 页签数据 + */ + const setPageTabs = (data: TabItem[]) => { + themeStore.setTabs(data); + }; + + /** + * 登录成功后清空页签 + */ + const cleanPageTabs = () => { + setPageTabs([]); + }; + + /** + * 添加页签 + * @param data 页签数据 + */ + const addPageTab = (data: TabItem) => { + themeStore.tabAdd(data); + }; + + /** + * 修改页签 + * @param data 页签数据 + */ + const setPageTab = (data: TabItem) => { + themeStore.tabSetItem(data); + }; + + /** + * 修改当前页签标题 + * @param title 标题 + */ + const setPageTabTitle = (title: string) => { + setPageTab({ key: getRouteTabKey(), title }); + }; + + /** + * 获取当前路由对应的页签key + */ + const getRouteTabKey = () => { + const { path, fullPath, meta } = unref(currentRoute); + return meta.tabUnique === false ? fullPath : path; + }; + + /** + * 登录成功后跳转首页 + * @param from 登录前的地址 + */ + const goHomeRoute = (from?: string) => { + replace(from ? decodeURIComponent(from) : HOME_ROUTE); + }; + + return { + reloadPageTab, + finishPageTab, + removePageTab, + removeLeftPageTab, + removeRightPageTab, + removeOtherPageTab, + removeAllPageTab, + setPageTabs, + cleanPageTabs, + addPageTab, + setPageTab, + setPageTabTitle, + getRouteTabKey, + goHomeRoute + }; +} + +/** + * 刷新页签参数类型 + */ +export interface TabReloadOptions { + /** 路由地址 */ + fullPath?: string; +} diff --git a/src/utils/use-permission.ts b/src/utils/use-permission.ts new file mode 100644 index 0000000..879cc98 --- /dev/null +++ b/src/utils/use-permission.ts @@ -0,0 +1,88 @@ +import { storeToRefs } from 'pinia'; +import { useUserStore } from '@/store/modules/user'; + +/** + * 权限判断hook + */ +export function usePermission() { + const userStore = useUserStore(); + const { authorities, roles } = storeToRefs(userStore); + + /** + * 是否有某些权限 + * @param value 权限字符或字符数组 + */ + const hasPermission = (value: string | string[]): boolean => { + // 如果需要某个特殊标识代表全部权限可添加如下 + /* if (authorities.value && authorities.value.includes('*:*:*')) { + return true; + } */ + return arrayHas(authorities.value, value); + }; + + /** + * 是否有任意权限 + * @param value 权限字符或字符数组 + */ + const hasAnyPermission = (value: string | string[]): boolean => { + // 如果需要某个特殊标识代表全部权限可添加如下 + /* if (authorities.value && authorities.value.includes('*:*:*')) { + return true; + } */ + return arrayHasAny(authorities.value, value); + }; + + /** + * 是否有某些角色 + * @param value 角色字符或字符数组 + */ + const hasRole = (value: string | string[]): boolean => { + return arrayHas(roles.value, value); + }; + + /** + * 是否有任意角色 + * @param value 角色字符或字符数组 + */ + const hasAnyRole = (value: string | string[]): boolean => { + return arrayHasAny(roles.value, value); + }; + + return { hasPermission, hasAnyPermission, hasRole, hasAnyRole }; +} + +/** + * 判断数组是否有某些值 + * @param array 数组 + * @param value 单个值或数组 + */ +function arrayHas(array: (string | undefined)[], value: string | string[]) { + if (!value) { + return true; + } + if (!array) { + return false; + } + if (Array.isArray(value)) { + return value.every((v) => array.includes(v)); + } + return array.includes(value); +} + +/** + * 判断数组是否有任意值 + * @param array 数组 + * @param value 单个值或数组 + */ +function arrayHasAny(array: (string | undefined)[], value: string | string[]) { + if (!value) { + return true; + } + if (!array) { + return false; + } + if (Array.isArray(value)) { + return array.some((d) => d && value.includes(d)); + } + return array.includes(value); +} diff --git a/src/views/dashboard/analysis/components/hot-search.vue b/src/views/dashboard/analysis/components/hot-search.vue new file mode 100644 index 0000000..19566fc --- /dev/null +++ b/src/views/dashboard/analysis/components/hot-search.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/views/dashboard/analysis/components/sale-card.vue b/src/views/dashboard/analysis/components/sale-card.vue new file mode 100644 index 0000000..b40d50c --- /dev/null +++ b/src/views/dashboard/analysis/components/sale-card.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/dashboard/analysis/components/statistics-card.vue b/src/views/dashboard/analysis/components/statistics-card.vue new file mode 100644 index 0000000..79fab3b --- /dev/null +++ b/src/views/dashboard/analysis/components/statistics-card.vue @@ -0,0 +1,289 @@ + + + + + + diff --git a/src/views/dashboard/analysis/components/visit-hour.vue b/src/views/dashboard/analysis/components/visit-hour.vue new file mode 100644 index 0000000..2685fbc --- /dev/null +++ b/src/views/dashboard/analysis/components/visit-hour.vue @@ -0,0 +1,99 @@ + + + diff --git a/src/views/dashboard/analysis/index.vue b/src/views/dashboard/analysis/index.vue new file mode 100644 index 0000000..6a837a0 --- /dev/null +++ b/src/views/dashboard/analysis/index.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/views/dashboard/monitor/components/browser-card.vue b/src/views/dashboard/monitor/components/browser-card.vue new file mode 100644 index 0000000..d4e8055 --- /dev/null +++ b/src/views/dashboard/monitor/components/browser-card.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/views/dashboard/monitor/components/map-card.vue b/src/views/dashboard/monitor/components/map-card.vue new file mode 100644 index 0000000..aecfa3d --- /dev/null +++ b/src/views/dashboard/monitor/components/map-card.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/dashboard/monitor/components/online-num.vue b/src/views/dashboard/monitor/components/online-num.vue new file mode 100644 index 0000000..5a3d613 --- /dev/null +++ b/src/views/dashboard/monitor/components/online-num.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/dashboard/monitor/components/statistics-card.vue b/src/views/dashboard/monitor/components/statistics-card.vue new file mode 100644 index 0000000..ba1f3d9 --- /dev/null +++ b/src/views/dashboard/monitor/components/statistics-card.vue @@ -0,0 +1,185 @@ + + + + + + diff --git a/src/views/dashboard/monitor/components/user-liveness.vue b/src/views/dashboard/monitor/components/user-liveness.vue new file mode 100644 index 0000000..7e509fc --- /dev/null +++ b/src/views/dashboard/monitor/components/user-liveness.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/views/dashboard/monitor/components/user-rate.vue b/src/views/dashboard/monitor/components/user-rate.vue new file mode 100644 index 0000000..1467ca8 --- /dev/null +++ b/src/views/dashboard/monitor/components/user-rate.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/dashboard/monitor/components/user-satisfaction.vue b/src/views/dashboard/monitor/components/user-satisfaction.vue new file mode 100644 index 0000000..070119d --- /dev/null +++ b/src/views/dashboard/monitor/components/user-satisfaction.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/views/dashboard/monitor/index.vue b/src/views/dashboard/monitor/index.vue new file mode 100644 index 0000000..8578f55 --- /dev/null +++ b/src/views/dashboard/monitor/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/activities-card.vue b/src/views/dashboard/workplace/components/activities-card.vue new file mode 100644 index 0000000..8b94082 --- /dev/null +++ b/src/views/dashboard/workplace/components/activities-card.vue @@ -0,0 +1,157 @@ + + + + + + diff --git a/src/views/dashboard/workplace/components/goal-card.vue b/src/views/dashboard/workplace/components/goal-card.vue new file mode 100644 index 0000000..56408ac --- /dev/null +++ b/src/views/dashboard/workplace/components/goal-card.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/dashboard/workplace/components/link-card.vue b/src/views/dashboard/workplace/components/link-card.vue new file mode 100644 index 0000000..e6e6834 --- /dev/null +++ b/src/views/dashboard/workplace/components/link-card.vue @@ -0,0 +1,204 @@ + + + + + + + + diff --git a/src/views/dashboard/workplace/components/more-icon.vue b/src/views/dashboard/workplace/components/more-icon.vue new file mode 100644 index 0000000..51b8239 --- /dev/null +++ b/src/views/dashboard/workplace/components/more-icon.vue @@ -0,0 +1,47 @@ + + + diff --git a/src/views/dashboard/workplace/components/profile-card.vue b/src/views/dashboard/workplace/components/profile-card.vue new file mode 100644 index 0000000..a3a1527 --- /dev/null +++ b/src/views/dashboard/workplace/components/profile-card.vue @@ -0,0 +1,148 @@ + + + + + + diff --git a/src/views/dashboard/workplace/components/project-card.vue b/src/views/dashboard/workplace/components/project-card.vue new file mode 100644 index 0000000..0c25986 --- /dev/null +++ b/src/views/dashboard/workplace/components/project-card.vue @@ -0,0 +1,175 @@ + + + + + + diff --git a/src/views/dashboard/workplace/components/task-card.vue b/src/views/dashboard/workplace/components/task-card.vue new file mode 100644 index 0000000..08ff53b --- /dev/null +++ b/src/views/dashboard/workplace/components/task-card.vue @@ -0,0 +1,202 @@ + + + + + + diff --git a/src/views/dashboard/workplace/components/user-list.vue b/src/views/dashboard/workplace/components/user-list.vue new file mode 100644 index 0000000..02d153e --- /dev/null +++ b/src/views/dashboard/workplace/components/user-list.vue @@ -0,0 +1,135 @@ + + + + + + diff --git a/src/views/dashboard/workplace/index.vue b/src/views/dashboard/workplace/index.vue new file mode 100644 index 0000000..aca40df --- /dev/null +++ b/src/views/dashboard/workplace/index.vue @@ -0,0 +1,294 @@ + + + + + + + diff --git a/src/views/dashboard/workplace/model/index.ts b/src/views/dashboard/workplace/model/index.ts new file mode 100644 index 0000000..88a6db5 --- /dev/null +++ b/src/views/dashboard/workplace/model/index.ts @@ -0,0 +1 @@ +export type Command = 'edit' | 'remove'; diff --git a/src/views/example/components/demo-component.vue b/src/views/example/components/demo-component.vue new file mode 100644 index 0000000..6f4202a --- /dev/null +++ b/src/views/example/components/demo-component.vue @@ -0,0 +1,413 @@ + + + diff --git a/src/views/example/components/demo-tab.vue b/src/views/example/components/demo-tab.vue new file mode 100644 index 0000000..290e897 --- /dev/null +++ b/src/views/example/components/demo-tab.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/example/components/menu-badge.vue b/src/views/example/components/menu-badge.vue new file mode 100644 index 0000000..2d1ab5a --- /dev/null +++ b/src/views/example/components/menu-badge.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/example/components/menu-group.vue b/src/views/example/components/menu-group.vue new file mode 100644 index 0000000..8f53aae --- /dev/null +++ b/src/views/example/components/menu-group.vue @@ -0,0 +1,149 @@ + + + diff --git a/src/views/example/index.vue b/src/views/example/index.vue new file mode 100644 index 0000000..1b25b88 --- /dev/null +++ b/src/views/example/index.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/views/exception/403/components/icon-svg.vue b/src/views/exception/403/components/icon-svg.vue new file mode 100644 index 0000000..48cbdbd --- /dev/null +++ b/src/views/exception/403/components/icon-svg.vue @@ -0,0 +1,276 @@ + diff --git a/src/views/exception/403/index.vue b/src/views/exception/403/index.vue new file mode 100644 index 0000000..ac16df3 --- /dev/null +++ b/src/views/exception/403/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/exception/404/components/icon-svg.vue b/src/views/exception/404/components/icon-svg.vue new file mode 100644 index 0000000..9dbf6ba --- /dev/null +++ b/src/views/exception/404/components/icon-svg.vue @@ -0,0 +1,288 @@ + diff --git a/src/views/exception/404/index.vue b/src/views/exception/404/index.vue new file mode 100644 index 0000000..752d609 --- /dev/null +++ b/src/views/exception/404/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/exception/500/components/icon-svg.vue b/src/views/exception/500/components/icon-svg.vue new file mode 100644 index 0000000..26cf709 --- /dev/null +++ b/src/views/exception/500/components/icon-svg.vue @@ -0,0 +1,331 @@ + diff --git a/src/views/exception/500/index.vue b/src/views/exception/500/index.vue new file mode 100644 index 0000000..fe9d8f0 --- /dev/null +++ b/src/views/exception/500/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/extension/avatar/components/option-item.vue b/src/views/extension/avatar/components/option-item.vue new file mode 100644 index 0000000..7933443 --- /dev/null +++ b/src/views/extension/avatar/components/option-item.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/extension/avatar/index.vue b/src/views/extension/avatar/index.vue new file mode 100644 index 0000000..4604077 --- /dev/null +++ b/src/views/extension/avatar/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/views/extension/bar-code/index.vue b/src/views/extension/bar-code/index.vue new file mode 100644 index 0000000..d575ac9 --- /dev/null +++ b/src/views/extension/bar-code/index.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/views/extension/check-card/index.vue b/src/views/extension/check-card/index.vue new file mode 100644 index 0000000..87fe402 --- /dev/null +++ b/src/views/extension/check-card/index.vue @@ -0,0 +1,282 @@ + + + + + + + + + diff --git a/src/views/extension/dragsort/components/demo-grid.vue b/src/views/extension/dragsort/components/demo-grid.vue new file mode 100644 index 0000000..9613719 --- /dev/null +++ b/src/views/extension/dragsort/components/demo-grid.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/extension/dragsort/components/demo-list.vue b/src/views/extension/dragsort/components/demo-list.vue new file mode 100644 index 0000000..796e6db --- /dev/null +++ b/src/views/extension/dragsort/components/demo-list.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/views/extension/dragsort/components/demo-table.vue b/src/views/extension/dragsort/components/demo-table.vue new file mode 100644 index 0000000..4e6f32c --- /dev/null +++ b/src/views/extension/dragsort/components/demo-table.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/extension/dragsort/index.vue b/src/views/extension/dragsort/index.vue new file mode 100644 index 0000000..86de00e --- /dev/null +++ b/src/views/extension/dragsort/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/extension/editor/index.vue b/src/views/extension/editor/index.vue new file mode 100644 index 0000000..b66b1ed --- /dev/null +++ b/src/views/extension/editor/index.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/src/views/extension/excel/components/excel-export.vue b/src/views/extension/excel/components/excel-export.vue new file mode 100644 index 0000000..4a9e47f --- /dev/null +++ b/src/views/extension/excel/components/excel-export.vue @@ -0,0 +1,275 @@ + + + diff --git a/src/views/extension/excel/components/excel-import.vue b/src/views/extension/excel/components/excel-import.vue new file mode 100644 index 0000000..4fc514c --- /dev/null +++ b/src/views/extension/excel/components/excel-import.vue @@ -0,0 +1,312 @@ + + + diff --git a/src/views/extension/excel/index.vue b/src/views/extension/excel/index.vue new file mode 100644 index 0000000..75754fb --- /dev/null +++ b/src/views/extension/excel/index.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/views/extension/file/components/file-header.vue b/src/views/extension/file/components/file-header.vue new file mode 100644 index 0000000..6ae89b9 --- /dev/null +++ b/src/views/extension/file/components/file-header.vue @@ -0,0 +1,132 @@ + + + + + + diff --git a/src/views/extension/file/components/file-list.vue b/src/views/extension/file/components/file-list.vue new file mode 100644 index 0000000..bfb2c27 --- /dev/null +++ b/src/views/extension/file/components/file-list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/views/extension/file/components/file-toolbar.vue b/src/views/extension/file/components/file-toolbar.vue new file mode 100644 index 0000000..2f28e4d --- /dev/null +++ b/src/views/extension/file/components/file-toolbar.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/extension/file/components/folder-edit.vue b/src/views/extension/file/components/folder-edit.vue new file mode 100644 index 0000000..c3baa69 --- /dev/null +++ b/src/views/extension/file/components/folder-edit.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/extension/file/components/name-edit.vue b/src/views/extension/file/components/name-edit.vue new file mode 100644 index 0000000..2ce5d13 --- /dev/null +++ b/src/views/extension/file/components/name-edit.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/views/extension/file/index.vue b/src/views/extension/file/index.vue new file mode 100644 index 0000000..1e314a2 --- /dev/null +++ b/src/views/extension/file/index.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/views/extension/icon/components/basic-icons.ts b/src/views/extension/icon/components/basic-icons.ts new file mode 100644 index 0000000..73b3c2b --- /dev/null +++ b/src/views/extension/icon/components/basic-icons.ts @@ -0,0 +1,37 @@ +export { + CheckCircleOutlined, + CloseCircleOutlined, + QuestionCircleOutlined, + UserOutlined, + SearchOutlined, + SettingOutlined, + HomeOutlined, + MessageOutlined, + EditOutlined, + DeleteOutlined, + PlusCircleOutlined, + MinusCircleOutlined, + ArrowUp, + ArrowDown, + ArrowLeft, + ArrowRight, + VerticalRightOutlined, + VerticalLeftOutlined, + DashboardOutlined, + CompassOutlined, + ProtectOutlined, + CheckCircleFilled, + CloseCircleFilled, + QuestionCircleFilled, + ExclamationCircleFilled, + FilterFilled, + CaretUpFilled, + CaretDownFilled, + StepBackwardFilled, + StepForwardFilled, + PlayFilled, + PauseFilled, + QqFilled, + WechatFilled, + AlipayFilled +} from '@/components/icons'; diff --git a/src/views/extension/icon/components/demo-advanced.vue b/src/views/extension/icon/components/demo-advanced.vue new file mode 100644 index 0000000..6a4e5de --- /dev/null +++ b/src/views/extension/icon/components/demo-advanced.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/extension/icon/components/demo-basic.vue b/src/views/extension/icon/components/demo-basic.vue new file mode 100644 index 0000000..b106e2f --- /dev/null +++ b/src/views/extension/icon/components/demo-basic.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/views/extension/icon/index.vue b/src/views/extension/icon/index.vue new file mode 100644 index 0000000..80a7d15 --- /dev/null +++ b/src/views/extension/icon/index.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/views/extension/map/components/demo-map.vue b/src/views/extension/map/components/demo-map.vue new file mode 100644 index 0000000..d6dafa8 --- /dev/null +++ b/src/views/extension/map/components/demo-map.vue @@ -0,0 +1,99 @@ + + + diff --git a/src/views/extension/map/components/demo-picker.vue b/src/views/extension/map/components/demo-picker.vue new file mode 100644 index 0000000..524fd5a --- /dev/null +++ b/src/views/extension/map/components/demo-picker.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/views/extension/map/components/demo-track.vue b/src/views/extension/map/components/demo-track.vue new file mode 100644 index 0000000..7b278ff --- /dev/null +++ b/src/views/extension/map/components/demo-track.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/views/extension/map/index.vue b/src/views/extension/map/index.vue new file mode 100644 index 0000000..994dc44 --- /dev/null +++ b/src/views/extension/map/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/extension/markdown/index.vue b/src/views/extension/markdown/index.vue new file mode 100644 index 0000000..bb47986 --- /dev/null +++ b/src/views/extension/markdown/index.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/extension/menu/index.vue b/src/views/extension/menu/index.vue new file mode 100644 index 0000000..36eec2b --- /dev/null +++ b/src/views/extension/menu/index.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/views/extension/message/index.vue b/src/views/extension/message/index.vue new file mode 100644 index 0000000..a0d02bc --- /dev/null +++ b/src/views/extension/message/index.vue @@ -0,0 +1,468 @@ + + + + + diff --git a/src/views/extension/modal/components/demo-drawer.vue b/src/views/extension/modal/components/demo-drawer.vue new file mode 100644 index 0000000..ff37e11 --- /dev/null +++ b/src/views/extension/modal/components/demo-drawer.vue @@ -0,0 +1,270 @@ + + + diff --git a/src/views/extension/modal/components/demo-modal.vue b/src/views/extension/modal/components/demo-modal.vue new file mode 100644 index 0000000..b36dd6b --- /dev/null +++ b/src/views/extension/modal/components/demo-modal.vue @@ -0,0 +1,233 @@ + + + diff --git a/src/views/extension/modal/components/multiple-modal.vue b/src/views/extension/modal/components/multiple-modal.vue new file mode 100644 index 0000000..b76f156 --- /dev/null +++ b/src/views/extension/modal/components/multiple-modal.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/extension/modal/index.vue b/src/views/extension/modal/index.vue new file mode 100644 index 0000000..e47ec94 --- /dev/null +++ b/src/views/extension/modal/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/extension/player/components/demo-basic.vue b/src/views/extension/player/components/demo-basic.vue new file mode 100644 index 0000000..8bec8c1 --- /dev/null +++ b/src/views/extension/player/components/demo-basic.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/views/extension/player/components/demo-danmu.vue b/src/views/extension/player/components/demo-danmu.vue new file mode 100644 index 0000000..ccbdd1c --- /dev/null +++ b/src/views/extension/player/components/demo-danmu.vue @@ -0,0 +1,253 @@ + + + diff --git a/src/views/extension/player/components/demo-live.vue b/src/views/extension/player/components/demo-live.vue new file mode 100644 index 0000000..b5d4eb3 --- /dev/null +++ b/src/views/extension/player/components/demo-live.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/extension/player/components/demo-music.vue b/src/views/extension/player/components/demo-music.vue new file mode 100644 index 0000000..b92ee47 --- /dev/null +++ b/src/views/extension/player/components/demo-music.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/src/views/extension/player/index.vue b/src/views/extension/player/index.vue new file mode 100644 index 0000000..6e2b72d --- /dev/null +++ b/src/views/extension/player/index.vue @@ -0,0 +1,59 @@ + + + + + + + diff --git a/src/views/extension/printer/components/print-checkbox.vue b/src/views/extension/printer/components/print-checkbox.vue new file mode 100644 index 0000000..8a5f0c0 --- /dev/null +++ b/src/views/extension/printer/components/print-checkbox.vue @@ -0,0 +1,89 @@ + + + + + + diff --git a/src/views/extension/printer/components/print-contract.vue b/src/views/extension/printer/components/print-contract.vue new file mode 100644 index 0000000..cd79c23 --- /dev/null +++ b/src/views/extension/printer/components/print-contract.vue @@ -0,0 +1,325 @@ + + + + + + diff --git a/src/views/extension/printer/index.vue b/src/views/extension/printer/index.vue new file mode 100644 index 0000000..e36d6fa --- /dev/null +++ b/src/views/extension/printer/index.vue @@ -0,0 +1,319 @@ + + + + + diff --git a/src/views/extension/qr-code/index.vue b/src/views/extension/qr-code/index.vue new file mode 100644 index 0000000..555baa7 --- /dev/null +++ b/src/views/extension/qr-code/index.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/extension/regions/index.vue b/src/views/extension/regions/index.vue new file mode 100644 index 0000000..252165f --- /dev/null +++ b/src/views/extension/regions/index.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/views/extension/segmented/index.vue b/src/views/extension/segmented/index.vue new file mode 100644 index 0000000..4e80b72 --- /dev/null +++ b/src/views/extension/segmented/index.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/views/extension/split/components/demo-basic.vue b/src/views/extension/split/components/demo-basic.vue new file mode 100644 index 0000000..83f4ea0 --- /dev/null +++ b/src/views/extension/split/components/demo-basic.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/views/extension/split/components/demo-table.vue b/src/views/extension/split/components/demo-table.vue new file mode 100644 index 0000000..c54ca43 --- /dev/null +++ b/src/views/extension/split/components/demo-table.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/extension/split/index.vue b/src/views/extension/split/index.vue new file mode 100644 index 0000000..21bd227 --- /dev/null +++ b/src/views/extension/split/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/extension/steps/index.vue b/src/views/extension/steps/index.vue new file mode 100644 index 0000000..b6227c2 --- /dev/null +++ b/src/views/extension/steps/index.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/views/extension/table-select/components/demo-advanced-search.vue b/src/views/extension/table-select/components/demo-advanced-search.vue new file mode 100644 index 0000000..59b37c7 --- /dev/null +++ b/src/views/extension/table-select/components/demo-advanced-search.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/views/extension/table-select/components/demo-advanced.vue b/src/views/extension/table-select/components/demo-advanced.vue new file mode 100644 index 0000000..3e868af --- /dev/null +++ b/src/views/extension/table-select/components/demo-advanced.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/extension/table-select/components/demo-basic-page.vue b/src/views/extension/table-select/components/demo-basic-page.vue new file mode 100644 index 0000000..5832861 --- /dev/null +++ b/src/views/extension/table-select/components/demo-basic-page.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/extension/table-select/components/demo-basic.vue b/src/views/extension/table-select/components/demo-basic.vue new file mode 100644 index 0000000..eb55cb5 --- /dev/null +++ b/src/views/extension/table-select/components/demo-basic.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/views/extension/table-select/components/demo-multiple.vue b/src/views/extension/table-select/components/demo-multiple.vue new file mode 100644 index 0000000..388015b --- /dev/null +++ b/src/views/extension/table-select/components/demo-multiple.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/extension/table-select/components/demo-virtual.vue b/src/views/extension/table-select/components/demo-virtual.vue new file mode 100644 index 0000000..db3be6d --- /dev/null +++ b/src/views/extension/table-select/components/demo-virtual.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/extension/table-select/index.vue b/src/views/extension/table-select/index.vue new file mode 100644 index 0000000..0bf375e --- /dev/null +++ b/src/views/extension/table-select/index.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/views/extension/table/components/child-table.vue b/src/views/extension/table/components/child-table.vue new file mode 100644 index 0000000..b1fdbef --- /dev/null +++ b/src/views/extension/table/components/child-table.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/views/extension/table/components/default-sorter.vue b/src/views/extension/table/components/default-sorter.vue new file mode 100644 index 0000000..8d74a49 --- /dev/null +++ b/src/views/extension/table/components/default-sorter.vue @@ -0,0 +1,99 @@ + + + diff --git a/src/views/extension/table/components/demo-base.vue b/src/views/extension/table/components/demo-base.vue new file mode 100644 index 0000000..6c7e921 --- /dev/null +++ b/src/views/extension/table/components/demo-base.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/src/views/extension/table/components/editable-table.vue b/src/views/extension/table/components/editable-table.vue new file mode 100644 index 0000000..6804b5d --- /dev/null +++ b/src/views/extension/table/components/editable-table.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/src/views/extension/table/components/expandable-table.vue b/src/views/extension/table/components/expandable-table.vue new file mode 100644 index 0000000..755a554 --- /dev/null +++ b/src/views/extension/table/components/expandable-table.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/views/extension/table/components/merge-cell.vue b/src/views/extension/table/components/merge-cell.vue new file mode 100644 index 0000000..85f3deb --- /dev/null +++ b/src/views/extension/table/components/merge-cell.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/extension/table/components/nested-table.vue b/src/views/extension/table/components/nested-table.vue new file mode 100644 index 0000000..48fb603 --- /dev/null +++ b/src/views/extension/table/components/nested-table.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/views/extension/table/components/sortable-table.vue b/src/views/extension/table/components/sortable-table.vue new file mode 100644 index 0000000..fce948a --- /dev/null +++ b/src/views/extension/table/components/sortable-table.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/views/extension/table/components/tree-table.vue b/src/views/extension/table/components/tree-table.vue new file mode 100644 index 0000000..ad3c618 --- /dev/null +++ b/src/views/extension/table/components/tree-table.vue @@ -0,0 +1,59 @@ + + + diff --git a/src/views/extension/table/components/virtual-base.vue b/src/views/extension/table/components/virtual-base.vue new file mode 100644 index 0000000..6309c18 --- /dev/null +++ b/src/views/extension/table/components/virtual-base.vue @@ -0,0 +1,353 @@ + + + + + diff --git a/src/views/extension/table/components/virtual-expandable.vue b/src/views/extension/table/components/virtual-expandable.vue new file mode 100644 index 0000000..37cd974 --- /dev/null +++ b/src/views/extension/table/components/virtual-expandable.vue @@ -0,0 +1,168 @@ + + + diff --git a/src/views/extension/table/components/virtual-header.vue b/src/views/extension/table/components/virtual-header.vue new file mode 100644 index 0000000..2ebd49b --- /dev/null +++ b/src/views/extension/table/components/virtual-header.vue @@ -0,0 +1,134 @@ + + + diff --git a/src/views/extension/table/components/virtual-merge.vue b/src/views/extension/table/components/virtual-merge.vue new file mode 100644 index 0000000..4a4f8f8 --- /dev/null +++ b/src/views/extension/table/components/virtual-merge.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/extension/table/components/virtual-tree.vue b/src/views/extension/table/components/virtual-tree.vue new file mode 100644 index 0000000..c11cef4 --- /dev/null +++ b/src/views/extension/table/components/virtual-tree.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/extension/table/index.vue b/src/views/extension/table/index.vue new file mode 100644 index 0000000..6b354f2 --- /dev/null +++ b/src/views/extension/table/index.vue @@ -0,0 +1,161 @@ + + + + + + + diff --git a/src/views/extension/tabs/index.vue b/src/views/extension/tabs/index.vue new file mode 100644 index 0000000..5cdcfde --- /dev/null +++ b/src/views/extension/tabs/index.vue @@ -0,0 +1,262 @@ + + + + + + + diff --git a/src/views/extension/tag/index.vue b/src/views/extension/tag/index.vue new file mode 100644 index 0000000..bbd463c --- /dev/null +++ b/src/views/extension/tag/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/extension/text/index.vue b/src/views/extension/text/index.vue new file mode 100644 index 0000000..2289c07 --- /dev/null +++ b/src/views/extension/text/index.vue @@ -0,0 +1,237 @@ + + + + + + + diff --git a/src/views/extension/tour/index.vue b/src/views/extension/tour/index.vue new file mode 100644 index 0000000..09714b8 --- /dev/null +++ b/src/views/extension/tour/index.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/extension/tree-select/components/demo-basic.vue b/src/views/extension/tree-select/components/demo-basic.vue new file mode 100644 index 0000000..7aa85eb --- /dev/null +++ b/src/views/extension/tree-select/components/demo-basic.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/views/extension/tree-select/components/demo-lazy.vue b/src/views/extension/tree-select/components/demo-lazy.vue new file mode 100644 index 0000000..a8f080d --- /dev/null +++ b/src/views/extension/tree-select/components/demo-lazy.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/views/extension/tree-select/components/demo-multiple.vue b/src/views/extension/tree-select/components/demo-multiple.vue new file mode 100644 index 0000000..1f3272b --- /dev/null +++ b/src/views/extension/tree-select/components/demo-multiple.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/extension/tree-select/components/demo-search.vue b/src/views/extension/tree-select/components/demo-search.vue new file mode 100644 index 0000000..06034c0 --- /dev/null +++ b/src/views/extension/tree-select/components/demo-search.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/extension/tree-select/components/demo-strategy.vue b/src/views/extension/tree-select/components/demo-strategy.vue new file mode 100644 index 0000000..8080339 --- /dev/null +++ b/src/views/extension/tree-select/components/demo-strategy.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/extension/tree-select/index.vue b/src/views/extension/tree-select/index.vue new file mode 100644 index 0000000..748f11d --- /dev/null +++ b/src/views/extension/tree-select/index.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/views/extension/upload/components/demo-advanced.vue b/src/views/extension/upload/components/demo-advanced.vue new file mode 100644 index 0000000..4600819 --- /dev/null +++ b/src/views/extension/upload/components/demo-advanced.vue @@ -0,0 +1,143 @@ + + + diff --git a/src/views/extension/upload/components/demo-basic.vue b/src/views/extension/upload/components/demo-basic.vue new file mode 100644 index 0000000..60a92e7 --- /dev/null +++ b/src/views/extension/upload/components/demo-basic.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/extension/upload/components/demo-customer.vue b/src/views/extension/upload/components/demo-customer.vue new file mode 100644 index 0000000..807ba5a --- /dev/null +++ b/src/views/extension/upload/components/demo-customer.vue @@ -0,0 +1,193 @@ + + + diff --git a/src/views/extension/upload/components/demo-file.vue b/src/views/extension/upload/components/demo-file.vue new file mode 100644 index 0000000..54bad51 --- /dev/null +++ b/src/views/extension/upload/components/demo-file.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/extension/upload/components/demo-form1.vue b/src/views/extension/upload/components/demo-form1.vue new file mode 100644 index 0000000..f9ff725 --- /dev/null +++ b/src/views/extension/upload/components/demo-form1.vue @@ -0,0 +1,225 @@ + + + diff --git a/src/views/extension/upload/components/demo-form2.vue b/src/views/extension/upload/components/demo-form2.vue new file mode 100644 index 0000000..bba7579 --- /dev/null +++ b/src/views/extension/upload/components/demo-form2.vue @@ -0,0 +1,162 @@ + + + diff --git a/src/views/extension/upload/components/demo-multiple.vue b/src/views/extension/upload/components/demo-multiple.vue new file mode 100644 index 0000000..2e5c29c --- /dev/null +++ b/src/views/extension/upload/components/demo-multiple.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/views/extension/upload/index.vue b/src/views/extension/upload/index.vue new file mode 100644 index 0000000..52b22c0 --- /dev/null +++ b/src/views/extension/upload/index.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/views/extension/watermark/index.vue b/src/views/extension/watermark/index.vue new file mode 100644 index 0000000..cfdc7c3 --- /dev/null +++ b/src/views/extension/watermark/index.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/views/forget/index.vue b/src/views/forget/index.vue new file mode 100644 index 0000000..b399904 --- /dev/null +++ b/src/views/forget/index.vue @@ -0,0 +1,5 @@ + + + diff --git a/src/views/form/advanced/index.vue b/src/views/form/advanced/index.vue new file mode 100644 index 0000000..a34cfbf --- /dev/null +++ b/src/views/form/advanced/index.vue @@ -0,0 +1,555 @@ + + + + + + + diff --git a/src/views/form/basic/index.vue b/src/views/form/basic/index.vue new file mode 100644 index 0000000..ed6b667 --- /dev/null +++ b/src/views/form/basic/index.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/views/form/build/components/code-preview.vue b/src/views/form/build/components/code-preview.vue new file mode 100644 index 0000000..73153ca --- /dev/null +++ b/src/views/form/build/components/code-preview.vue @@ -0,0 +1,300 @@ + + + + + + diff --git a/src/views/form/build/components/covers/cover-autocomplete.vue b/src/views/form/build/components/covers/cover-autocomplete.vue new file mode 100644 index 0000000..dc497c3 --- /dev/null +++ b/src/views/form/build/components/covers/cover-autocomplete.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/form/build/components/covers/cover-cascader.vue b/src/views/form/build/components/covers/cover-cascader.vue new file mode 100644 index 0000000..bd1672f --- /dev/null +++ b/src/views/form/build/components/covers/cover-cascader.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/views/form/build/components/covers/cover-check-card.vue b/src/views/form/build/components/covers/cover-check-card.vue new file mode 100644 index 0000000..b53518f --- /dev/null +++ b/src/views/form/build/components/covers/cover-check-card.vue @@ -0,0 +1,11 @@ + + + diff --git a/src/views/form/build/components/covers/cover-checkbox-button.vue b/src/views/form/build/components/covers/cover-checkbox-button.vue new file mode 100644 index 0000000..1eb51e0 --- /dev/null +++ b/src/views/form/build/components/covers/cover-checkbox-button.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/views/form/build/components/covers/cover-checkbox.vue b/src/views/form/build/components/covers/cover-checkbox.vue new file mode 100644 index 0000000..8b7811a --- /dev/null +++ b/src/views/form/build/components/covers/cover-checkbox.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/views/form/build/components/covers/cover-date.vue b/src/views/form/build/components/covers/cover-date.vue new file mode 100644 index 0000000..4ea4434 --- /dev/null +++ b/src/views/form/build/components/covers/cover-date.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/form/build/components/covers/cover-daterange.vue b/src/views/form/build/components/covers/cover-daterange.vue new file mode 100644 index 0000000..f812358 --- /dev/null +++ b/src/views/form/build/components/covers/cover-daterange.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/form/build/components/covers/cover-datetime.vue b/src/views/form/build/components/covers/cover-datetime.vue new file mode 100644 index 0000000..0fcff26 --- /dev/null +++ b/src/views/form/build/components/covers/cover-datetime.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/form/build/components/covers/cover-datetimerange.vue b/src/views/form/build/components/covers/cover-datetimerange.vue new file mode 100644 index 0000000..e163d6f --- /dev/null +++ b/src/views/form/build/components/covers/cover-datetimerange.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/form/build/components/covers/cover-dict-checkbox.vue b/src/views/form/build/components/covers/cover-dict-checkbox.vue new file mode 100644 index 0000000..1a1111f --- /dev/null +++ b/src/views/form/build/components/covers/cover-dict-checkbox.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/form/build/components/covers/cover-dict-multiple-select.vue b/src/views/form/build/components/covers/cover-dict-multiple-select.vue new file mode 100644 index 0000000..42ca447 --- /dev/null +++ b/src/views/form/build/components/covers/cover-dict-multiple-select.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/views/form/build/components/covers/cover-dict-radio.vue b/src/views/form/build/components/covers/cover-dict-radio.vue new file mode 100644 index 0000000..024b896 --- /dev/null +++ b/src/views/form/build/components/covers/cover-dict-radio.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/form/build/components/covers/cover-dict-select.vue b/src/views/form/build/components/covers/cover-dict-select.vue new file mode 100644 index 0000000..d80c8bb --- /dev/null +++ b/src/views/form/build/components/covers/cover-dict-select.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/views/form/build/components/covers/cover-edit-tag.vue b/src/views/form/build/components/covers/cover-edit-tag.vue new file mode 100644 index 0000000..14cd425 --- /dev/null +++ b/src/views/form/build/components/covers/cover-edit-tag.vue @@ -0,0 +1,12 @@ + + + diff --git a/src/views/form/build/components/covers/cover-editor.vue b/src/views/form/build/components/covers/cover-editor.vue new file mode 100644 index 0000000..18ccc33 --- /dev/null +++ b/src/views/form/build/components/covers/cover-editor.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/views/form/build/components/covers/cover-file-upload.vue b/src/views/form/build/components/covers/cover-file-upload.vue new file mode 100644 index 0000000..9df82e8 --- /dev/null +++ b/src/views/form/build/components/covers/cover-file-upload.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/views/form/build/components/covers/cover-image-upload.vue b/src/views/form/build/components/covers/cover-image-upload.vue new file mode 100644 index 0000000..15f79d3 --- /dev/null +++ b/src/views/form/build/components/covers/cover-image-upload.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/views/form/build/components/covers/cover-input-number.vue b/src/views/form/build/components/covers/cover-input-number.vue new file mode 100644 index 0000000..361fe4b --- /dev/null +++ b/src/views/form/build/components/covers/cover-input-number.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/views/form/build/components/covers/cover-input.vue b/src/views/form/build/components/covers/cover-input.vue new file mode 100644 index 0000000..e63606c --- /dev/null +++ b/src/views/form/build/components/covers/cover-input.vue @@ -0,0 +1,10 @@ + + + diff --git a/src/views/form/build/components/covers/cover-multiple-check-card.vue b/src/views/form/build/components/covers/cover-multiple-check-card.vue new file mode 100644 index 0000000..3658491 --- /dev/null +++ b/src/views/form/build/components/covers/cover-multiple-check-card.vue @@ -0,0 +1,11 @@ + + + diff --git a/src/views/form/build/components/covers/cover-multiple-select.vue b/src/views/form/build/components/covers/cover-multiple-select.vue new file mode 100644 index 0000000..45908bc --- /dev/null +++ b/src/views/form/build/components/covers/cover-multiple-select.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/form/build/components/covers/cover-radio-button.vue b/src/views/form/build/components/covers/cover-radio-button.vue new file mode 100644 index 0000000..6110e85 --- /dev/null +++ b/src/views/form/build/components/covers/cover-radio-button.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/views/form/build/components/covers/cover-radio.vue b/src/views/form/build/components/covers/cover-radio.vue new file mode 100644 index 0000000..7e64bff --- /dev/null +++ b/src/views/form/build/components/covers/cover-radio.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/views/form/build/components/covers/cover-rate.vue b/src/views/form/build/components/covers/cover-rate.vue new file mode 100644 index 0000000..99b5e69 --- /dev/null +++ b/src/views/form/build/components/covers/cover-rate.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/views/form/build/components/covers/cover-regions.vue b/src/views/form/build/components/covers/cover-regions.vue new file mode 100644 index 0000000..b8e54ba --- /dev/null +++ b/src/views/form/build/components/covers/cover-regions.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/form/build/components/covers/cover-select.vue b/src/views/form/build/components/covers/cover-select.vue new file mode 100644 index 0000000..c03e4d2 --- /dev/null +++ b/src/views/form/build/components/covers/cover-select.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/form/build/components/covers/cover-slider-range.vue b/src/views/form/build/components/covers/cover-slider-range.vue new file mode 100644 index 0000000..595c1c2 --- /dev/null +++ b/src/views/form/build/components/covers/cover-slider-range.vue @@ -0,0 +1,59 @@ + diff --git a/src/views/form/build/components/covers/cover-slider.vue b/src/views/form/build/components/covers/cover-slider.vue new file mode 100644 index 0000000..5b5e0ba --- /dev/null +++ b/src/views/form/build/components/covers/cover-slider.vue @@ -0,0 +1,36 @@ + diff --git a/src/views/form/build/components/covers/cover-switch.vue b/src/views/form/build/components/covers/cover-switch.vue new file mode 100644 index 0000000..a066b33 --- /dev/null +++ b/src/views/form/build/components/covers/cover-switch.vue @@ -0,0 +1,23 @@ + diff --git a/src/views/form/build/components/covers/cover-table-multiple-select.vue b/src/views/form/build/components/covers/cover-table-multiple-select.vue new file mode 100644 index 0000000..865e378 --- /dev/null +++ b/src/views/form/build/components/covers/cover-table-multiple-select.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/form/build/components/covers/cover-table-select.vue b/src/views/form/build/components/covers/cover-table-select.vue new file mode 100644 index 0000000..3848d94 --- /dev/null +++ b/src/views/form/build/components/covers/cover-table-select.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/form/build/components/covers/cover-textarea.vue b/src/views/form/build/components/covers/cover-textarea.vue new file mode 100644 index 0000000..dc7c8d2 --- /dev/null +++ b/src/views/form/build/components/covers/cover-textarea.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/form/build/components/covers/cover-time-select.vue b/src/views/form/build/components/covers/cover-time-select.vue new file mode 100644 index 0000000..54573b7 --- /dev/null +++ b/src/views/form/build/components/covers/cover-time-select.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/form/build/components/covers/cover-time.vue b/src/views/form/build/components/covers/cover-time.vue new file mode 100644 index 0000000..841c57a --- /dev/null +++ b/src/views/form/build/components/covers/cover-time.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/form/build/components/covers/cover-timerange.vue b/src/views/form/build/components/covers/cover-timerange.vue new file mode 100644 index 0000000..c8ce4cd --- /dev/null +++ b/src/views/form/build/components/covers/cover-timerange.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/form/build/components/covers/cover-tree-multiple-select.vue b/src/views/form/build/components/covers/cover-tree-multiple-select.vue new file mode 100644 index 0000000..915a2d0 --- /dev/null +++ b/src/views/form/build/components/covers/cover-tree-multiple-select.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/views/form/build/components/covers/cover-tree-select.vue b/src/views/form/build/components/covers/cover-tree-select.vue new file mode 100644 index 0000000..90abc18 --- /dev/null +++ b/src/views/form/build/components/covers/cover-tree-select.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/views/form/build/components/covers/cover-virtual-tree-multiple-select.vue b/src/views/form/build/components/covers/cover-virtual-tree-multiple-select.vue new file mode 100644 index 0000000..dfccff2 --- /dev/null +++ b/src/views/form/build/components/covers/cover-virtual-tree-multiple-select.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/views/form/build/components/covers/cover-virtual-tree-select.vue b/src/views/form/build/components/covers/cover-virtual-tree-select.vue new file mode 100644 index 0000000..c208df0 --- /dev/null +++ b/src/views/form/build/components/covers/cover-virtual-tree-select.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Arrow.vue b/src/views/form/build/components/covers/icons/Arrow.vue new file mode 100644 index 0000000..cf52d69 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Arrow.vue @@ -0,0 +1,9 @@ + diff --git a/src/views/form/build/components/covers/icons/ArrowUp.vue b/src/views/form/build/components/covers/icons/ArrowUp.vue new file mode 100644 index 0000000..6f1c843 --- /dev/null +++ b/src/views/form/build/components/covers/icons/ArrowUp.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Calendar.vue b/src/views/form/build/components/covers/icons/Calendar.vue new file mode 100644 index 0000000..7ed45c0 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Calendar.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/form/build/components/covers/icons/Card.vue b/src/views/form/build/components/covers/icons/Card.vue new file mode 100644 index 0000000..0b766b8 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Card.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Checkbox.vue b/src/views/form/build/components/covers/icons/Checkbox.vue new file mode 100644 index 0000000..a838e25 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Checkbox.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Cursor.vue b/src/views/form/build/components/covers/icons/Cursor.vue new file mode 100644 index 0000000..d8e7aaa --- /dev/null +++ b/src/views/form/build/components/covers/icons/Cursor.vue @@ -0,0 +1,20 @@ + diff --git a/src/views/form/build/components/covers/icons/Date.vue b/src/views/form/build/components/covers/icons/Date.vue new file mode 100644 index 0000000..930fe0d --- /dev/null +++ b/src/views/form/build/components/covers/icons/Date.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Icon.vue b/src/views/form/build/components/covers/icons/Icon.vue new file mode 100644 index 0000000..f0f9b70 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Icon.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/form/build/components/covers/icons/Image.vue b/src/views/form/build/components/covers/icons/Image.vue new file mode 100644 index 0000000..d15d06e --- /dev/null +++ b/src/views/form/build/components/covers/icons/Image.vue @@ -0,0 +1,36 @@ + diff --git a/src/views/form/build/components/covers/icons/Input.vue b/src/views/form/build/components/covers/icons/Input.vue new file mode 100644 index 0000000..236813e --- /dev/null +++ b/src/views/form/build/components/covers/icons/Input.vue @@ -0,0 +1,16 @@ + diff --git a/src/views/form/build/components/covers/icons/Panel.vue b/src/views/form/build/components/covers/icons/Panel.vue new file mode 100644 index 0000000..8e0262e --- /dev/null +++ b/src/views/form/build/components/covers/icons/Panel.vue @@ -0,0 +1,12 @@ + diff --git a/src/views/form/build/components/covers/icons/Plus.vue b/src/views/form/build/components/covers/icons/Plus.vue new file mode 100644 index 0000000..bfb659f --- /dev/null +++ b/src/views/form/build/components/covers/icons/Plus.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Radio.vue b/src/views/form/build/components/covers/icons/Radio.vue new file mode 100644 index 0000000..8759ded --- /dev/null +++ b/src/views/form/build/components/covers/icons/Radio.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/views/form/build/components/covers/icons/RadioButton.vue b/src/views/form/build/components/covers/icons/RadioButton.vue new file mode 100644 index 0000000..47af2a7 --- /dev/null +++ b/src/views/form/build/components/covers/icons/RadioButton.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/views/form/build/components/covers/icons/RangeSkeleton.vue b/src/views/form/build/components/covers/icons/RangeSkeleton.vue new file mode 100644 index 0000000..e449cec --- /dev/null +++ b/src/views/form/build/components/covers/icons/RangeSkeleton.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Skeleton.vue b/src/views/form/build/components/covers/icons/Skeleton.vue new file mode 100644 index 0000000..9846620 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Skeleton.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Star.vue b/src/views/form/build/components/covers/icons/Star.vue new file mode 100644 index 0000000..b54fea1 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Star.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Table.vue b/src/views/form/build/components/covers/icons/Table.vue new file mode 100644 index 0000000..624aa15 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Table.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/views/form/build/components/covers/icons/TableRow.vue b/src/views/form/build/components/covers/icons/TableRow.vue new file mode 100644 index 0000000..d2392a6 --- /dev/null +++ b/src/views/form/build/components/covers/icons/TableRow.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/form/build/components/covers/icons/Text.vue b/src/views/form/build/components/covers/icons/Text.vue new file mode 100644 index 0000000..ec9fea9 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Text.vue @@ -0,0 +1,12 @@ + diff --git a/src/views/form/build/components/covers/icons/Time.vue b/src/views/form/build/components/covers/icons/Time.vue new file mode 100644 index 0000000..c2aba53 --- /dev/null +++ b/src/views/form/build/components/covers/icons/Time.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/form/build/components/covers/icons/index.ts b/src/views/form/build/components/covers/icons/index.ts new file mode 100644 index 0000000..3aa65b7 --- /dev/null +++ b/src/views/form/build/components/covers/icons/index.ts @@ -0,0 +1,21 @@ +export { default as Arrow } from './Arrow.vue'; +export { default as ArrowUp } from './ArrowUp.vue'; +export { default as Calendar } from './Calendar.vue'; +export { default as Card } from './Card.vue'; +export { default as Checkbox } from './Checkbox.vue'; +export { default as Cursor } from './Cursor.vue'; +export { default as Date } from './Date.vue'; +export { default as Icon } from './Icon.vue'; +export { default as Image } from './Image.vue'; +export { default as Input } from './Input.vue'; +export { default as Panel } from './Panel.vue'; +export { default as Plus } from './Plus.vue'; +export { default as Radio } from './Radio.vue'; +export { default as RadioButton } from './RadioButton.vue'; +export { default as RangeSkeleton } from './RangeSkeleton.vue'; +export { default as Skeleton } from './Skeleton.vue'; +export { default as Star } from './Star.vue'; +export { default as Table } from './Table.vue'; +export { default as TableRow } from './TableRow.vue'; +export { default as Text } from './Text.vue'; +export { default as Time } from './Time.vue'; diff --git a/src/views/form/build/components/covers/index.ts b/src/views/form/build/components/covers/index.ts new file mode 100644 index 0000000..642a18c --- /dev/null +++ b/src/views/form/build/components/covers/index.ts @@ -0,0 +1,81 @@ +import CoverInput from './cover-input.vue'; +import CoverTextarea from './cover-textarea.vue'; +import CoverSelect from './cover-select.vue'; +import CoverMultipleSelect from './cover-multiple-select.vue'; +import CoverRadio from './cover-radio.vue'; +import CoverRadioButton from './cover-radio-button.vue'; +import CoverCheckbox from './cover-checkbox.vue'; +import CoverCheckboxButton from './cover-checkbox-button.vue'; +import CoverDate from './cover-date.vue'; +import CoverDatetime from './cover-datetime.vue'; +import CoverDaterange from './cover-daterange.vue'; +import CoverDatetimerange from './cover-datetimerange.vue'; +import CoverTime from './cover-time.vue'; +import CoverTimerange from './cover-timerange.vue'; +import CoverTimeSelect from './cover-time-select.vue'; +import CoverSwitch from './cover-switch.vue'; +import CoverInputNumber from './cover-input-number.vue'; +import CoverAutocomplete from './cover-autocomplete.vue'; +import CoverCascader from './cover-cascader.vue'; +import CoverRate from './cover-rate.vue'; +import CoverSlider from './cover-slider.vue'; +import CoverSliderRange from './cover-slider-range.vue'; +import CoverTreeSelect from './cover-tree-select.vue'; +import CoverTreeMultipleSelect from './cover-tree-multiple-select.vue'; +import CoverVirtualTreeSelect from './cover-virtual-tree-select.vue'; +import CoverVirtualTreeMultipleSelect from './cover-virtual-tree-multiple-select.vue'; +import CoverTableSelect from './cover-table-select.vue'; +import CoverTableMultipleSelect from './cover-table-multiple-select.vue'; +import CoverCheckCard from './cover-check-card.vue'; +import CoverMultipleCheckCard from './cover-multiple-check-card.vue'; +import CoverEditTag from './cover-edit-tag.vue'; +import CoverDictRadio from './cover-dict-radio.vue'; +import CoverDictSelect from './cover-dict-select.vue'; +import CoverDictCheckbox from './cover-dict-checkbox.vue'; +import CoverDictMultipleSelect from './cover-dict-multiple-select.vue'; +import CoverImageUpload from './cover-image-upload.vue'; +import CoverFileUpload from './cover-file-upload.vue'; +import CoverRegions from './cover-regions.vue'; +import CoverEditor from './cover-editor.vue'; + +export const covers = { + input: CoverInput, + textarea: CoverTextarea, + select: CoverSelect, + multipleSelect: CoverMultipleSelect, + radio: CoverRadio, + radioButton: CoverRadioButton, + checkbox: CoverCheckbox, + checkboxButton: CoverCheckboxButton, + date: CoverDate, + datetime: CoverDatetime, + daterange: CoverDaterange, + datetimerange: CoverDatetimerange, + time: CoverTime, + timerange: CoverTimerange, + timeSelect: CoverTimeSelect, + switch: CoverSwitch, + inputNumber: CoverInputNumber, + autocomplete: CoverAutocomplete, + cascader: CoverCascader, + rate: CoverRate, + slider: CoverSlider, + sliderRange: CoverSliderRange, + treeSelect: CoverTreeSelect, + treeMultipleSelect: CoverTreeMultipleSelect, + virtualTreeSelect: CoverVirtualTreeSelect, + virtualTreeMultipleSelect: CoverVirtualTreeMultipleSelect, + tableSelect: CoverTableSelect, + tableMultipleSelect: CoverTableMultipleSelect, + checkCard: CoverCheckCard, + multipleCheckCard: CoverMultipleCheckCard, + editTag: CoverEditTag, + dictRadio: CoverDictRadio, + dictCheckbox: CoverDictCheckbox, + dictSelect: CoverDictSelect, + dictMultipleSelect: CoverDictMultipleSelect, + imageUpload: CoverImageUpload, + fileUpload: CoverFileUpload, + regions: CoverRegions, + editor: CoverEditor +}; diff --git a/src/views/form/build/components/form-preview.vue b/src/views/form/build/components/form-preview.vue new file mode 100644 index 0000000..65cf190 --- /dev/null +++ b/src/views/form/build/components/form-preview.vue @@ -0,0 +1,103 @@ + + + diff --git a/src/views/form/build/components/item-add.vue b/src/views/form/build/components/item-add.vue new file mode 100644 index 0000000..93e2d70 --- /dev/null +++ b/src/views/form/build/components/item-add.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/src/views/form/build/components/item-edit.vue b/src/views/form/build/components/item-edit.vue new file mode 100644 index 0000000..90f90c5 --- /dev/null +++ b/src/views/form/build/components/item-edit.vue @@ -0,0 +1,333 @@ + + + diff --git a/src/views/form/build/components/util.ts b/src/views/form/build/components/util.ts new file mode 100644 index 0000000..3166d87 --- /dev/null +++ b/src/views/form/build/components/util.ts @@ -0,0 +1,802 @@ +/** + * ProForm代码生成模板 + */ +export const proTemplate = ` + + +`; + +/** + * ElForm代码生成模板 + */ +export const elTemplate = ` + + +`; + +/** + * ElFormItem代码生成模板 + */ +export const itemTemplate = ` + + <%# if(d.type=='input'){ %><%# }else if(d.type=='textarea'){ %><%# }else if(d.type=='select'){ %><%# (d.options||[]).forEach(function(opt){ %> + <%# }); %> + <%# }else if(d.type=='multipleSelect'){ %><%# (d.options||[]).forEach(function(opt){ %> + <%# }); %> + <%# }else if(d.type=='radio'){ %><%# (d.options||[]).forEach(function(opt){ %> + <% opt.label %><%# }); %> + <%# }else if(d.type=='radioButton'){ %><%# (d.options||[]).forEach(function(opt){ %> + <% opt.label %><%# }); %> + <%# }else if(d.type=='checkbox'){ %><%# (d.options||[]).forEach(function(opt){ %> + <% opt.label %><%# }); %> + <%# }else if(d.type=='checkboxButton'){ %><%# (d.options||[]).forEach(function(opt){ %> + <% opt.label %><%# }); %> + <%# }else if(d.type=='date'){ %><%# }else if(d.type=='datetime'){ %><%# }else if(d.type=='daterange'){ %><%# }else if(d.type=='datetimerange'){ %><%# }else if(d.type=='time'){ %><%# }else if(d.type=='timerange'){ %><%# }else if(d.type=='timeSelect'){ %><%# }else if(d.type=='switch'){ %><%# }else if(d.type=='inputNumber'){ %><%# }else if(d.type=='autocomplete'){ %><%# }else if(d.type=='cascader'){ %><%# }else if(d.type=='rate'){ %><%# }else if(d.type=='slider'){ %><%# }else if(d.type=='sliderRange'){ %><%# }else if(d.type=='treeSelect'){ %><%# }else if(d.type=='treeMultipleSelect'){ %><%# }else if(d.type=='virtualTreeSelect'){ %><%# }else if(d.type=='virtualTreeMultipleSelect'){ %><%# }else if(d.type=='tableSelect'){ %><%# }else if(d.type=='tableMultipleSelect'){ %><%# }else if(d.type=='checkCard'){ %><%# }else if(d.type=='multipleCheckCard'){ %><%# }else if(d.type=='editTag'){ %><%# }else if(d.type=='dictRadio'){ %><%# }else if(d.type=='dictSelect'){ %><%# }else if(d.type=='dictCheckbox'){ %><%# }else if(d.type=='dictMultipleSelect'){ %><%# }else if(d.type=='imageUpload'){ %><%# }else if(d.type=='fileUpload'){ %><%# }else if(d.type=='regions'){ %><%# }else if(d.type=='editor'){ %><%# } %> + `; + +/** + * 树组件构造数据代码 + */ +export const treeDataCode = `[ + { + label: '选项1', + value: '1', + children: [ + { + label: '选项1-1', + value: '1-1', + children: [ + { label: '选项1-1-1', value: '1-1-1' }, + { label: '选项1-1-2', value: '1-1-2' } + ] + }, + { + label: '选项1-2', + value: '1-2', + children: [ + { label: '选项1-2-1', value: '1-2-1' }, + { label: '选项1-2-2', value: '1-2-2' } + ] + } + ] + }, + { + label: '选项2', + value: '2', + children: [ + { + label: '选项2-1', + value: '2-1', + children: [ + { label: '选项2-1-1', value: '2-1-1' }, + { label: '选项2-1-2', value: '2-1-2' } + ] + }, + { + label: '选项2-2', + value: '2-2', + children: [ + { label: '选项2-2-1', value: '2-2-1' }, + { label: '选项2-2-2', value: '2-2-2' } + ] + } + ] + } + ]`; + +/** + * 模板引擎 + * @param template 模板 + * @param data 数据 + */ +export function templateEngine(template: string, data = {}) { + if (typeof template !== 'string' || !template) { + return ''; + } + const openCode = '<%'; + const closeCode = '%>'; + try { + const jss = new RegExp('^' + openCode + '#', 'g'); + const jsse = new RegExp(closeCode + '$', 'g'); + const result = template + .replace(new RegExp(openCode + '#', 'g'), openCode + '# ') + .replace(new RegExp(closeCode + '}', 'g'), '} ' + closeCode) + .replace(/\\/g, '\\\\') + .replace(new RegExp(openCode + '!(.+?)!' + closeCode, 'g'), (str) => { + return str + .replace(new RegExp('^' + openCode + '!', 'g'), '') + .replace(new RegExp('!' + closeCode, 'g'), '') + .replace(new RegExp(openCode + '|' + closeCode, 'g'), (tag) => { + return tag.replace(/(.)/g, '\\$1'); + }); + }) + .replace(/(?="|')/g, '\\') + .replace( + new RegExp(openCode + '#([\\s\\S])+?' + closeCode, 'g'), + (str) => { + return ( + '";' + + str.replace(jss, '').replace(jsse, '').replace(/\\/g, '') + + ';view+="' + ); + } + ) + .replace(new RegExp(openCode + '([^{#}])*?' + closeCode, 'g'), (str) => { + if (str.replace(/\s/g, '') === openCode + closeCode) { + return ''; + } + let start = '"+('; + str = str.replace(new RegExp(openCode + '|' + closeCode, 'g'), ''); + if (/^=/.test(str)) { + str = str.replace(/^=/, ''); + start = '"+_escape_('; + } + return start + str.replace(/\\/g, '') + ')+"'; + }) + .replace(/\r\n/g, '\\r\\n" + "') + .replace(/\n/g, '\\n" + "') + .replace(/\r/g, '\\r" + "'); + return new Function( + 'd, _escape_', + '"use strict";var view = "' + result + '";return view;' + )(data, (str) => { + return String(str || '') + .replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + }); + } catch (e) { + console.error('TemplateEngine Error: ', e, '\n' + (template || '')); + return ''; + } +} + +/** + * 对象转字符串 + * @param obj 对象 + */ +export function obj2Str(obj: any) { + if (typeof obj === 'undefined') { + return 'void 0'; + } + if (obj === null) { + return 'null'; + } + if (Array.isArray(obj)) { + const result = obj.map((v) => obj2Str(v)); + return `[ ${result.join(', ')} ]`; + } + if (typeof obj === 'object') { + const result: string[] = []; + Object.keys(obj).forEach((k) => { + if (typeof obj[k] !== 'undefined') { + result.push(`${k}: ${obj2Str(obj[k])}`); + } + }); + return `{ ${result.join(', ')} }`; + } + return JSON.stringify(obj).replace(/(^"|"$)/g, "'"); +} + +/** + * 标题宽度选项 + */ +export const labelWidthOptions = [ + { value: 52, label: '52px' }, + { value: 66, label: '66px' }, + { value: 80, label: '80px' }, + { value: 94, label: '94px' }, + { value: 108, label: '108px' }, + { value: 122, label: '122px' }, + { value: 136, label: '136px' } +]; + +/** + * 显示列数选项 + */ +export const gridOptions = [ + { value: 1, label: '1列' }, + { value: 2, label: '2列' }, + { value: 3, label: '3列' }, + { value: 4, label: '4列' }, + { value: 6, label: '6列' }, + { value: 8, label: '8列' } +]; + +/** + * 表单项类型选项 + */ +export const itemTypes = [ + { value: 'input', label: '输入框' }, + { value: 'textarea', label: '文本域' }, + { value: 'select', label: '下拉' }, + { value: 'multipleSelect', label: '下拉多选' }, + { value: 'radio', label: '单选' }, + { value: 'radioButton', label: '单选按钮' }, + { value: 'checkbox', label: '多选' }, + { value: 'checkboxButton', label: '多选按钮' }, + { value: 'date', label: '日期选择' }, + { value: 'datetime', label: '日期时间选择' }, + { value: 'daterange', label: '日期范围选择' }, + { value: 'datetimerange', label: '日期时间范围选择' }, + { value: 'time', label: '时间选择' }, + { value: 'timerange', label: '时间范围选择' }, + { value: 'timeSelect', label: '时间段选择' }, + { value: 'editTag', label: '标签输入' }, + { value: 'switch', label: '开关' }, + { value: 'rate', label: '评分' }, + { value: 'inputNumber', label: '数字输入框' }, + { value: 'cascader', label: '级联选择' }, + { value: 'treeSelect', label: '树下拉' }, + { value: 'treeMultipleSelect', label: '树下拉多选' }, + { value: 'virtualTreeSelect', label: '虚拟树下拉' }, + { value: 'virtualTreeMultipleSelect', label: '虚拟树下拉多选' }, + { value: 'tableSelect', label: '表格下拉' }, + { value: 'tableMultipleSelect', label: '表格下拉多选' }, + { value: 'checkCard', label: '可选卡片' }, + { value: 'multipleCheckCard', label: '多选卡片' }, + { value: 'autocomplete', label: '自动完成' }, + { value: 'imageUpload', label: '图片上传' }, + { value: 'fileUpload', label: '附件上传' }, + { value: 'regions', label: '省市区选择' }, + { value: 'dictRadio', label: '字典单选' }, + { value: 'dictCheckbox', label: '字典多选' }, + { value: 'dictSelect', label: '字典下拉' }, + { value: 'dictMultipleSelect', label: '字典下拉多选' }, + { value: 'slider', label: '滑块' }, + { value: 'sliderRange', label: '范围滑块' }, + { value: 'editor', label: '富文本' } +]; + +/** + * 获取组件预设属性 + * @param type 组件类型 + */ +export function getOptionsAndProps(type?: string) { + if (!type) { + return { options: '', props: '' }; + } + const treeData = new Function('"use strict";return (' + treeDataCode + ')')(); + if ( + [ + 'select', + 'multipleSelect', + 'radio', + 'radioButton', + 'checkbox', + 'checkboxButton' + ].includes(type) + ) { + return { + options: JSON.stringify([ + { label: '选项一', value: 1 }, + { label: '选项二', value: 2 } + ]), + props: '' + }; + } + if ('autocomplete' === type) { + return { + options: JSON.stringify([{ value: '选项一' }, { value: '选项二' }]), + props: '' + }; + } + if ('cascader' === type) { + return { + options: JSON.stringify(treeData), + props: '' + }; + } + if ('tableSelect' === type || 'tableMultipleSelect' === type) { + const props: any = { + popperWidth: 580, + valueKey: 'userId', + labelKey: 'nickname', + tableProps: { + datasource: [ + { userId: 1, username: '001', nickname: '用户一', sex: '男' }, + { userId: 2, username: '002', nickname: '用户二', sex: '女' }, + { userId: 3, username: '003', nickname: '用户三', sex: '女' }, + { userId: 4, username: '004', nickname: '用户四', sex: '男' }, + { userId: 5, username: '005', nickname: '用户五', sex: '女' } + ], + columns: [ + { type: 'index', columnKey: 'index', width: 48, align: 'center' }, + { prop: 'username', label: '账号' }, + { prop: 'nickname', label: '用户名' }, + { prop: 'sex', label: '性别' } + ], + showOverflowTooltip: true, + highlightCurrentRow: true, + toolbar: false, + pagination: { + pageSize: 6, + layout: 'total, prev, pager, next, jumper' + }, + footerStyle: { padding: '0px' }, + rowStyle: { cursor: 'pointer' } + } + }; + if ('tableMultipleSelect' === type) { + props.tableProps.columns.unshift({ + type: 'selection', + columnKey: 'selection', + width: 48, + align: 'center', + reserveSelection: true + }); + props.tableProps.rowClickChecked = true; + props.tableProps.highlightCurrentRow = void 0; + } + return { + options: '', + props: JSON.stringify(props) + }; + } + if (['virtualTreeSelect', 'virtualTreeMultipleSelect'].includes(type)) { + return { + options: '', + props: JSON.stringify({ + popperWidth: 320, + treeProps: { + height: 266, + data: treeData, + props: { value: 'value', label: 'label' }, + expandOnClickNode: true + }, + placement: 'bottom' + }) + }; + } + if (['treeSelect', 'treeMultipleSelect'].includes(type)) { + const props: any = { + defaultExpandAll: true, + nodeKey: 'value', + props: { label: 'label' } + }; + if ('treeMultipleSelect' === type) { + props.multiple = true; + props.showCheckbox = true; + } + return { + options: JSON.stringify(treeData), + props: JSON.stringify(props) + }; + } + if (['checkCard', 'multipleCheckCard'].includes(type)) { + return { + options: JSON.stringify([{ value: '选项一' }, { value: '选项二' }]), + props: JSON.stringify({ + style: { display: 'flex', alignItems: 'flex-start' }, + itemStyle: { + padding: '8px 22px', + margin: '0 12px 0 0', + lineHeight: 'normal' + } + }) + }; + } + if ( + ['dictRadio', 'dictSelect', 'dictCheckbox', 'dictMultipleSelect'].includes( + type + ) + ) { + return { + options: '', + props: JSON.stringify({ code: 'sex' }) + }; + } + if ('imageUpload' === type) { + return { + options: '', + props: JSON.stringify({ limit: 3 }) + }; + } + if ('fileUpload' === type) { + return { + options: '', + props: JSON.stringify({ limit: 6 }) + }; + } + if ('editor' === type) { + return { + options: '', + props: JSON.stringify({ init: { height: 380 } }) + }; + } + return { options: '', props: '' }; +} + +/** + * 获取ElCol跨列属性 + * @param grid 显示列数 + * @param colSpan 所占列数 + */ +export function getColProps(grid: number, colSpan: number) { + if (grid === 1 || colSpan === 1) { + return; + } + const span = 24 / grid; + return { span: span * colSpan }; +} + +/** + * 获取表单项所占列数 + * @param grid 显示列数 + * @param colSpan ElCol的span值 + */ +export function getColSpan(grid: number, colSpan?: number) { + if (grid === 1 || colSpan == null) { + return 1; + } + const span = 24 / grid; + return colSpan / span; +} diff --git a/src/views/form/build/index.vue b/src/views/form/build/index.vue new file mode 100644 index 0000000..a1b2636 --- /dev/null +++ b/src/views/form/build/index.vue @@ -0,0 +1,389 @@ + + + + + + + diff --git a/src/views/form/step/components/step-confirm.vue b/src/views/form/step/components/step-confirm.vue new file mode 100644 index 0000000..085ddda --- /dev/null +++ b/src/views/form/step/components/step-confirm.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/views/form/step/components/step-edit.vue b/src/views/form/step/components/step-edit.vue new file mode 100644 index 0000000..429c41e --- /dev/null +++ b/src/views/form/step/components/step-edit.vue @@ -0,0 +1,126 @@ + + + diff --git a/src/views/form/step/components/step-success.vue b/src/views/form/step/components/step-success.vue new file mode 100644 index 0000000..3349d24 --- /dev/null +++ b/src/views/form/step/components/step-success.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/views/form/step/index.vue b/src/views/form/step/index.vue new file mode 100644 index 0000000..0571ab5 --- /dev/null +++ b/src/views/form/step/index.vue @@ -0,0 +1,109 @@ + + + + + + + diff --git a/src/views/form/step/model/index.ts b/src/views/form/step/model/index.ts new file mode 100644 index 0000000..725d712 --- /dev/null +++ b/src/views/form/step/model/index.ts @@ -0,0 +1,7 @@ +export interface StepForm { + account?: string; + receiver?: string; + pay?: string; + name?: string; + amount?: number; +} diff --git a/src/views/list/advanced/index.vue b/src/views/list/advanced/index.vue new file mode 100644 index 0000000..33d567e --- /dev/null +++ b/src/views/list/advanced/index.vue @@ -0,0 +1,497 @@ + + + + + + + diff --git a/src/views/list/basic/add/index.vue b/src/views/list/basic/add/index.vue new file mode 100644 index 0000000..b833c1d --- /dev/null +++ b/src/views/list/basic/add/index.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/views/list/basic/components/edit-form.vue b/src/views/list/basic/components/edit-form.vue new file mode 100644 index 0000000..09ffce8 --- /dev/null +++ b/src/views/list/basic/components/edit-form.vue @@ -0,0 +1,251 @@ + + + + diff --git a/src/views/list/basic/components/nickname-filter.vue b/src/views/list/basic/components/nickname-filter.vue new file mode 100644 index 0000000..0126541 --- /dev/null +++ b/src/views/list/basic/components/nickname-filter.vue @@ -0,0 +1,89 @@ + + + + + + diff --git a/src/views/list/basic/components/search-form.vue b/src/views/list/basic/components/search-form.vue new file mode 100644 index 0000000..eb10ab9 --- /dev/null +++ b/src/views/list/basic/components/search-form.vue @@ -0,0 +1,131 @@ + + + + diff --git a/src/views/list/basic/edit/index.vue b/src/views/list/basic/edit/index.vue new file mode 100644 index 0000000..2694408 --- /dev/null +++ b/src/views/list/basic/edit/index.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/views/list/basic/index.vue b/src/views/list/basic/index.vue new file mode 100644 index 0000000..d6d58cb --- /dev/null +++ b/src/views/list/basic/index.vue @@ -0,0 +1,432 @@ + + + + + diff --git a/src/views/list/card/application/index.vue b/src/views/list/card/application/index.vue new file mode 100644 index 0000000..f38c8b8 --- /dev/null +++ b/src/views/list/card/application/index.vue @@ -0,0 +1,248 @@ + + + + + + + diff --git a/src/views/list/card/article/index.vue b/src/views/list/card/article/index.vue new file mode 100644 index 0000000..f630e93 --- /dev/null +++ b/src/views/list/card/article/index.vue @@ -0,0 +1,286 @@ + + + + + + + diff --git a/src/views/list/card/project/components/top-search.vue b/src/views/list/card/project/components/top-search.vue new file mode 100644 index 0000000..9f399b6 --- /dev/null +++ b/src/views/list/card/project/components/top-search.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/list/card/project/index.vue b/src/views/list/card/project/index.vue new file mode 100644 index 0000000..13ed3d1 --- /dev/null +++ b/src/views/list/card/project/index.vue @@ -0,0 +1,308 @@ + + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100644 index 0000000..d8ea214 --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,416 @@ + + + + + + + diff --git a/src/views/result/fail/index.vue b/src/views/result/fail/index.vue new file mode 100644 index 0000000..ac0543c --- /dev/null +++ b/src/views/result/fail/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/views/result/success/index.vue b/src/views/result/success/index.vue new file mode 100644 index 0000000..9e70448 --- /dev/null +++ b/src/views/result/success/index.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/views/system/dictionary/components/dict-data-edit.vue b/src/views/system/dictionary/components/dict-data-edit.vue new file mode 100644 index 0000000..a34f4fc --- /dev/null +++ b/src/views/system/dictionary/components/dict-data-edit.vue @@ -0,0 +1,181 @@ + + + + diff --git a/src/views/system/dictionary/components/dict-data-list.vue b/src/views/system/dictionary/components/dict-data-list.vue new file mode 100644 index 0000000..679dd24 --- /dev/null +++ b/src/views/system/dictionary/components/dict-data-list.vue @@ -0,0 +1,196 @@ + + + diff --git a/src/views/system/dictionary/components/dict-data-search.vue b/src/views/system/dictionary/components/dict-data-search.vue new file mode 100644 index 0000000..5c7ff3b --- /dev/null +++ b/src/views/system/dictionary/components/dict-data-search.vue @@ -0,0 +1,59 @@ + + + + diff --git a/src/views/system/dictionary/components/dict-edit.vue b/src/views/system/dictionary/components/dict-edit.vue new file mode 100644 index 0000000..c3e04e3 --- /dev/null +++ b/src/views/system/dictionary/components/dict-edit.vue @@ -0,0 +1,171 @@ + + + + diff --git a/src/views/system/dictionary/index.vue b/src/views/system/dictionary/index.vue new file mode 100644 index 0000000..0bef966 --- /dev/null +++ b/src/views/system/dictionary/index.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/src/views/system/file/components/file-search.vue b/src/views/system/file/components/file-search.vue new file mode 100644 index 0000000..298796f --- /dev/null +++ b/src/views/system/file/components/file-search.vue @@ -0,0 +1,61 @@ + + + + diff --git a/src/views/system/file/index.vue b/src/views/system/file/index.vue new file mode 100644 index 0000000..5c99aef --- /dev/null +++ b/src/views/system/file/index.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/src/views/system/login-record/components/login-record-search.vue b/src/views/system/login-record/components/login-record-search.vue new file mode 100644 index 0000000..bd30e83 --- /dev/null +++ b/src/views/system/login-record/components/login-record-search.vue @@ -0,0 +1,89 @@ + + + + diff --git a/src/views/system/login-record/index.vue b/src/views/system/login-record/index.vue new file mode 100644 index 0000000..b7d2a6f --- /dev/null +++ b/src/views/system/login-record/index.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/views/system/menu/components/icon-select.vue b/src/views/system/menu/components/icon-select.vue new file mode 100644 index 0000000..6621829 --- /dev/null +++ b/src/views/system/menu/components/icon-select.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/src/views/system/menu/components/menu-edit.vue b/src/views/system/menu/components/menu-edit.vue new file mode 100644 index 0000000..5a14408 --- /dev/null +++ b/src/views/system/menu/components/menu-edit.vue @@ -0,0 +1,360 @@ + + + + diff --git a/src/views/system/menu/components/menu-search.vue b/src/views/system/menu/components/menu-search.vue new file mode 100644 index 0000000..3c9ccb4 --- /dev/null +++ b/src/views/system/menu/components/menu-search.vue @@ -0,0 +1,65 @@ + + + + diff --git a/src/views/system/menu/components/menu-select.vue b/src/views/system/menu/components/menu-select.vue new file mode 100644 index 0000000..4ad7435 --- /dev/null +++ b/src/views/system/menu/components/menu-select.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue new file mode 100644 index 0000000..10604c6 --- /dev/null +++ b/src/views/system/menu/index.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/system/operation-record/components/operation-record-detail.vue b/src/views/system/operation-record/components/operation-record-detail.vue new file mode 100644 index 0000000..e24a263 --- /dev/null +++ b/src/views/system/operation-record/components/operation-record-detail.vue @@ -0,0 +1,160 @@ + + + + + + diff --git a/src/views/system/operation-record/components/operation-record-search.vue b/src/views/system/operation-record/components/operation-record-search.vue new file mode 100644 index 0000000..5a41be6 --- /dev/null +++ b/src/views/system/operation-record/components/operation-record-search.vue @@ -0,0 +1,79 @@ + + + + diff --git a/src/views/system/operation-record/index.vue b/src/views/system/operation-record/index.vue new file mode 100644 index 0000000..e21ad57 --- /dev/null +++ b/src/views/system/operation-record/index.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/views/system/organization/components/org-edit.vue b/src/views/system/organization/components/org-edit.vue new file mode 100644 index 0000000..5c84867 --- /dev/null +++ b/src/views/system/organization/components/org-edit.vue @@ -0,0 +1,218 @@ + + + + diff --git a/src/views/system/organization/components/org-select.vue b/src/views/system/organization/components/org-select.vue new file mode 100644 index 0000000..e2c5335 --- /dev/null +++ b/src/views/system/organization/components/org-select.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/views/system/organization/components/org-user-edit.vue b/src/views/system/organization/components/org-user-edit.vue new file mode 100644 index 0000000..457bf94 --- /dev/null +++ b/src/views/system/organization/components/org-user-edit.vue @@ -0,0 +1,260 @@ + + + + diff --git a/src/views/system/organization/components/org-user-list.vue b/src/views/system/organization/components/org-user-list.vue new file mode 100644 index 0000000..1a28dcd --- /dev/null +++ b/src/views/system/organization/components/org-user-list.vue @@ -0,0 +1,283 @@ + + + diff --git a/src/views/system/organization/components/org-user-search.vue b/src/views/system/organization/components/org-user-search.vue new file mode 100644 index 0000000..a28f46c --- /dev/null +++ b/src/views/system/organization/components/org-user-search.vue @@ -0,0 +1,65 @@ + + + + diff --git a/src/views/system/organization/index.vue b/src/views/system/organization/index.vue new file mode 100644 index 0000000..82ca07e --- /dev/null +++ b/src/views/system/organization/index.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/src/views/system/role/components/role-auth.vue b/src/views/system/role/components/role-auth.vue new file mode 100644 index 0000000..668fae8 --- /dev/null +++ b/src/views/system/role/components/role-auth.vue @@ -0,0 +1,163 @@ + + + + + + diff --git a/src/views/system/role/components/role-edit.vue b/src/views/system/role/components/role-edit.vue new file mode 100644 index 0000000..e21d41c --- /dev/null +++ b/src/views/system/role/components/role-edit.vue @@ -0,0 +1,151 @@ + + + + diff --git a/src/views/system/role/components/role-search.vue b/src/views/system/role/components/role-search.vue new file mode 100644 index 0000000..5ff3e88 --- /dev/null +++ b/src/views/system/role/components/role-search.vue @@ -0,0 +1,64 @@ + + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue new file mode 100644 index 0000000..37eb35a --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/views/system/user/components/role-select.vue b/src/views/system/user/components/role-select.vue new file mode 100644 index 0000000..6dabfa9 --- /dev/null +++ b/src/views/system/user/components/role-select.vue @@ -0,0 +1,66 @@ + + + + diff --git a/src/views/system/user/components/user-edit.vue b/src/views/system/user/components/user-edit.vue new file mode 100644 index 0000000..295bf60 --- /dev/null +++ b/src/views/system/user/components/user-edit.vue @@ -0,0 +1,283 @@ + + + + diff --git a/src/views/system/user/components/user-import.vue b/src/views/system/user/components/user-import.vue new file mode 100644 index 0000000..7841d69 --- /dev/null +++ b/src/views/system/user/components/user-import.vue @@ -0,0 +1,122 @@ + + + + + + diff --git a/src/views/system/user/components/user-search.vue b/src/views/system/user/components/user-search.vue new file mode 100644 index 0000000..0d32a7c --- /dev/null +++ b/src/views/system/user/components/user-search.vue @@ -0,0 +1,65 @@ + + + + diff --git a/src/views/system/user/details/index.vue b/src/views/system/user/details/index.vue new file mode 100644 index 0000000..a510948 --- /dev/null +++ b/src/views/system/user/details/index.vue @@ -0,0 +1,157 @@ + + + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..951c5c8 --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/src/views/user/message/components/message-letter.vue b/src/views/user/message/components/message-letter.vue new file mode 100644 index 0000000..0f9c973 --- /dev/null +++ b/src/views/user/message/components/message-letter.vue @@ -0,0 +1,136 @@ + + + diff --git a/src/views/user/message/components/message-notice.vue b/src/views/user/message/components/message-notice.vue new file mode 100644 index 0000000..8bf86aa --- /dev/null +++ b/src/views/user/message/components/message-notice.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/user/message/components/message-todo.vue b/src/views/user/message/components/message-todo.vue new file mode 100644 index 0000000..2e6bd04 --- /dev/null +++ b/src/views/user/message/components/message-todo.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/user/message/index.vue b/src/views/user/message/index.vue new file mode 100644 index 0000000..5a76619 --- /dev/null +++ b/src/views/user/message/index.vue @@ -0,0 +1,159 @@ + + + + + + + diff --git a/src/views/user/profile/components/user-account.vue b/src/views/user/profile/components/user-account.vue new file mode 100644 index 0000000..28d8a20 --- /dev/null +++ b/src/views/user/profile/components/user-account.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/user/profile/components/user-card.vue b/src/views/user/profile/components/user-card.vue new file mode 100644 index 0000000..210a70e --- /dev/null +++ b/src/views/user/profile/components/user-card.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/views/user/profile/components/user-form.vue b/src/views/user/profile/components/user-form.vue new file mode 100644 index 0000000..3b7f0ae --- /dev/null +++ b/src/views/user/profile/components/user-form.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/src/views/user/profile/index.vue b/src/views/user/profile/index.vue new file mode 100644 index 0000000..60bb76d --- /dev/null +++ b/src/views/user/profile/index.vue @@ -0,0 +1,91 @@ + + + + + + + diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..eca5464 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "strict": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "strictFunctionTypes": false, + "jsx": "preserve", + "baseUrl": "./", + "allowJs": true, + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "experimentalDecorators": true, + "lib": ["esnext", "dom"], + "types": ["vite/client"], + "typeRoots": ["./node_modules/@types/"], + "noImplicitAny": false, + "skipLibCheck": true, + "paths": { + "@/*": ["src/*"] + } + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "components.d.ts", + "vite.config.ts" + ], + "exclude": ["node_modules", "dist", "**/*.js"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..557bf92 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,72 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import { resolve } from 'path'; +import Compression from 'vite-plugin-compression'; +import Components from 'unplugin-vue-components/vite'; +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; +import { EleAdminResolver } from 'ele-admin-plus/es/utils/resolvers'; + +export default defineConfig(({ command }) => { + const isBuild = command === 'build'; + const alias = { + '@/': resolve('src') + '/', + 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js' + }; + const plugins = [vue()]; + if (isBuild) { + // 组件按需引入 + plugins.push( + Components({ + dts: false, + resolvers: [ + ElementPlusResolver({ + importStyle: 'sass' + }), + EleAdminResolver({ + importStyle: 'sass' + }) + ] + }) + ); + // gzip压缩 + plugins.push( + Compression({ + disable: !isBuild, + threshold: 10240, + algorithm: 'gzip', + ext: '.gz' + }) + ); + } else { + // 开发环境全局安装 + alias['./as-needed'] = './global-import'; + } + return { + resolve: { alias }, + plugins, + css: { + preprocessorOptions: { + scss: { + additionalData: `@use "@/styles/variables.scss" as *;` + } + } + }, + optimizeDeps: { + include: [ + 'echarts/core', + 'echarts/charts', + 'echarts/renderers', + 'echarts/components', + 'vue-echarts', + 'echarts-wordcloud', + 'vuedraggable', + 'sortablejs', + 'xlsx' + ] + }, + build: { + target: 'es2015', + chunkSizeWarningLimit: 2000 + } + }; +});