diff --git a/.vscode/settings.json b/.vscode/settings.json index 746cf57afcbbe1a371d9b18e0120e96e91868297..276f03940a02e771e6e80ec40c8fd7b91f578a26 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,14 +3,10 @@ "editor.guides.bracketPairs": true, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": [ - "source.fixAll.eslint" - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "vue" - ], - "typescript.tsdk": "node_modules/typescript/lib" -} \ No newline at end of file + "editor.codeActionsOnSave": ["source.fixAll.eslint"], + "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"], + "typescript.tsdk": "node_modules/typescript/lib", + "[vue]": { + "editor.defaultFormatter": "Vue.volar" + } +} diff --git a/package.json b/package.json index 1519a06ae78c62ee5f07654ed1290a1f96140dd0..5fceac8803928b47a43d44dce1aa879a3c21a532 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,11 @@ "build": "quasar build" }, "dependencies": { + "@ckeditor/ckeditor5-build-classic": "^40.0.0", + "@ckeditor/ckeditor5-dev-translations": "^39.2.1", + "@ckeditor/ckeditor5-vue": "^5.1.0", "@quasar/extras": "^1.16.4", + "@wangeditor/editor": "^5.1.23", "ag-grid-community": "^30.0.6", "ag-grid-enterprise": "^30.0.6", "ag-grid-vue3": "^30.0.6", diff --git a/quasar.config.js b/quasar.config.js index 487f0a578aec4866c91537c978bb33681f8e7474..c3736226be3c433de34ca2af54fbc534085d4c4b 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -7,7 +7,6 @@ // Configuration for your app // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js - const { configure } = require('quasar/wrappers'); const path = require('path'); @@ -28,7 +27,7 @@ module.exports = configure(function (/* ctx */) { // app boot file (/src/boot) // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli-vite/boot-files - boot: ['i18n', 'axios'], + boot: ['i18n', 'axios', 'ckeditor5'], // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css css: ['app.scss'], @@ -71,7 +70,12 @@ module.exports = configure(function (/* ctx */) { // polyfillModulePreload: true, // distDir - // extendViteConf (viteConf) {}, + extendViteConf(viteConf, { isClient, isServer }) { + // do stuff in-place with viteConf + viteConf.esbuild = { + logOverride: { 'this-is-undefined-in-esm': 'silent' }, + }; + }, // viteVuePluginOptions: {}, vitePlugins: [ diff --git a/src/boot/ckeditor5.ts b/src/boot/ckeditor5.ts new file mode 100644 index 0000000000000000000000000000000000000000..3ee43f8b2874c57511ef1f847b6ff15f3f7a89df --- /dev/null +++ b/src/boot/ckeditor5.ts @@ -0,0 +1,6 @@ +import { boot } from 'quasar/wrappers'; +import CKEditor from '@ckeditor/ckeditor5-vue'; + +export default boot(({ app }) => { + app.use(CKEditor); +}); diff --git a/src/common/constants/index.ts b/src/common/constants/index.ts index a606a8b53d672037426172691fbc8b3e10ddcc7f..e4d295471ab57a483517db758b2018580b648032 100644 --- a/src/common/constants/index.ts +++ b/src/common/constants/index.ts @@ -13,3 +13,5 @@ * `SessionStorage` or `LocalStorage` */ export const LANG_STORAGE_KEY = 'LANG'; + +export const USER_INFO_STORAGE_KEY = 'USER_INFO_STORAGE_KEY'; diff --git a/src/common/hooks/index.ts b/src/common/hooks/index.ts index 47e4c012a33e28da4b03d373ae8b03000007fb68..eb4143198dd59eeb2def0f9599490501dc71a773 100644 --- a/src/common/hooks/index.ts +++ b/src/common/hooks/index.ts @@ -1,3 +1,4 @@ export * from './use-message'; export * from './use-webstorage'; export * from './use-pagestore'; +export * from './use-userinfo'; diff --git a/src/common/hooks/use-userinfo.ts b/src/common/hooks/use-userinfo.ts new file mode 100644 index 0000000000000000000000000000000000000000..e6e19b47a358553b9438fbadbdeddaffa60657ca --- /dev/null +++ b/src/common/hooks/use-userinfo.ts @@ -0,0 +1,38 @@ +import { defineStore } from 'pinia'; +import { USER_INFO_STORAGE_KEY } from '../constants'; +import { useSessionStorage } from './use-webstorage'; + +interface IUserInfo { + id: number; + username: string; + is_admin: boolean; +} + +function getStorageUserInfo(): IUserInfo { + let result: IUserInfo = { + id: -1, + username: '', + is_admin: false, + }; + + const value = useSessionStorage().getItem(USER_INFO_STORAGE_KEY) as string; + if (value) { + result = JSON.parse(value); + } + + return result; +} + +const useUserInfoStore = defineStore(USER_INFO_STORAGE_KEY, { + state: () => { + return getStorageUserInfo(); + }, + actions: { + setUserInfo: function (val: IUserInfo) { + this.$state = val; + useSessionStorage().setItem(USER_INFO_STORAGE_KEY, JSON.stringify(val)); + }, + }, +}); + +export { useUserInfoStore }; diff --git a/src/common/utils/del-empty-objkey.ts b/src/common/utils/del-empty-objkey.ts deleted file mode 100644 index b2e45f017aa9adc4a3cf271ff33730991171d46c..0000000000000000000000000000000000000000 --- a/src/common/utils/del-empty-objkey.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { isEmpty } from './isEmpty'; - -/** - * åˆ é™¤å¯¹è±¡ä¸ä¸ºç©ºçš„属性值 返回一个新对象 - * @param data - 原始对象 - **/ -export const delEmptyObjkey = function (data: any) { - const obj = {} as any; - for (const key in data) { - if (!isEmpty(data[key])) { - obj[key] = data[key]; - } - } - return obj; -}; diff --git a/src/common/utils/index.ts b/src/common/utils/index.ts index cb3f9f6de5d5e79ea2008f89522e996f5c9f5bb6..a7aa207e8d116c0b5a3e6c765f2a329334c65620 100644 --- a/src/common/utils/index.ts +++ b/src/common/utils/index.ts @@ -2,8 +2,6 @@ export * from './del-arr-obj'; export * from './find-arr-objs'; export * from './no-repeat-obj-in-arr'; export * from './obj-del'; -export * from './is-obj-equal'; -export * from './del-empty-objkey'; export * from './json-str'; export * from './isEmpty'; export * from './maths'; @@ -12,6 +10,9 @@ export * from './get-type'; export * from './is'; export * from './get-angle'; export * from './scale-polygon'; +export * from './isBasicData'; +export * from './isEqual'; +export * from './omitEmpty'; export { cloneDeep, orderBy, diff --git a/src/common/utils/is-obj-equal.ts b/src/common/utils/is-obj-equal.ts deleted file mode 100644 index dbc1434f6f048bbf1d1b705d5bc94330dfd814f9..0000000000000000000000000000000000000000 --- a/src/common/utils/is-obj-equal.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * 判æ–两个对象是å¦ç›¸ç‰ - **/ -export const isObjEqual = function (obj1: any, obj2: any) { - const keys1 = Object.keys(obj1); - const keys2 = Object.keys(obj2); - - if (keys1.length === keys2.length) { - const sortKeys1 = keys1.sort(); - const sortKeys2 = keys2.sort(); - - const sortStr1 = JSON.stringify(sortKeys1); - const sortStr2 = JSON.stringify(sortKeys2); - - if (sortStr1 === sortStr2) { - let flag = true; - for (const key1 in obj1) { - if (obj1[key1] !== obj2[key1]) { - flag = false; - break; - } - } - return flag; - } else { - return false; - } - } else { - return false; - } -}; diff --git a/src/common/utils/isBasicData.ts b/src/common/utils/isBasicData.ts new file mode 100644 index 0000000000000000000000000000000000000000..de66af1b9cde3e2f12dd113366a5123047b84a06 --- /dev/null +++ b/src/common/utils/isBasicData.ts @@ -0,0 +1,17 @@ +/** + * @description æ˜¯å¦æ˜¯åŸºæœ¬æ•°æ®ç±»åž‹ + * @param {any} data + * @return {boolean} + */ +export function isBasicData(data: any) { + const basicDataTypes = [ + '[object String]', + '[object Number]', + '[object Boolean]', + '[object Null]', + '[object Undefined]', + ]; + const typeofs = Object.prototype.toString.call(data); + + return basicDataTypes.includes(typeofs); +} diff --git a/src/common/utils/isEqual.ts b/src/common/utils/isEqual.ts new file mode 100644 index 0000000000000000000000000000000000000000..c3b4dda876385c550b8286e1696e6425d71dd7f3 --- /dev/null +++ b/src/common/utils/isEqual.ts @@ -0,0 +1,179 @@ +import { isEmpty } from './isEmpty'; + +type IndexKey = string | number | symbol; +interface AnyObject { + [propName: IndexKey]: any; +} + +/** + * @description 判æ–两个对象是å¦ç›¸ç‰ + * @param {AnyObject} obj1 + * @param {AnyObject} obj2 + * @param {boolean} omitEmpty 默认为false,当为true时,为空的值判æ–ä¸ºç›¸ç‰ + * @return {boolean} + */ +export const isObjectEqual = function ( + obj1: AnyObject, + obj2: AnyObject, + omitEmpty = false +) { + const keys1 = Object.keys(obj1); + const keys2 = Object.keys(obj2); + + if (keys1.length === keys2.length) { + const sortKeys1 = keys1.sort(); + const sortKeys2 = keys2.sort(); + + const sortStr1 = JSON.stringify(sortKeys1); + const sortStr2 = JSON.stringify(sortKeys2); + + // 对象的keyå€¼éƒ½ç›¸ç‰ + if (sortStr1 === sortStr2) { + let flag = true; + for (const key1 in obj1) { + const value1 = obj1[key1]; + const value2 = obj2[key1]; + const typeofs = Object.prototype.toString.call(value1); + const typeofs2 = Object.prototype.toString.call(value2); + + // 如果两个都为空,判æ–ä¸ºç›¸ç‰ + if (omitEmpty && isEmpty(value1) && isEmpty(value2)) { + // flag = true; + } else { + if (typeofs === '[object Object]' && typeofs2 === '[object Object]') { + const _flag = isObjectEqual(value1, value2, omitEmpty); + if (!_flag) { + flag = false; + break; + } + } else if ( + typeofs === '[object Array]' && + typeofs2 === '[object Array]' + ) { + const _flag = isArrayEqual(value1, value2, omitEmpty); + if (!_flag) { + flag = false; + break; + } + } else if (typeofs === typeofs2) { + // string number boolean null undefined + if (value1 !== value2) { + flag = false; + break; + } + } else { + // 类型ä¸åŒï¼Œä¸ç›¸ç‰ + flag = false; + break; + } + } + } + return flag; + } else { + return false; + } + } else { + return false; + } +}; + +/** + * @description 判æ–两个数组是å¦ç›¸ç‰ + * @param {any[]} arr1 + * @param {any[]} arr2 + * @param {boolean} omitEmpty 默认为false,当为true时,为空的值判æ–ä¸ºç›¸ç‰ + * @return {boolean} + */ +export const isArrayEqual = function ( + arr1: any[], + arr2: any[], + omitEmpty = false +) { + if (arr1.length === arr2.length) { + let flag = true; + let i = 0; + for (const item of arr1) { + const value1 = item; + const value2 = arr2[i]; + const typeofs = Object.prototype.toString.call(value1); + const typeofs2 = Object.prototype.toString.call(value2); + + // 如果两个都为空,判æ–ä¸ºç›¸ç‰ + if (omitEmpty && isEmpty(value1) && isEmpty(value2)) { + // flag = true; + } else { + if (typeofs === '[object Object]' && typeofs2 === '[object Object]') { + const _flag = isObjectEqual(value1, value2, omitEmpty); + if (!_flag) { + flag = false; + break; + } + } else if ( + typeofs === '[object Array]' && + typeofs2 === '[object Array]' + ) { + const _flag = isArrayEqual(value1, value2, omitEmpty); + if (!_flag) { + flag = false; + break; + } + } else if (typeofs === typeofs2) { + // string number boolean null undefined + if (value1 !== value2) { + flag = false; + break; + } + } else { + // 类型ä¸åŒï¼Œä¸ç›¸ç‰ + flag = false; + break; + } + } + + i++; + } + return flag; + } else { + return false; + } +}; + +/** + * @description 判æ–ä¸¤ä¸ªæ•°æ®æ˜¯å¦ç›¸ç‰ + * @param {any} data1 + * @param {any} data2 + * @param {boolean} omitEmpty 默认为false,当为true时,为空的值判æ–ä¸ºç›¸ç‰ + * @return {boolean} + */ +export const isEqual = function (data1: any, data2: any, omitEmpty = false) { + let flag = true; + // 如果两个都为空,判æ–ä¸ºç›¸ç‰ + if (omitEmpty && isEmpty(data1) && isEmpty(data2)) { + // flag = true; + } else { + const typeofs = Object.prototype.toString.call(data1); + const typeofs2 = Object.prototype.toString.call(data2); + + if (typeofs === '[object Object]' && typeofs2 === '[object Object]') { + const _flag = isObjectEqual(data1, data2, omitEmpty); + if (!_flag) { + flag = false; + } + } else if (typeofs === '[object Array]' && typeofs2 === '[object Array]') { + const _flag = isArrayEqual(data1, data2, omitEmpty); + if (!_flag) { + flag = false; + } + } else if (typeofs === typeofs2) { + // string number boolean null undefined + if (data1 !== data2) { + flag = false; + } + } else { + // 类型ä¸åŒï¼Œä¸ç›¸ç‰ + flag = false; + } + } + + return flag; +}; diff --git a/src/common/utils/omitEmpty.ts b/src/common/utils/omitEmpty.ts new file mode 100644 index 0000000000000000000000000000000000000000..bf11466f6e84a1c811e1647e5af0cdd8f86f1933 --- /dev/null +++ b/src/common/utils/omitEmpty.ts @@ -0,0 +1,27 @@ +import { isEmpty } from './isEmpty'; + +type IndexKey = string | number | symbol; +interface AnyObject { + [propName: IndexKey]: any; +} + +/** + * @description 去除对象ä¸ä¸ºç©ºçš„属性值 返回一个新对象 + * @param {AnyObject} data + * @return 返回一个新对象 + */ +export const omitEmpty = function (data: AnyObject) { + const typeofs = Object.prototype.toString.call(data); + if (typeofs === '[object Object]') { + const obj: AnyObject = {}; + for (const key in data) { + if (!isEmpty(data[key])) { + obj[key] = data[key]; + } + } + return obj; + } else { + console.error(`Expect type [object Object], but get type ${typeofs}`); + return data; + } +}; diff --git a/src/config/global-import.ts b/src/config/global-import.ts index 70d96349a24e3675ce79295cd8bc170e4ffde605..1472f59a950d7af7e054f718e25843977ce528f1 100644 --- a/src/config/global-import.ts +++ b/src/config/global-import.ts @@ -5,3 +5,10 @@ /*************** ag grid vue3****************/ import 'ag-grid-enterprise'; import 'src/css/ag-grid.scss'; + +/*************** wangEditor 5 css****************/ +import 'src/css/wang-editor5.scss'; + +/*************** CKEditor 5 language ****************/ +import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn.js'; /* 䏿–‡ç®€ä½“ */ +import '@ckeditor/ckeditor5-build-classic/build/translations/zh.js'; /* 䏿–‡ç¹ä½“ */ diff --git a/src/config/menu.ts b/src/config/menu.ts index f6ffee369baacf81f4a69989ef8660922387556d..93d44617257fbe7c10167a8a2ca1fa162fb79302 100644 --- a/src/config/menu.ts +++ b/src/config/menu.ts @@ -26,4 +26,58 @@ export default [ link: '/components-example', active: false, }, + { + title: 'Pinia example', + caption: 'vue状æ€ç®¡ç†', + icon: 'fa-solid fa-cube', + link: '/pinia-example', + active: false, + }, + { + title: 'vue状æ€ç®¡ç†', + caption: null, + icon: 'fa-solid fa-cube', + link: '/state-mgt', + active: false, + }, + { + title: '富文本编辑器', + caption: null, + children: [ + { + title: 'wangEditor 5', + caption: null, + icon: 'fa-solid fa-file-pen', + link: '/wang-editor5', + active: false, + }, + { + title: 'CKEditor 5 ', + caption: null, + icon: 'fa-solid fa-file-pen', + link: '/ck-editor5', + active: false, + }, + ], + }, + { + title: 'Other', + caption: null, + children: [ + { + title: '一些css', + caption: null, + icon: 'fa-brands fa-css3', + link: '/some-css', + active: false, + }, + { + title: '数组批é‡ç§»åЍ', + caption: null, + icon: 'fa-brands fa-css3', + link: '/array-bulk-move', + active: false, + }, + ], + }, ]; diff --git a/src/css/app.scss b/src/css/app.scss index b048f85b3f5b68632bd6c1471fc7acf0c62cb72a..867f6a7175674a75839b5180a5003dd417699fe2 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -7,6 +7,9 @@ .container-height { height: calc(100vh - 50px); } +.flex-1 { + flex: 1; +} // å¿…å¡« .text-required::before { diff --git a/src/css/wang-editor5.scss b/src/css/wang-editor5.scss new file mode 100644 index 0000000000000000000000000000000000000000..bc075c607075985277f8b27942241a2452814353 --- /dev/null +++ b/src/css/wang-editor5.scss @@ -0,0 +1,55 @@ +@import '@wangeditor/editor/dist/css/style.css'; + +// view css +.editor-content-view { + border: 3px solid #ccc; + border-radius: 5px; + padding: 0 10px; + margin-top: 20px; + overflow-x: auto; +} + +.editor-content-view p, +.editor-content-view li { + white-space: pre-wrap; /* ä¿ç•™ç©ºæ ¼ */ +} + +.editor-content-view blockquote { + border-left: 8px solid #d0e5f2; + padding: 10px 10px; + margin: 10px 0; + background-color: #f1f1f1; +} + +.editor-content-view code { + font-family: monospace; + background-color: #eee; + padding: 3px; + border-radius: 3px; +} +.editor-content-view pre > code { + display: block; + padding: 10px; +} + +.editor-content-view table { + border-collapse: collapse; +} +.editor-content-view td, +.editor-content-view th { + border: 1px solid #ccc; + min-width: 50px; + height: 20px; +} +.editor-content-view th { + background-color: #f1f1f1; +} + +.editor-content-view ul, +.editor-content-view ol { + padding-left: 20px; +} + +.editor-content-view input[type='checkbox'] { + margin-right: 5px; +} diff --git a/src/custom-types.d.ts b/src/custom-types.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4dd53e7b88111a6036f22da9530729f547e0cc42 --- /dev/null +++ b/src/custom-types.d.ts @@ -0,0 +1,14 @@ +import { SlateDescendant, SlateElement, SlateText } from '@wangeditor/editor'; + +declare module '@wangeditor/editor' { + // 扩展 Text + interface SlateText { + text: string; + } + + // 扩展 Element + interface SlateElement { + type: string; + children: SlateDescendant[]; + } +} diff --git a/src/layouts/elements/EssentialLink.vue b/src/layouts/elements/EssentialLink.vue index 75ce59befcb6ba25fe026028c7d3a20d892cf5ed..f9e9e5f81bfe3d3cdb7c864e2911cf276ec66da2 100644 --- a/src/layouts/elements/EssentialLink.vue +++ b/src/layouts/elements/EssentialLink.vue @@ -1,53 +1,59 @@ <template> - <q-expansion-item - v-if="children && children.length > 0" - expand-separator - default-opened - :label="title" - :caption="caption" - > + <div class="list-box"> + <q-expansion-item + v-if="children && children.length > 0" + expand-separator + default-opened + :label="title" + :caption="caption" + > + <q-item + clickable + class="my-essential--item" + active-class="my-item-active-class" + v-for="item in children" + @click="expansionClick(item)" + :key="item.link" + :active="pageStore.activeRouter?.path === item.link ? true : false" + > + <q-item-section + v-if="item.icon" + avatar + class="my-essential-link--item-section" + > + <q-icon :name="item.icon" /> + </q-item-section> + <q-item-section> + <q-item-label>{{ item.title }}</q-item-label> + <q-item-label caption v-if="item.caption">{{ + item.caption + }}</q-item-label> + </q-item-section> + </q-item> + </q-expansion-item> + <q-item + v-else clickable + @click="onClick" + :active="pageStore.activeRouter?.path === link ? true : false" class="my-essential--item" - active-class="bg-primary-bg-light" - v-for="item in children" - @click="expansionClick(item)" - :key="item.link" - :active="pageStore.activeRouter?.path === item.link ? true : false" + active-class="my-item-active-class" > <q-item-section - v-if="item.icon" + v-if="icon" avatar class="my-essential-link--item-section" > - <q-icon :name="item.icon" /> + <q-icon :name="icon" /> </q-item-section> + <q-item-section> - <q-item-label>{{ item.title }}</q-item-label> - <q-item-label caption v-if="item.caption">{{ - item.caption - }}</q-item-label> + <q-item-label>{{ title }}</q-item-label> + <q-item-label caption v-if="caption">{{ caption }}</q-item-label> </q-item-section> </q-item> - </q-expansion-item> - - <q-item - v-else - clickable - @click="onClick" - :active="pageStore.activeRouter?.path === link ? true : false" - class="my-essential--item" - active-class="bg-primary-bg-light" - > - <q-item-section v-if="icon" avatar class="my-essential-link--item-section"> - <q-icon :name="icon" /> - </q-item-section> - - <q-item-section> - <q-item-label>{{ title }}</q-item-label> - <q-item-label caption v-if="caption">{{ caption }}</q-item-label> - </q-item-section> - </q-item> + </div> </template> <script lang="ts"> @@ -112,6 +118,13 @@ export default defineComponent({ <style lang="scss" scoped> .my-essential--item { align-items: center; + color: #4e342e; +} +.list-box { + :deep(.my-item-active-class) { + color: $primary; + background: $primary-bg-light !important; + } } .my-essential-link--item-section { width: 24px !important; diff --git a/src/modules/ag-grid-selection/AgGridSelection.vue b/src/modules/ag-grid-selection/AgGridSelection.vue index 4f832769b174820e2917a4a0027caba1526ca06b..d8a5867aac9ed429699952b7b872f4dbfb26905a 100644 --- a/src/modules/ag-grid-selection/AgGridSelection.vue +++ b/src/modules/ag-grid-selection/AgGridSelection.vue @@ -1,7 +1,7 @@ <!-- * @FileDescription: Ag Grid Selection * @Date: 2023-08-07 - * @LastEditTime: 2023-08-08 + * @LastEditTime: 2023-10-08 --> <script setup lang="ts"> import { ref, reactive, onMounted } from 'vue'; @@ -180,8 +180,5 @@ function removeItem() { .ag-grid-selection { display: flex; flex-direction: column; - .table-box { - // - } } </style> diff --git a/src/modules/ag-grid-selection/router.ts b/src/modules/ag-grid-selection/router.ts index 2975886cc3e0f7ef8bc0a372a6c84ca05763f75e..d061e09b69b851f19d8584ca252daac4b2a36290 100644 --- a/src/modules/ag-grid-selection/router.ts +++ b/src/modules/ag-grid-selection/router.ts @@ -1,7 +1,7 @@ export default [ { path: 'ag-grid-selection', - name: 'AG_GRID_SELECTION', + name: 'AgGridSelection', component: () => import('./AgGridSelection.vue'), meta: { title: 'Ag Grid Selection', diff --git a/src/modules/array-bulk-move/ArrayBulkMove.vue b/src/modules/array-bulk-move/ArrayBulkMove.vue new file mode 100644 index 0000000000000000000000000000000000000000..c485b0b679c2deb3bbcd637f072b8c466f98a840 --- /dev/null +++ b/src/modules/array-bulk-move/ArrayBulkMove.vue @@ -0,0 +1,235 @@ +<!-- + * @FileDescription: 数组批é‡ä¸Šç§»ã€ä¸‹ç§» + * @Date: 2023-10-16 + * @LastEditTime: 2023-10-16 +--> +<script setup lang="ts"> +import { reactive } from 'vue'; +import { useMessage } from 'src/common/hooks'; + +const { warn } = useMessage(); + +const state = reactive({ + list: [ + { + title: '1', + checked: false, + }, + { + title: '2', + checked: false, + }, { + title: '3', + checked: false, + }, { + title: '4', + checked: false, + }, { + title: '5', + checked: false, + }, + { + title: '6', + checked: false, + }, + { + title: '7', + checked: false, + }, + ], +}) + +function bulkUp() { + const selected = state.list.filter(i => i.checked); + // console.log('selected=', selected); + + if (selected.length === 0) return warn('请选择数æ®'); + + state.list = bulkUpContinue(selected, state.list, 'title'); + // console.log('上移list', state.list); + +} +/** + * @description 批é‡ä¸Šç§» + * @param {any[]} selected 勾选的数æ®åˆ—表 + * @param {any[]} target 当剿•°ç»„列表 + * @param {string} uniqueKey 唯一的key + * @return {any[]} 返回的新数组列表 + */ +function bulkUpContinue(selected: any[], target: any[], uniqueKey: string) { + + if (selected.length > 0) { + const item = selected[0]; + const afterMoveList = upOne(item, target, uniqueKey); + + if (selected.length > 1) { + const afterMoveSelected = selected.slice(1); + return bulkUpContinue(afterMoveSelected, afterMoveList, uniqueKey); + } else { + return afterMoveList; + } + } else { + return target; + } +} +/** + * @description å•个上移 + * @param {any} checked å‹¾é€‰çš„ä¸€æ¡æ•°æ® + * @param {any[]} target 当剿•°ç»„列表 + * @param {string} uniqueKey 唯一的key + * @return {any[]} 返回的新数组列表 + */ +function upOne(checked: any, target: any[], uniqueKey: string) { + if (target.length === 0) { + return []; + } else { + + const key = checked[uniqueKey]; + // 勾选数æ®çš„ä¸‹æ ‡ + const index = target.findIndex(i => i[uniqueKey] === key); + // 勾选数æ®çš„å‰ä¸€ä¸ªä¸‹æ ‡ + const lastIndex = index === 0 ? target.length - 1 : index - 1; + + const newList = [] as any[]; + if (index === 0) { + let i = 0; + for (const item of target) { + if (i > 0) { + newList.push(item); + } + i = i + 1; + }; + newList.push(target[0]); + } else { + let i = 0; + for (const item of target) { + if (i === lastIndex) { + newList.push(target[index]); + } else if (i === index) { + newList.push(target[lastIndex]); + } else { + newList.push(item); + } + i = i + 1; + } + } + return newList; + } +} +// function oneUp() { +// const selected = state.list.filter(i => i.checked); +// if (selected.length === 1) { +// const list = upOne(selected[0], state.list); +// state.list = list; +// console.log('list', list); + +// } else { +// return; +// } +// } +// function oneDown() { +// const selected = state.list.filter(i => i.checked); +// if (selected.length === 1) { +// const list = downOne(selected[0], state.list, 'title'); +// state.list = list; +// console.log('list', list); + +// } else { +// return; +// } +// } + +function batchDown() { + const selected = state.list.filter(i => i.checked); + // console.log('selected=', selected); + + if (selected.length === 0) return warn('请选择数æ®'); + + state.list = batchDownContinue(selected, state.list, 'title'); + // console.log('下移list', state.list); +} +/** + * @description 批é‡ä¸‹ç§» + * @param {any[]} selected 勾选的数æ®åˆ—表 + * @param {any[]} target 当剿•°ç»„列表 + * @param {string} uniqueKey 唯一的key + * @return {any[]} 返回的新数组列表 + */ +function batchDownContinue(selected: any[], target: any[], uniqueKey: string) { + + if (selected.length > 0) { + const item = selected[selected.length - 1]; // 从最åŽä¸€ä¸ªå¼€å§‹ + const afterMoveList = downOne(item, target, uniqueKey); + + if (selected.length > 1) { + const afterMoveSelected = selected.slice(0, selected.length - 1); + return batchDownContinue(afterMoveSelected, afterMoveList, uniqueKey); + } else { + return afterMoveList; + } + } else { + return target; + } +} +/** + * @description å•个下移 + * @param {any} checked å‹¾é€‰çš„ä¸€æ¡æ•°æ® + * @param {any[]} target 当剿•°ç»„列表 + * @param {string} uniqueKey 唯一的key + * @return {any[]} 返回的新数组列表 + */ +function downOne(checked: any, target: any[], uniqueKey: string) { + if (target.length === 0) { + return []; + } else { + + const key = checked[uniqueKey]; + // 勾选数æ®çš„ä¸‹æ ‡ + const index = target.findIndex(i => i[uniqueKey] === key); + // 勾选数æ®çš„åŽä¸€ä¸ªä¸‹æ ‡ + const nextIndex = index === target.length - 1 ? 0 : index + 1; + + const newList = [] as any[]; + if (index === target.length - 1) { + newList.push(target[target.length - 1]); + let i = 0; + for (const item of target) { + if (i < target.length - 1) { + newList.push(item); + } + i = i + 1; + }; + + } else { + let i = 0; + for (const item of target) { + if (i === index) { + newList.push(target[nextIndex]); + } else if (i === nextIndex) { + newList.push(target[index]); + } else { + newList.push(item); + } + i = i + 1; + } + } + return newList; + } +} + +</script> +<template> + <div> + <div> + <q-btn color="primary" label="批é‡ä¸Šç§»" @click="bulkUp" /> + <q-btn color="primary" label="批é‡ä¸‹ç§»" @click="batchDown" /> + <!-- <q-btn color="primary" label="å•个上移" @click="oneUp" /> --> + <!-- <q-btn color="primary" label="å•个下移" @click="oneDown" /> --> + </div> + <div class="column"> + <q-checkbox v-model="i.checked" :label="i.title" v-for="(i) in state.list" :key="i.title" /> + </div> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/array-bulk-move/router.ts b/src/modules/array-bulk-move/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..10fffe77c86e74ad902d4c746bdc2dad38ca61d0 --- /dev/null +++ b/src/modules/array-bulk-move/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'array-bulk-move', + name: 'ArrayBulkMove', + component: () => import('./ArrayBulkMove.vue'), + meta: { + title: '数组批é‡ç§»åЍ', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/ck-editor5/CkEditor5.vue b/src/modules/ck-editor5/CkEditor5.vue new file mode 100644 index 0000000000000000000000000000000000000000..9a7213afd3292c7109a5fdb0bb1af382cd7419c5 --- /dev/null +++ b/src/modules/ck-editor5/CkEditor5.vue @@ -0,0 +1,84 @@ +<!-- + * @FileDescription:CKEditor 5 + * @Date: 2023-11-13 + * @LastEditTime: 2023-11-13 +--> +<script setup lang="ts"> +import { reactive, shallowRef } from 'vue'; +import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; +// import type { EditorConfig } from '@ckeditor/ckeditor5-core'; +// const fs = require('fs'); + + + +const editorGf = shallowRef<any>({}); +const editorState = reactive({ + editor: ClassicEditor, + editorData: '<p>这是一行文å—。</p>', + editorConfig: { + // The configuration of the editor. + // https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editorconfig-EditorConfig.html + placeholder: '请输入...', + language: 'zh-cn', + toolbar: ['undo', 'redo', '|', 'heading', 'bold', 'italic', 'blockQuote', 'link', 'indent', 'outdent', 'numberedList', 'bulletedList'], + } +}) + +function onReady(editor: any) { + editorGf.value = editor; + console.log('onReady=', editorGf.value); + const names = editorGf.value?.ui.componentFactory.names(); + console.log('工具æ 项=', Array.from(names)); + +} + +function filechange(event: any) { + const files = event.target.files; + console.log('files', files); + +} +function clikeMe() { + // const dir = '../ck-editor5'; + + // // list all files in the directory + // fs.readdir(dir, (err: any, files: any) => { + // if (err) { + // throw err; + // } + + // // files object contains all files names + // // log them on console + // files.forEach((file: any) => { + // console.log(file); + // }); + // }) +} +</script> +<template> + <div> + <div> + <p>快速开始:<br> https://ckeditor.com/docs/ckeditor5/latest/installation/integrations/vuejs-v3.html</p> + <p>CKEditor 5 rich text editor component for Vue.js: <br> https://www.npmjs.com/package/@ckeditor/ckeditor5-vue + </p> + </div> + <div class="container q-pa-md"> + <div> + <ckeditor :editor="editorState.editor" v-model="editorState.editorData" :config="editorState.editorConfig" + @ready="onReady"> + </ckeditor> + </div> + </div> + <div> + <p>其它</p> + <button @click="clikeMe">点我</button> + <input type="file" id="fileInput" webkitdirectory directory multiple @change="filechange"> + </div> + </div> +</template> + +<style lang="scss" scoped> +.container { + height: 500px; + background-color: #ececec; +} +</style> diff --git a/src/modules/ck-editor5/config.ts b/src/modules/ck-editor5/config.ts new file mode 100644 index 0000000000000000000000000000000000000000..d57e95592853d568b1cd70abcff5f77e030b2483 --- /dev/null +++ b/src/modules/ck-editor5/config.ts @@ -0,0 +1,35 @@ +// 工具æ 选项 +// [ +// 'selectAll', // 全选 +// 'undo', // 撤销 +// 'redo', // é‡åš +// 'bold', // åŠ ç²— +// 'italic', // 倾斜 +// 'blockQuote', // 引用· +// 'link', // 超链接 +// 'ckfinder', // æ’入图片或文件 +// 'uploadImage', // æ’å…¥å›¾åƒ +// 'imageUpload', // æ’å…¥å›¾åƒ +// 'heading', // æ ‡é¢˜ +// 'imageTextAlternative', // æ›´æ”¹å›¾ç‰‡æ›¿æ¢æ–‡æœ¬ +// 'toggleImageCaption', // æ‰“å¼€è¡¨æ ‡é¢˜ +// 'imageStyle:inline', // 行内 +// 'imageStyle:alignLeft', // å›¾ç‰‡å·¦ä¾§å¯¹é½ +// 'imageStyle:alignRight', // 图片å³ä¾§å¯¹é½ +// 'imageStyle:alignCenter', // å›¾ç‰‡å±…ä¸ +// 'imageStyle:alignBlockLeft', // å›¾ç‰‡å·¦ä¾§å¯¹é½ +// 'imageStyle:alignBlockRight', // 图片å³ä¾§å¯¹é½ +// 'imageStyle:block', // å›¾ç‰‡å±…ä¸ +// 'imageStyle:side', // 图片侧边显示 +// 'imageStyle:wrapText', // æ–‡å—çŽ¯ç»•ï¼šå›¾ç‰‡å·¦ä¾§å¯¹é½ +// 'imageStyle:breakText', // æ–‡å—æ–è¡Œï¼šå›¾ç‰‡å±…ä¸ +// 'indent', // å¢žåŠ ç¼©è¿› +// 'outdent', // å‡å°‘缩进 +// 'numberedList', // 项目编å·åˆ—表 +// 'bulletedList', // 项目符å·åˆ—表 +// 'mediaEmbed', +// 'insertTable', +// 'tableColumn', +// 'tableRow', +// 'mergeTableCells', +// ]; diff --git a/src/modules/ck-editor5/router.ts b/src/modules/ck-editor5/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..20e3ca2f716bccad3d8d00d800a21136f71033c1 --- /dev/null +++ b/src/modules/ck-editor5/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'ck-editor5', + name: 'CkEditor5', + component: () => import('./CkEditor5.vue'), + meta: { + title: 'CKEditor 5 ', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/components-example/router.ts b/src/modules/components-example/router.ts index 38ccc88a05fb6906b0e63dbc6419f476cad1c469..8c23c3c663b4c50fafeebc8f9fd81a52df589fcb 100644 --- a/src/modules/components-example/router.ts +++ b/src/modules/components-example/router.ts @@ -1,7 +1,7 @@ export default [ { path: 'components-example', - name: 'COMPONENTS_EXAMPLE', + name: 'ComponentsExample', component: () => import('./ComponentsExample.vue'), meta: { title: 'Components example', diff --git a/src/modules/home/PageHome.vue b/src/modules/home/PageHome.vue index 5d02fc6a0c3fdbbdccdad084d4a47eab07aa378c..6cf87c747079def1132dabdee7ab2271278c8a67 100644 --- a/src/modules/home/PageHome.vue +++ b/src/modules/home/PageHome.vue @@ -1,7 +1,7 @@ <!-- * @FileDescription: 主页 * @Date: 2023-08-03 - * @LastEditTime: 2023-08-07 + * @LastEditTime: 2023-10-08 --> <script setup lang="ts"> import { ref, reactive, onMounted, computed } from 'vue'; diff --git a/src/modules/home/router.ts b/src/modules/home/router.ts index 26f84295cabe1c338a95c5d75a34762a255c2734..df051655a8f55f54f270f3b3b077c4824aa2f71f 100644 --- a/src/modules/home/router.ts +++ b/src/modules/home/router.ts @@ -1,7 +1,7 @@ export default [ { path: 'home', - name: 'HOME', + name: 'PageHome', component: () => import('./PageHome.vue'), meta: { title: '主页', diff --git a/src/modules/login/LoginPage.vue b/src/modules/login/LoginPage.vue new file mode 100644 index 0000000000000000000000000000000000000000..eb15bafb63bd59043e2ea75645dc3d54714df89e --- /dev/null +++ b/src/modules/login/LoginPage.vue @@ -0,0 +1,153 @@ +<!-- + * @FileDescription: ç™»å½•é¡µé¢ + * @Date: 2023-08-15 + * @LastEditTime: 2023-10-08 +--> +<script setup lang="ts"> +import { ref, reactive } from 'vue'; +import { useRouter, useRoute } from 'vue-router'; +import { useUserInfoStore, useMessage } from 'src/common/hooks'; +import { isEmpty } from 'src/common/utils'; + +const router = useRouter(); +const route = useRoute(); +const userInfoStore = useUserInfoStore(); +const { error } = useMessage(); + +const ruleRequired = [(val: any) => !isEmpty(val) || 'å¿…å¡«']; + +const loading = ref(false); +const isPwd = ref(true); +const state = reactive({ + formdata: { + username: null, + password: null, + }, +}); +function onSubmit() { + loading.value = true; + setTimeout(() => { + loading.value = false; + loginSuccess(); + }, 1000); +} +function loginSuccess() { + const result = { + id: 1, + username: 'admin', + is_admin: true, + }; + if (state.formdata.username !== 'admin') return error('用户å错误'); + if (state.formdata.password !== 'admin') return error('密ç 错误'); + + userInfoStore.setUserInfo(result); + + const redirect = (route.query.redirect || '/home') as string; + router.push({ + path: redirect, + }); +} +</script> +<template> + <div style="height: 100vh" class="login-page"> + <div class="container column"> + <div class="title-box"> + <div class="title-icon"></div> + </div> + <q-form @submit="onSubmit"> + <q-input + v-model="state.formdata.username" + label="用户å" + rounded + outlined + no-error-icon + label-color="primary" + class="login-input" + :rules="ruleRequired" + > + <template v-slot:append> + <q-icon name="fa-solid fa-user" color="brown-6" /> + </template> + </q-input> + + <q-input + v-model="state.formdata.password" + label="密ç " + rounded + outlined + no-error-icon + label-color="primary" + :type="isPwd ? 'password' : 'text'" + class="q-mt-sm login-input" + :rules="ruleRequired" + > + <template v-slot:append> + <q-icon + :name="isPwd ? 'fa-solid fa-eye-slash' : 'fa-solid fa-eye'" + class="cursor-pointer" + color="brown-6" + @click="isPwd = !isPwd" + /> + </template> + </q-input> + + <div style="margin-top: 24px"> + <q-btn + unelevated + label="登录" + type="submit" + color="primary" + class="full-width login-btn" + text-color="brown-6" + :loading="loading" + > + <template v-slot:loading> + <q-spinner-facebook /> + </template> + </q-btn> + </div> + </q-form> + </div> + </div> +</template> + +<style lang="scss" scoped> +.login-page { + display: flex; + align-items: center; + justify-content: center; + background: url('./imgs/login-bg.png'); + background-size: cover; + background-position: center; + + .container { + width: 420px; + background-color: transparent; + border: 2px solid rgba(255, 255, 255, 0.2); + backdrop-filter: blur(20px); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + + border-radius: 10px; + padding: 30px 34px; + > .title-box { + margin-bottom: 20px; + display: flex; + justify-content: center; + align-items: center; + > .title-icon { + height: 84px; + width: 84px; + background: url('./imgs/login-icon.svg'); + background-size: cover; + background-position: center; + } + } + } +} +.login-btn { + height: 56px; + border-radius: 56px; + font-size: 18px; + letter-spacing: 2px; +} +</style> diff --git a/src/modules/login/imgs/login-bg.png b/src/modules/login/imgs/login-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae5d62f6f7f49a69ee6d4bcc0d3fa613eb510c3 Binary files /dev/null and b/src/modules/login/imgs/login-bg.png differ diff --git a/src/modules/login/imgs/login-icon.svg b/src/modules/login/imgs/login-icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..cade6153892657d6f31ec4233aa869c14a04edb0 --- /dev/null +++ b/src/modules/login/imgs/login-icon.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg height="280" node-id="1" sillyvg="true" template-height="280" template-width="280" version="1.1" viewBox="0 0 280 280" width="280" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs node-id="74"><clipPath id="clip-path" node-id="5"><path d="M 270.00 140.00 C 270.00 211.80 211.80 270.00 140.00 270.00 C 68.20 270.00 10.00 211.80 10.00 140.00 C 10.00 68.20 68.20 10.00 140.00 10.00 C 211.80 10.00 270.00 68.20 270.00 140.00 Z" fill="#000000" fill-rule="nonzero" node-id="77" stroke="none" target-height="260" target-width="260" target-x="10" target-y="10"></path></clipPath><clipPath id="clip-path-2" node-id="7"><path d="M -150.04 140.00 C -150.04 211.80 -208.24 270.00 -280.04 270.00 C -351.84 270.00 -410.04 211.80 -410.04 140.00 C -410.04 68.20 -351.84 10.00 -280.04 10.00 C -208.24 10.00 -150.04 68.20 -150.04 140.00 Z" fill="#000000" fill-rule="nonzero" node-id="81" stroke="none" target-height="260" target-width="260" target-x="-410.04" target-y="10"></path></clipPath></defs><path d="M 270.00 140.00 C 270.00 211.80 211.80 270.00 140.00 270.00 C 68.20 270.00 10.00 211.80 10.00 140.00 C 10.00 68.20 68.20 10.00 140.00 10.00 C 211.80 10.00 270.00 68.20 270.00 140.00 Z" fill="#ffffff" fill-opacity="0.001" fill-rule="nonzero" node-id="85" stroke="none" target-height="260" target-width="260" target-x="10" target-y="10"></path><g node-id="215"><g clip-path="url(#clip-path)" group-id="1" id="ä¹è‰²é¹¿" node-id="11"><path d="M 138.08 209.29 C 138.16 207.27 137.55 205.28 136.35 203.65 C 135.42 202.43 133.91 201.79 132.38 201.99 C 130.86 202.19 129.55 203.18 128.96 204.60 C 127.51 203.73 125.74 203.53 124.13 204.05 C 122.22 205.06 120.79 206.78 120.13 208.83 C 118.69 212.58 118.73 216.74 120.23 220.46 C 121.75 224.16 124.97 227.46 128.68 228.07 C 136.49 229.26 144.45 227.08 150.56 222.07 C 145.51 223.88 140.16 224.74 134.80 224.60 C 132.51 224.62 130.23 224.17 128.12 223.28 C 124.19 221.42 122.64 217.21 123.66 212.67 C 124.21 210.25 126.57 208.22 128.66 209.08 C 129.76 209.53 131.17 210.57 131.86 209.52 C 132.36 208.76 131.86 207.38 132.64 206.94 C 132.88 206.83 133.16 206.79 133.42 206.85 C 135.25 206.95 136.95 207.84 138.08 209.29 Z M 38.44 102.11 L 38.34 102.04 C 37.93 101.79 37.56 101.48 37.25 101.11 C 35.96 99.48 37.09 97.24 38.49 95.54 L 38.49 97.29 C 40.02 97.84 41.73 97.50 42.94 96.42 C 42.80 96.04 42.59 95.68 42.33 95.36 L 56.68 101.90 C 60.68 103.73 65.14 105.61 69.43 104.51 C 70.71 104.19 71.92 103.60 73.19 103.18 C 77.51 101.74 82.32 102.32 86.59 103.92 C 88.19 104.52 89.72 105.25 91.19 106.12 C 92.03 106.62 92.83 107.17 93.60 107.78 L 94.26 108.34 C 95.49 109.42 96.51 110.71 97.26 112.16 C 97.76 112.19 98.26 112.28 98.75 112.41 C 99.04 112.49 99.32 112.59 99.60 112.71 C 101.09 113.37 102.50 114.23 103.77 115.25 C 107.88 118.44 111.00 122.73 112.77 127.62 C 113.01 128.25 113.31 128.85 113.66 129.42 C 112.97 129.13 112.37 128.67 111.90 128.09 C 109.92 129.08 107.75 129.66 105.54 129.79 C 104.38 129.85 103.22 129.77 102.08 129.57 C 101.01 129.38 99.95 129.12 98.91 128.80 C 98.35 129.37 97.74 129.90 97.10 130.37 C 97.80 131.46 98.62 132.51 99.40 133.60 C 99.75 134.06 100.07 134.52 100.40 134.98 C 103.07 138.98 105.73 142.95 108.40 146.88 C 116.30 158.57 125.00 170.93 138.16 176.03 C 153.28 181.90 169.22 173.73 175.50 158.97 C 178.01 153.07 180.08 146.68 184.75 142.29 C 188.35 139.05 192.92 137.11 197.75 136.76 C 199.54 136.58 201.34 136.55 203.13 136.67 L 204.66 136.79 C 207.60 137.11 210.50 137.73 213.31 138.64 C 219.99 140.79 226.68 144.56 229.72 150.88 C 236.27 164.48 252.05 166.45 262.11 155.42 C 266.05 156.29 264.54 158.15 267.38 158.47 C 269.66 175.65 290.19 200.34 309.45 225.66 C 309.95 226.73 312.26 228.14 313.13 228.90 L 313.13 228.90 C 316.13 231.55 320.92 232.31 324.39 230.17 C 325.84 233.70 325.94 237.67 327.34 241.17 C 323.76 243.40 320.22 242.25 316.71 239.90 C 314.85 238.66 308.10 230.09 306.71 227.76 L 306.71 227.76 C 289.23 209.39 271.15 188.07 260.29 171.01 C 259.14 172.69 257.89 174.30 256.55 175.83 C 249.13 184.42 239.46 191.62 228.47 194.09 C 227.23 194.37 225.98 194.59 224.71 194.75 C 219.88 195.31 214.99 194.81 210.37 193.29 C 208.60 199.41 206.23 205.35 203.29 211.00 L 203.29 211.00 C 192.29 232.05 173.64 250.20 152.85 259.00 C 149.52 260.54 145.95 261.49 142.29 261.80 C 140.92 264.80 139.31 267.69 137.49 270.45 C 132.67 277.58 129.55 285.72 128.37 294.25 C 128.37 294.43 128.31 294.61 128.27 294.79 C 127.90 296.61 127.27 298.36 126.41 300.00 C 123.48 302.74 118.73 310.09 115.10 315.23 C 105.84 328.31 97.46 354.90 93.15 370.48 L 91.35 372.54 C 92.28 374.89 93.22 377.24 94.15 379.59 C 94.29 379.89 94.35 380.21 94.31 380.54 C 94.18 380.89 93.93 381.18 93.61 381.36 C 89.61 384.24 86.51 387.26 82.51 389.36 C 88.72 359.04 104.40 322.44 117.99 293.36 L 120.39 288.26 L 121.71 289.35 C 121.47 288.59 121.21 287.84 120.94 287.08 C 118.85 281.08 116.20 275.14 115.10 269.08 C 114.96 268.29 114.81 267.49 114.67 266.69 C 114.14 263.69 113.67 260.58 113.14 257.52 C 107.25 254.41 102.66 249.18 99.24 243.06 C 96.94 238.86 95.16 234.40 93.94 229.77 C 90.94 218.77 91.13 207.39 88.80 196.37 C 86.80 186.97 84.26 177.58 81.41 168.37 C 75.82 150.43 67.87 132.30 53.57 119.58 C 50.78 117.09 47.68 114.99 44.91 112.47 C 42.91 110.64 37.67 106.10 38.09 103.06 C 38.13 102.72 38.25 102.40 38.44 102.11 Z M 193.44 199.85 C 196.33 194.78 185.93 193.26 183.24 194.60 C 180.70 195.91 179.11 198.54 179.13 201.40 C 179.39 200.98 179.71 200.59 180.06 200.24 C 182.42 198.03 185.94 197.59 188.77 199.17 C 189.49 199.70 190.26 200.15 191.07 200.51 C 191.91 200.84 192.87 200.57 193.41 199.85 Z M 167.58 200.72 C 168.31 200.34 172.26 197.35 172.09 196.67 C 163.23 192.83 159.56 201.41 162.74 206.81 C 163.39 204.18 165.14 201.96 167.55 200.72 Z M 154.58 206.86 C 155.52 205.39 154.43 203.23 152.76 202.74 C 145.84 200.74 146.94 212.60 150.03 215.39 C 151.09 216.23 152.39 216.74 153.74 216.85 C 153.39 216.48 153.08 216.07 152.81 215.64 C 151.50 213.56 150.81 210.64 152.46 208.80 C 153.09 208.10 154.00 207.67 154.55 206.86 Z" fill="#fffbe8" fill-rule="nonzero" group-id="1,3" node-id="90" stroke="none" target-height="294" target-width="291.38" target-x="35.96" target-y="95.36"></path><path d="M 230.00 212.87 C 221.39 216.99 211.24 216.28 203.29 211.00 L 203.29 211.00 C 206.26 205.36 208.65 199.45 210.45 193.34 C 215.07 194.86 219.96 195.36 224.79 194.80 C 226.06 194.64 227.31 194.42 228.55 194.14 C 231.84 199.43 238.05 203.54 243.79 205.33 C 243.48 208.33 241.45 208.64 242.79 211.27 C 240.27 212.58 237.19 220.12 236.37 222.85 C 229.01 247.14 228.50 252.71 222.89 277.43 C 222.24 280.33 221.61 283.43 222.71 286.22 C 223.07 287.12 224.48 289.74 224.55 290.71 C 224.65 292.21 223.60 293.53 222.61 294.71 C 219.82 297.91 216.16 299.36 213.37 302.56 C 211.37 299.95 211.93 296.23 212.98 293.11 C 214.33 289.08 216.32 285.30 218.87 281.90 C 220.55 254.20 224.71 231.94 230.00 212.87 Z" fill="#ffffe6" fill-rule="nonzero" group-id="1,3" node-id="92" stroke="none" target-height="109.22" target-width="40.5" target-x="203.29" target-y="193.34"></path><path d="M 203.20 136.67 C 201.41 136.55 199.61 136.58 197.82 136.76 C 200.32 134.65 201.37 131.29 200.52 128.13 C 199.84 126.31 198.77 124.67 197.37 123.33 C 191.82 117.53 183.94 116.15 176.30 117.96 C 178.43 114.60 181.59 112.02 185.30 110.60 C 190.32 108.75 195.91 109.23 200.54 111.91 C 204.31 114.11 207.41 118.28 206.80 122.67 C 206.97 120.91 209.80 120.73 210.80 122.18 C 211.80 123.63 211.44 125.62 210.86 127.28 C 209.61 130.89 207.52 134.14 204.77 136.79 Z" fill="#fffde6" fill-rule="nonzero" group-id="1,3" node-id="94" stroke="none" target-height="28.039993" target-width="35.5" target-x="176.3" target-y="108.75"></path><path d="M 183.21 194.60 C 185.90 193.26 196.30 194.78 193.41 199.85 C 192.86 200.59 191.89 200.86 191.04 200.51 C 190.23 200.15 189.46 199.70 188.74 199.17 C 185.91 197.59 182.39 198.03 180.03 200.24 C 179.68 200.59 179.36 200.98 179.10 201.40 C 179.08 198.54 180.67 195.91 183.21 194.60 Z" fill="#ffba70" fill-rule="nonzero" group-id="1,3" node-id="96" stroke="none" target-height="8.139999" target-width="17.220001" target-x="179.08" target-y="193.26"></path><path d="M 172.06 196.67 C 172.23 197.35 168.28 200.34 167.55 200.72 C 165.13 201.95 163.37 204.18 162.71 206.81 C 159.53 201.41 163.20 192.83 172.06 196.67 Z" fill="#ffff70" fill-rule="nonzero" group-id="1,3" node-id="98" stroke="none" target-height="13.979996" target-width="12.699997" target-x="159.53" target-y="192.83"></path><path d="M 152.73 202.74 C 154.40 203.23 155.49 205.39 154.55 206.86 C 154.04 207.67 153.09 208.10 152.43 208.80 C 150.77 210.61 151.43 213.56 152.78 215.64 C 153.05 216.07 153.36 216.48 153.71 216.85 C 152.36 216.74 151.06 216.23 150.00 215.39 C 146.91 212.60 145.81 200.74 152.73 202.74 Z" fill="#b3ff70" fill-rule="nonzero" group-id="1,3" node-id="100" stroke="none" target-height="16.11" target-width="9.680008" target-x="145.81" target-y="200.74"></path><path d="M 132.81 51.76 C 131.15 41.76 127.81 32.20 124.60 22.59 C 133.45 13.59 139.36 48.29 139.60 56.39 C 140.14 80.82 122.10 103.05 99.66 112.71 C 99.38 112.59 99.10 112.49 98.81 112.41 C 98.32 112.28 97.82 112.19 97.32 112.16 C 96.57 110.71 95.55 109.42 94.32 108.34 C 105.47 104.90 115.19 97.93 122.02 88.47 L 122.66 87.62 C 122.54 85.19 122.04 82.80 121.20 80.52 C 120.62 78.99 119.87 77.45 119.97 75.82 C 120.07 74.19 121.43 72.49 123.04 72.75 C 124.81 74.75 125.91 79.01 126.88 81.46 L 126.88 81.46 C 129.16 76.23 133.21 68.39 132.74 62.46 C 132.14 54.81 122.61 52.27 117.68 47.90 C 116.08 46.47 114.21 44.54 115.53 42.84 C 116.46 41.65 118.34 41.68 119.65 42.45 C 122.21 44.11 124.67 45.93 127.00 47.89 C 128.80 49.32 130.90 50.43 132.81 51.76 Z" fill="#ffd870" fill-rule="nonzero" group-id="1,3" node-id="102" stroke="none" target-height="99.119995" target-width="45.82" target-x="94.32" target-y="13.59"></path><path d="M 136.35 203.65 C 137.55 205.28 138.16 207.27 138.08 209.29 C 136.95 207.84 135.24 206.95 133.40 206.86 C 133.14 206.80 132.86 206.84 132.62 206.95 C 131.87 207.39 132.34 208.77 131.84 209.53 C 131.15 210.58 129.74 209.53 128.64 209.09 C 126.54 208.23 124.18 210.26 123.64 212.68 C 122.64 217.22 124.17 221.43 128.10 223.29 C 130.21 224.18 132.49 224.63 134.78 224.61 C 140.14 224.75 145.49 223.89 150.54 222.08 C 144.43 227.09 136.47 229.27 128.66 228.08 C 124.95 227.45 121.73 224.17 120.21 220.47 C 118.71 216.75 118.67 212.59 120.11 208.84 C 120.77 206.79 122.20 205.07 124.11 204.06 C 125.72 203.54 127.49 203.74 128.94 204.61 C 129.53 203.18 130.83 202.18 132.37 201.98 C 133.90 201.78 135.42 202.42 136.35 203.65 Z" fill="#70ffd2" fill-rule="nonzero" group-id="1,3" node-id="104" stroke="none" target-height="27.490005" target-width="31.869995" target-x="118.67" target-y="201.78"></path><path d="M 98.92 270.28 C 105.24 275.74 112.75 281.96 120.39 288.28 L 117.99 293.38 C 108.54 285.99 100.07 279.51 94.92 275.83 C 91.83 273.61 63.08 263.90 76.53 257.00 C 77.67 256.42 83.15 255.87 84.36 255.46 C 91.44 253.08 95.65 248.46 99.24 243.02 C 102.66 249.14 107.24 254.37 113.14 257.48 C 113.62 260.54 114.14 263.60 114.67 266.65 C 109.78 269.00 104.57 269.75 98.92 270.28 Z" fill="#fffbe8" fill-rule="nonzero" group-id="1,3" node-id="106" stroke="none" target-height="50.36" target-width="57.309998" target-x="63.08" target-y="243.02"></path><path d="M 102.08 84.92 C 100.70 83.50 99.31 82.07 97.92 80.66 C 96.19 78.89 94.44 75.95 96.25 74.26 C 98.06 72.57 99.38 74.57 101.05 76.26 C 101.66 76.89 102.26 77.56 102.86 78.26 C 103.16 74.72 103.33 71.06 103.43 67.77 L 103.43 67.77 C 102.43 65.44 100.34 63.38 94.15 60.10 C 92.83 59.40 84.71 55.16 88.50 52.50 C 90.66 50.99 100.09 56.38 103.42 58.30 C 102.23 53.89 100.13 49.78 97.26 46.22 C 95.74 44.47 91.26 41.66 91.89 39.22 C 92.35 38.06 93.42 37.24 94.66 37.11 L 94.66 37.11 C 98.28 39.05 101.39 41.83 103.72 45.22 C 108.64 52.73 109.23 62.22 108.89 71.22 C 108.50 81.16 106.04 104.51 93.55 107.72 C 92.78 107.11 91.98 106.56 91.14 106.06 C 96.44 101.69 99.69 95.20 101.34 88.51 C 101.63 87.45 101.87 86.22 102.08 84.92 Z" fill="#ffd870" fill-rule="nonzero" group-id="1,3" node-id="108" stroke="none" target-height="70.61" target-width="24.520004" target-x="84.71" target-y="37.11"></path><path d="M 42.30 95.36 C 42.56 95.68 42.77 96.04 42.91 96.42 C 41.70 97.50 39.99 97.84 38.46 97.29 L 38.46 95.54 C 38.46 94.89 38.89 94.67 38.90 94.02 C 40.19 93.79 41.51 94.31 42.30 95.36 Z" fill="#565b73" fill-rule="nonzero" group-id="1,3" node-id="110" stroke="none" target-height="4.0499954" target-width="4.450001" target-x="38.46" target-y="93.79"></path><path d="M 37.65 95.65 C 37.65 96.23 37.65 96.81 37.65 97.40 C 37.63 97.53 37.70 97.65 37.82 97.70 C 39.82 98.38 42.03 97.95 43.62 96.56 C 43.70 96.49 43.84 96.33 43.79 96.20 C 43.43 95.27 42.75 94.49 41.88 94.00 C 40.98 93.58 39.98 93.43 39.00 93.55 C 38.77 93.57 38.55 93.65 38.36 93.77 C 38.25 93.84 38.05 93.97 38.04 94.12 C 38.04 94.70 37.63 95.05 37.61 95.65 C 37.61 96.01 38.06 96.05 38.33 96.01 C 38.56 95.98 38.77 95.91 38.97 95.79 C 39.08 95.72 39.28 95.59 39.29 95.44 C 39.29 94.86 39.70 94.51 39.73 93.91 L 38.73 94.48 L 39.19 94.48 L 39.47 94.48 C 39.56 94.48 39.36 94.48 39.47 94.48 L 39.59 94.48 L 39.85 94.54 L 39.99 94.54 C 39.99 94.54 40.06 94.54 39.99 94.54 C 40.16 94.60 40.32 94.67 40.48 94.76 C 40.61 94.83 40.74 94.92 40.85 95.02 C 41.00 95.14 41.13 95.28 41.26 95.42 C 41.55 95.76 41.79 96.15 41.96 96.57 L 42.13 96.21 L 41.93 96.38 L 41.82 96.47 C 41.88 96.47 41.88 96.47 41.82 96.47 L 41.60 96.61 L 41.49 96.67 L 41.25 96.78 C 41.20 96.78 40.94 96.93 41.15 96.78 C 41.11 96.86 41.06 96.93 41.00 97.00 L 40.90 97.00 C 40.73 97.04 40.55 97.06 40.37 97.06 L 39.84 97.06 C 39.92 97.06 39.91 97.06 39.84 97.06 L 39.57 97.06 L 39.31 96.99 L 39.19 96.99 C 39.19 96.99 39.19 96.99 39.19 96.99 L 39.36 97.29 L 39.36 95.55 C 39.36 95.18 38.92 95.14 38.63 95.19 C 38.41 95.21 38.19 95.28 38.00 95.40 C 37.89 95.48 37.68 95.61 37.68 95.76 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="113" stroke="none" target-height="4.949997" target-width="6.2299995" target-x="37.61" target-y="93.43"></path><path d="M 37.71 95.52 C 36.63 96.65 35.97 98.12 35.85 99.68 C 35.85 101.54 37.56 102.38 38.94 103.26 L 49.30 109.92 C 49.76 110.21 51.30 109.53 50.64 109.10 L 41.21 103.10 C 40.43 102.60 39.63 102.10 38.87 101.58 C 38.20 101.18 37.73 100.52 37.57 99.76 C 37.31 98.24 38.37 96.76 39.27 95.61 C 39.53 95.29 39.05 95.13 38.82 95.11 C 38.40 95.09 37.99 95.26 37.71 95.57 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="115" stroke="none" target-height="15.120003" target-width="15.450001" target-x="35.85" target-y="95.09"></path><path d="M 37.65 102.09 C 36.72 103.81 37.59 105.54 38.65 107.02 C 39.96 108.79 41.46 110.42 43.13 111.86 C 47.35 115.72 52.08 118.93 56.13 123.02 C 64.13 131.18 70.02 141.19 74.50 151.67 C 79.29 162.88 82.73 174.72 85.70 186.53 C 87.41 193.07 88.71 199.71 89.58 206.41 C 90.37 212.87 90.87 219.41 92.18 225.77 C 94.73 238.23 100.85 251.60 112.54 257.89 C 113.02 258.15 114.54 257.45 113.88 257.07 C 103.50 251.49 97.61 240.07 94.72 229.07 C 93.07 222.75 92.41 216.24 91.72 209.76 C 91.04 203.32 89.96 196.94 88.50 190.63 C 85.81 178.59 82.24 166.76 77.83 155.23 C 73.83 144.99 68.66 135.07 61.56 126.61 C 59.63 124.31 57.56 122.13 55.35 120.09 C 52.76 117.69 49.89 115.65 47.19 113.38 C 45.32 111.83 43.55 110.16 41.89 108.38 C 40.55 106.90 38.15 104.28 39.31 102.12 C 39.69 101.42 38.01 101.60 37.74 102.12 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="117" stroke="none" target-height="156.73" target-width="77.82" target-x="36.72" target-y="101.42"></path><path d="M 209.61 193.45 C 202.43 217.91 185.15 239.98 163.30 253.13 C 160.40 254.89 157.39 256.48 154.30 257.88 C 150.52 259.58 146.60 261.09 142.43 261.33 C 141.60 261.33 141.04 262.33 142.20 262.26 C 148.84 261.89 155.26 258.69 161.00 255.56 C 166.59 252.49 171.87 248.89 176.76 244.81 C 186.86 236.40 195.40 226.27 201.97 214.89 C 205.93 208.07 209.07 200.80 211.32 193.24 C 211.50 192.64 209.81 192.88 209.64 193.45 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="119" stroke="none" target-height="69.68999" target-width="70.46001" target-x="141.04" target-y="192.64"></path><path d="M 314.00 228.58 C 313.37 227.97 312.70 227.39 312.00 226.86 C 311.01 226.09 310.14 225.18 309.40 224.17 L 303.19 216.07 C 299.19 210.94 295.28 205.80 291.41 200.60 C 284.61 191.46 277.79 182.08 272.79 171.80 C 270.57 167.55 269.05 162.97 268.27 158.24 C 268.27 158.11 268.04 158.03 267.94 158.01 C 266.78 157.85 266.48 157.35 265.77 156.55 C 264.93 155.73 263.86 155.19 262.70 155.00 C 262.28 154.91 261.83 155.03 261.51 155.32 C 257.35 159.81 251.56 162.76 245.33 161.99 C 239.27 161.24 234.20 157.21 231.33 151.99 C 230.61 150.53 229.79 149.11 228.88 147.76 C 227.83 146.38 226.62 145.14 225.27 144.06 C 222.55 141.93 219.52 140.24 216.27 139.06 C 209.05 136.33 200.77 135.14 193.27 137.27 C 189.84 138.19 186.69 139.94 184.09 142.37 C 181.60 144.91 179.60 147.89 178.20 151.16 C 176.61 154.56 175.45 158.16 173.70 161.50 C 172.14 164.49 170.12 167.20 167.70 169.55 C 163.04 174.17 156.89 176.99 150.35 177.50 C 143.25 177.96 136.42 175.27 130.70 171.22 C 124.76 167.02 119.95 161.44 115.64 155.64 C 110.70 148.99 106.22 142.00 101.58 135.15 C 100.43 133.44 99.15 131.84 98.03 130.15 C 97.72 129.68 96.09 130.23 96.46 130.81 C 97.63 132.60 98.97 134.27 100.16 136.04 L 104.16 141.99 C 106.49 145.44 108.80 148.91 111.16 152.32 C 115.44 158.45 120.06 164.46 125.78 169.32 C 131.09 173.85 137.52 177.45 144.53 178.32 C 150.84 179.06 157.22 177.75 162.73 174.59 C 168.47 171.27 173.06 166.27 175.87 160.27 C 179.15 153.33 181.11 145.17 187.87 140.66 C 195.26 135.76 205.24 136.66 213.27 139.34 C 216.80 140.47 220.12 142.16 223.11 144.34 C 224.55 145.42 225.84 146.68 226.97 148.08 C 228.04 149.59 228.99 151.18 229.81 152.84 C 232.59 157.96 237.47 161.61 243.17 162.84 C 248.83 163.83 254.64 162.44 259.23 158.99 C 260.55 158.02 261.78 156.92 262.89 155.71 L 261.70 156.03 C 262.90 156.27 263.96 156.94 264.70 157.91 C 265.27 158.59 266.09 159.02 266.98 159.09 L 266.65 158.85 C 267.92 168.06 273.04 176.61 277.95 184.30 C 284.75 194.95 292.52 204.97 300.22 214.98 C 302.49 217.98 304.76 220.87 307.02 223.83 C 307.88 225.09 308.88 226.25 310.02 227.27 C 310.89 227.93 311.71 228.64 312.50 229.40 C 312.92 229.81 314.50 229.19 314.07 228.74 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="121" stroke="none" target-height="100.130005" target-width="218.41" target-x="96.09" target-y="129.68"></path><path d="M 192.58 178.81 C 196.78 188.51 206.81 194.23 217.04 195.31 C 228.25 196.50 239.21 191.85 247.90 185.05 C 253.00 181.09 257.47 176.36 261.15 171.05 C 261.59 170.41 259.90 170.55 259.59 171.05 C 253.67 179.84 245.45 186.83 235.83 191.28 C 225.83 195.70 214.24 195.75 204.69 190.01 C 200.09 187.31 196.44 183.24 194.27 178.37 C 194.01 177.79 192.36 178.30 192.58 178.82 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="123" stroke="none" target-height="26.089996" target-width="69.229996" target-x="192.36" target-y="170.41"></path><path d="M 307.58 227.48 C 300.58 220.48 293.95 212.82 287.47 205.25 C 281.16 197.89 275.04 190.36 269.29 182.55 C 266.46 178.69 263.73 174.76 261.15 170.73 C 260.85 170.26 259.22 170.80 259.59 171.39 C 269.77 187.39 282.13 201.96 294.77 215.99 C 298.46 220.09 302.13 224.25 306.02 228.14 C 306.44 228.56 308.02 227.93 307.58 227.48 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="125" stroke="none" target-height="58.300003" target-width="48.799988" target-x="259.22" target-y="170.26"></path><path d="M 202.44 211.22 C 202.44 211.66 204.57 212.60 204.95 212.81 C 206.10 213.41 207.29 213.93 208.51 214.37 C 210.84 215.19 213.25 215.71 215.71 215.92 C 220.75 216.37 225.81 215.44 230.36 213.22 C 231.36 212.71 230.45 212.16 229.70 212.53 C 225.62 214.53 221.08 215.39 216.55 215.00 C 214.26 214.81 212.01 214.33 209.85 213.57 C 208.87 213.23 207.91 212.82 206.98 212.36 C 206.70 212.22 204.13 211.05 204.13 210.79 C 204.13 210.27 202.44 210.59 202.44 211.24 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="127" stroke="none" target-height="6.099991" target-width="28.919998" target-x="202.44" target-y="210.27"></path><path d="M 227.77 194.47 C 231.27 199.97 237.14 203.82 243.28 205.79 L 242.95 205.44 C 242.72 206.55 242.32 207.63 241.78 208.63 C 241.39 209.56 241.44 210.61 241.93 211.49 L 242.25 211.02 C 240.15 212.21 238.92 214.88 237.92 216.95 C 236.72 219.48 235.71 222.11 234.92 224.80 C 232.92 231.42 231.03 238.08 229.36 244.80 C 227.96 250.43 226.72 256.09 225.49 261.80 C 224.74 265.26 223.99 268.72 223.22 272.18 C 222.35 276.07 220.82 280.34 221.29 284.37 C 221.63 286.05 222.22 287.67 223.05 289.17 C 223.41 289.83 223.61 290.55 223.64 291.30 C 223.48 292.44 222.96 293.49 222.14 294.30 C 219.40 297.58 215.39 299.40 212.54 302.58 L 214.10 302.27 C 211.97 299.27 212.91 295.39 214.10 292.22 C 215.44 288.55 217.31 285.09 219.64 281.96 C 220.09 281.35 218.40 281.48 218.08 281.96 C 215.60 285.29 213.64 288.97 212.27 292.88 C 211.14 296.14 210.42 299.97 212.58 302.97 C 212.91 303.43 213.88 302.97 214.14 302.66 C 216.69 299.82 220.23 298.16 222.84 295.39 C 223.91 294.26 225.17 292.90 225.36 291.29 C 225.34 290.04 224.97 288.82 224.30 287.76 C 223.53 286.32 223.07 284.74 222.95 283.11 C 222.99 280.96 223.31 278.82 223.89 276.74 C 224.74 272.95 225.59 269.15 226.41 265.34 C 229.02 253.42 231.71 241.56 235.13 229.84 C 236.05 226.33 237.15 222.86 238.45 219.47 C 239.10 217.88 239.85 216.33 240.70 214.84 C 241.28 213.57 242.18 212.48 243.30 211.65 C 243.43 211.58 243.71 211.35 243.62 211.17 C 243.11 210.26 243.11 209.15 243.62 208.24 C 244.12 207.34 244.45 206.37 244.62 205.36 C 244.62 205.13 244.48 205.06 244.30 205.01 C 238.18 203.15 232.88 199.24 229.30 193.94 C 229.00 193.47 227.36 194.02 227.74 194.60 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="129" stroke="none" target-height="109.95999" target-width="34.199997" target-x="210.42" target-y="193.47"></path><path d="M 219.69 281.74 C 220.80 262.46 223.52 243.32 227.85 224.50 C 228.94 219.89 230.14 215.30 231.44 210.74 C 231.61 210.15 229.92 210.38 229.76 210.96 C 224.87 228.28 221.45 245.98 219.54 263.87 C 218.87 269.87 218.36 275.90 218.01 281.95 C 218.01 282.64 219.66 282.31 219.69 281.74 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="131" stroke="none" target-height="72.49002" target-width="13.600006" target-x="218.01" target-y="210.15"></path><path d="M 122.83 290.00 C 121.40 285.44 119.56 281.00 118.02 276.51 C 116.57 271.87 115.50 267.11 114.81 262.30 C 113.16 252.50 111.79 242.66 110.70 232.78 C 110.64 232.23 108.95 232.60 109.02 233.23 C 110.11 243.11 111.48 252.95 113.13 262.75 C 113.80 267.49 114.85 272.18 116.27 276.75 C 117.81 281.35 119.69 285.83 121.15 290.47 C 121.33 291.05 123.01 290.59 122.83 290.02 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="133" stroke="none" target-height="58.819992" target-width="14.060005" target-x="108.95" target-y="232.23"></path><path d="M 93.92 370.61 C 96.18 362.51 98.63 354.47 101.41 346.54 C 104.26 337.93 107.80 329.57 112.00 321.54 C 113.98 318.07 116.15 314.71 118.49 311.47 C 120.98 307.85 123.38 304.01 126.39 300.80 C 129.40 297.59 129.39 292.21 130.39 288.09 C 131.52 283.52 133.26 279.12 135.55 275.00 C 138.46 269.72 142.06 264.90 144.16 259.19 C 146.16 253.74 146.80 247.70 143.90 242.46 C 143.58 241.89 141.96 242.46 142.21 242.91 C 147.95 253.27 140.31 264.28 135.10 273.01 C 132.75 276.90 130.89 281.05 129.55 285.39 C 128.88 287.66 128.33 289.96 127.90 292.28 C 127.43 294.76 127.09 297.38 125.82 299.62 C 125.33 300.30 124.79 300.94 124.19 301.53 C 123.55 302.28 122.94 303.05 122.34 303.84 C 120.94 305.68 119.61 307.59 118.34 309.50 C 115.98 312.90 113.51 316.25 111.44 319.84 C 107.24 327.47 103.70 335.44 100.88 343.68 C 97.63 352.61 94.88 361.68 92.29 370.85 C 92.12 371.45 93.81 371.21 93.97 370.64 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="135" stroke="none" target-height="129.56001" target-width="55.829994" target-x="92.12" target-y="241.89"></path><path d="M 98.46 243.00 C 96.26 246.55 93.41 249.65 90.05 252.14 C 88.24 253.42 86.24 254.41 84.13 255.08 C 82.81 255.38 81.48 255.61 80.13 255.77 C 77.63 256.17 75.32 256.68 73.46 258.55 C 72.29 259.58 71.90 261.22 72.46 262.67 C 73.35 264.40 74.69 265.85 76.34 266.89 C 78.38 268.33 80.52 269.61 82.76 270.71 C 84.97 271.84 87.23 272.88 89.49 273.90 C 91.03 274.52 92.54 275.23 93.99 276.04 C 97.27 278.21 100.43 280.54 103.46 283.04 C 108.08 286.56 112.68 290.11 117.26 293.70 C 117.73 294.06 119.26 293.40 118.82 293.04 C 111.61 287.41 104.40 281.76 96.99 276.39 C 93.87 274.12 90.18 272.84 86.72 271.19 C 84.40 270.11 82.14 268.91 79.95 267.59 C 78.06 266.53 76.37 265.14 74.95 263.50 C 73.95 262.29 73.48 260.75 74.41 259.37 C 75.84 257.24 78.41 256.94 80.68 256.58 C 82.20 256.42 83.70 256.11 85.16 255.67 C 87.34 254.90 89.42 253.85 91.32 252.53 C 94.78 249.93 97.73 246.69 100.00 243.00 C 100.42 242.36 98.74 242.50 98.43 243.00 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="137" stroke="none" target-height="51.699997" target-width="47.36" target-x="71.9" target-y="242.36"></path><path d="M 98.80 270.75 C 104.35 270.22 109.92 269.39 115.01 267.00 C 115.26 266.88 115.66 266.64 115.46 266.32 C 115.26 266.00 114.57 266.20 114.34 266.32 C 109.53 268.58 104.28 269.32 99.03 269.83 C 98.77 269.83 98.09 270.05 98.03 270.40 C 97.97 270.75 98.48 270.79 98.75 270.76 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="139" stroke="none" target-height="4.7900085" target-width="17.690002" target-x="97.97" target-y="266"></path><path d="M 122.49 289.00 C 113.01 281.15 103.49 273.38 94.28 265.17 C 93.84 264.78 92.28 265.42 92.71 265.83 C 101.89 274.04 111.45 281.83 120.93 289.66 C 121.38 290.04 122.93 289.38 122.49 289.00 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="141" stroke="none" target-height="25.26001" target-width="30.650002" target-x="92.28" target-y="264.78"></path><path d="M 176.40 118.32 C 182.25 116.97 188.53 117.55 193.59 120.96 C 196.16 122.69 198.85 125.31 199.82 128.32 C 200.63 131.35 199.63 134.58 197.26 136.64 C 196.66 137.20 198.05 137.19 198.39 136.87 C 200.68 134.69 202.18 131.49 201.33 128.30 C 200.48 125.11 197.67 122.30 195.02 120.49 C 189.52 116.66 182.61 116.14 176.21 117.61 C 175.35 117.81 175.55 118.51 176.40 118.32 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="143" stroke="none" target-height="21.059998" target-width="26.829987" target-x="175.35" target-y="116.14"></path><path d="M 176.94 118.00 C 180.60 112.12 187.45 109.03 194.28 110.17 C 200.21 111.17 206.88 116.05 206.11 122.78 C 206.05 123.32 207.39 123.06 207.47 122.61 C 207.63 121.71 208.37 121.43 209.21 121.75 C 209.89 122.05 210.39 122.65 210.55 123.38 C 211.02 124.95 210.43 126.69 209.86 128.16 C 208.60 131.38 206.66 134.29 204.18 136.70 C 203.62 137.26 204.95 137.24 205.27 136.93 C 207.06 135.20 208.58 133.22 209.79 131.04 C 210.91 129.04 212.11 126.58 212.07 124.21 C 212.22 122.53 210.99 121.04 209.32 120.86 C 207.99 120.74 206.37 121.32 206.11 122.78 L 207.47 122.61 C 208.34 115.04 200.47 110.00 193.88 109.25 C 186.64 108.49 179.60 111.87 175.67 118.00 C 175.33 118.52 176.67 118.40 176.94 118.00 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="145" stroke="none" target-height="28.769997" target-width="36.89" target-x="175.33" target-y="108.49"></path><path d="M 196.82 116.58 C 203.00 121.29 205.31 129.52 202.49 136.76 C 202.31 137.21 203.72 137.05 203.90 136.58 C 206.77 129.20 204.42 120.81 198.13 116.00 C 197.74 115.70 196.44 116.26 196.82 116.55 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="147" stroke="none" target-height="21.51001" target-width="10.330002" target-x="196.44" target-y="115.7"></path><path d="M 41.63 95.76 L 53.07 101.00 C 56.57 102.60 60.13 104.48 63.97 105.13 C 65.62 105.44 67.32 105.44 68.97 105.13 C 70.83 104.75 72.51 103.82 74.35 103.36 C 78.38 102.52 82.57 102.93 86.35 104.56 C 90.35 106.12 94.35 108.56 96.47 112.45 C 96.77 113.02 98.40 112.45 98.15 112.00 C 94.82 105.76 86.59 102.32 79.81 102.00 C 78.05 101.91 76.29 102.07 74.57 102.45 C 72.57 102.90 70.70 103.99 68.66 104.33 C 64.43 105.04 60.20 102.88 56.46 101.18 L 43.00 95.00 C 42.50 94.77 41.00 95.50 41.66 95.81 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="149" stroke="none" target-height="18.25" target-width="57.4" target-x="41" target-y="94.77"></path><path d="M 97.37 118.62 C 97.37 118.62 97.37 118.73 97.37 118.78 C 97.34 118.83 97.34 118.90 97.37 118.95 C 97.39 119.01 97.44 119.06 97.51 119.08 C 97.59 119.12 97.67 119.14 97.76 119.14 C 97.86 119.15 97.96 119.15 98.06 119.14 L 98.29 119.14 C 98.43 119.10 98.57 119.05 98.70 118.97 L 98.85 118.86 C 98.93 118.80 98.99 118.71 99.02 118.62 C 99.02 118.57 99.02 118.51 99.02 118.46 C 99.05 118.41 99.05 118.34 99.02 118.29 C 99.00 118.23 98.95 118.18 98.88 118.16 C 98.80 118.12 98.72 118.10 98.63 118.10 C 98.53 118.08 98.43 118.08 98.33 118.10 L 98.10 118.10 C 97.96 118.14 97.82 118.20 97.69 118.28 L 97.54 118.39 C 97.46 118.45 97.40 118.53 97.37 118.63 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="151" stroke="none" target-height="1.0699997" target-width="1.7100067" target-x="97.34" target-y="118.08"></path><path d="M 83.50 133.54 C 89.33 134.91 95.45 133.15 99.66 128.89 C 100.35 128.19 98.66 128.21 98.31 128.61 C 94.76 132.31 89.51 133.83 84.53 132.61 C 84.11 132.53 83.67 132.65 83.34 132.93 C 83.10 133.19 83.14 133.43 83.50 133.53 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="153" stroke="none" target-height="6.720001" target-width="17.25" target-x="83.1" target-y="128.19"></path><path d="M 114.47 129.10 C 113.76 127.89 113.33 126.55 112.74 125.29 C 112.22 124.18 111.64 123.11 111.00 122.06 C 109.65 119.82 107.96 117.80 106.00 116.06 C 102.52 113.06 96.90 109.50 92.66 113.30 C 91.94 113.95 93.60 113.95 94.01 113.58 C 96.01 111.79 98.83 112.84 100.83 114.06 C 102.84 115.29 104.68 116.79 106.29 118.51 C 107.78 120.13 109.07 121.93 110.13 123.87 C 111.18 125.78 111.83 127.87 112.94 129.76 C 113.21 130.23 114.85 129.70 114.50 129.10 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="155" stroke="none" target-height="20.729996" target-width="22.909996" target-x="91.94" target-y="109.5"></path><path d="M 111.59 127.74 C 107.56 129.64 102.91 129.77 98.78 128.10 C 95.71 127.03 93.41 124.47 92.66 121.31 C 92.51 120.73 90.82 121.18 90.98 121.76 C 91.87 125.33 94.60 128.15 98.14 129.16 C 102.76 130.80 107.84 130.54 112.26 128.43 C 113.26 127.92 112.35 127.37 111.59 127.74 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="157" stroke="none" target-height="10.07" target-width="22.440002" target-x="90.82" target-y="120.73"></path><path d="M 94.17 119.29 C 95.38 117.80 97.98 119.02 99.36 119.64 C 101.12 120.42 102.82 121.36 104.42 122.44 C 106.05 123.53 107.58 124.75 109.00 126.10 C 110.28 127.34 111.40 129.10 113.07 129.83 C 113.57 130.05 115.07 129.32 114.41 129.02 C 113.37 128.42 112.47 127.62 111.76 126.66 C 110.94 125.79 110.08 124.96 109.18 124.18 C 107.42 122.66 105.51 121.32 103.49 120.18 C 100.56 118.53 95.40 115.85 92.65 119.24 C 92.39 119.56 92.88 119.71 93.11 119.73 C 93.53 119.75 93.94 119.58 94.22 119.27 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="159" stroke="none" target-height="14.200005" target-width="22.68" target-x="92.39" target-y="115.85"></path><path d="M 75.73 108.84 C 76.72 110.70 78.62 111.91 80.73 112.01 C 82.55 112.13 85.18 111.45 85.95 109.58 C 86.08 109.28 85.01 109.58 84.95 109.69 C 83.88 110.68 82.46 111.20 81.00 111.14 C 79.22 111.00 77.60 110.08 76.57 108.63 C 76.45 108.46 75.66 108.72 75.72 108.84 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="161" stroke="none" target-height="3.6699982" target-width="10.419998" target-x="75.66" target-y="108.46"></path><path d="M 133.66 51.54 C 131.96 41.54 128.66 31.94 125.44 22.37 L 125.27 22.73 C 126.59 21.42 127.78 21.27 129.20 22.56 C 130.99 24.19 132.04 26.61 132.93 28.80 C 135.22 34.90 136.82 41.24 137.71 47.70 C 138.91 54.18 138.91 60.82 137.71 67.30 C 135.70 76.70 131.42 85.46 125.24 92.82 C 118.22 101.36 109.26 108.08 99.10 112.43 C 98.02 112.88 99.00 113.43 99.76 113.12 C 118.12 105.35 133.91 89.12 138.84 69.55 C 140.52 62.49 140.76 55.16 139.52 48.00 C 138.52 41.22 137.08 34.27 134.44 27.90 C 133.44 25.54 132.19 22.63 129.92 21.21 C 127.92 19.94 125.51 20.83 123.92 22.41 C 123.84 22.50 123.71 22.64 123.76 22.78 C 127.00 32.39 130.28 42.00 132.00 52.00 C 132.10 52.57 133.79 52.17 133.69 51.55 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="163" stroke="none" target-height="93.49" target-width="42.739998" target-x="98.02" target-y="19.94"></path><path d="M 130.94 24.14 L 130.94 24.26 C 130.93 24.28 130.93 24.31 130.94 24.33 L 130.94 24.39 L 130.94 24.32 L 130.83 24.40 C 130.79 24.42 130.77 24.45 130.75 24.49 C 130.75 24.51 130.75 24.53 130.75 24.55 L 130.75 24.74 C 130.77 24.78 130.81 24.81 130.85 24.81 C 130.92 24.83 131.00 24.83 131.07 24.81 C 131.25 24.80 131.43 24.75 131.59 24.68 C 131.66 24.65 131.73 24.60 131.79 24.55 C 131.82 24.52 131.84 24.48 131.84 24.43 L 131.84 24.24 C 131.83 24.21 131.81 24.19 131.78 24.18 C 131.74 24.17 131.69 24.17 131.65 24.18 L 131.55 24.18 L 131.68 24.18 L 131.68 24.12 C 131.68 24.12 131.68 24.12 131.62 24.06 L 131.62 24.06 L 131.62 24.00 C 131.62 24.00 131.52 24.00 131.51 24.00 C 131.43 23.99 131.36 23.99 131.28 24.00 L 131.06 24.07 C 131.06 24.07 130.98 24.07 130.97 24.15 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="165" stroke="none" target-height="0.84000015" target-width="1.0899963" target-x="130.75" target-y="23.99"></path><path d="M 94.35 37.66 C 94.23 37.66 95.05 38.19 95.07 38.21 C 95.42 38.42 95.77 38.64 96.07 38.87 C 96.82 39.38 97.56 39.92 98.26 40.50 C 99.54 41.54 100.71 42.72 101.75 44.00 C 103.83 46.68 105.38 49.74 106.31 53.00 C 108.19 59.20 108.31 65.80 108.03 72.22 C 107.63 80.81 106.48 89.88 102.89 97.77 C 101.01 101.90 98.07 106.18 93.45 107.42 C 92.45 107.69 92.66 108.54 93.68 108.26 C 102.90 105.79 106.28 94.82 107.97 86.56 C 108.86 82.09 109.42 77.55 109.66 73.00 C 110.02 66.64 109.99 60.10 108.38 53.89 C 107.47 50.12 105.79 46.58 103.44 43.49 C 102.21 41.94 100.79 40.55 99.22 39.35 C 98.48 38.78 97.72 38.24 96.93 37.74 C 96.41 37.41 95.64 36.74 95.00 36.74 C 94.36 36.74 93.21 37.74 94.35 37.74 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="167" stroke="none" target-height="71.8" target-width="17.57" target-x="92.45" target-y="36.74"></path><path d="M 135.54 53.00 C 133.26 51.00 130.54 49.67 128.08 47.88 C 125.82 46.21 123.73 44.32 121.37 42.78 C 119.57 41.60 117.37 40.86 115.37 42.20 C 113.26 43.65 114.37 45.88 115.82 47.34 C 121.34 53.02 132.63 55.04 131.82 64.88 C 131.31 70.79 128.32 76.27 125.98 81.62 L 127.15 81.04 L 127.15 81.04 C 126.51 81.04 125.36 82.04 126.49 82.04 L 126.49 82.04 C 126.96 82.08 127.41 81.85 127.66 81.46 C 129.58 77.06 131.77 72.72 132.92 68.04 C 133.86 64.22 133.92 60.32 131.36 57.12 C 129.05 54.24 125.60 52.46 122.50 50.56 C 120.94 49.66 119.47 48.60 118.11 47.41 C 117.14 46.65 116.41 45.63 116.00 44.47 C 115.73 43.67 116.13 42.79 116.91 42.47 C 117.61 42.36 118.32 42.51 118.91 42.89 C 121.68 44.37 123.99 46.67 126.51 48.53 C 129.03 50.39 131.69 51.65 133.97 53.65 C 134.41 54.04 135.97 53.39 135.53 52.99 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="169" stroke="none" target-height="41.22" target-width="22.71" target-x="113.26" target-y="40.86"></path><path d="M 123.41 87.40 C 123.28 84.97 122.79 82.58 121.94 80.30 C 121.22 78.36 119.94 75.95 121.31 74.00 C 121.45 73.80 121.92 73.15 122.25 73.21 C 122.58 73.27 122.75 73.83 122.87 74.02 C 123.35 74.82 123.75 75.66 124.09 76.53 C 124.77 78.23 125.28 79.99 125.95 81.69 C 126.17 82.28 127.84 81.78 127.63 81.24 C 126.82 79.17 126.23 77.01 125.30 74.98 C 124.97 74.03 124.44 73.15 123.74 72.42 C 122.97 71.84 121.45 72.42 120.74 72.93 C 118.53 74.44 118.84 77.10 119.66 79.30 C 120.76 82.03 121.44 84.91 121.66 87.85 C 121.66 88.39 123.38 88.05 123.34 87.40 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="171" stroke="none" target-height="16.550003" target-width="9.309998" target-x="118.53" target-y="71.84"></path><path d="M 94.34 108.76 C 100.16 106.96 105.64 104.23 110.57 100.66 C 115.42 96.94 119.72 92.57 123.36 87.66 C 123.81 87.08 122.13 87.20 121.79 87.66 C 118.37 92.31 114.33 96.47 109.79 100.04 C 105.05 103.54 99.76 106.22 94.14 107.97 C 93.14 108.28 93.36 109.13 94.37 108.81 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="173" stroke="none" target-height="22.049995" target-width="30.669998" target-x="93.14" target-y="87.08"></path><path d="M 95.00 36.70 C 93.34 36.70 91.00 38.08 91.00 39.90 C 91.00 41.72 93.10 43.48 94.41 44.64 C 96.22 46.22 97.77 48.09 99.00 50.16 C 100.55 52.78 101.75 55.60 102.56 58.54 C 102.72 59.13 104.40 58.68 104.24 58.09 C 103.03 53.70 100.92 48.85 97.68 45.55 C 96.41 44.25 94.90 43.20 93.68 41.80 C 93.10 41.22 92.73 40.46 92.62 39.64 C 92.62 39.12 92.84 38.63 93.22 38.28 C 93.48 38.06 93.78 37.88 94.10 37.77 C 94.37 37.66 95.19 37.66 94.29 37.66 C 94.61 37.66 95.29 37.55 95.40 37.20 C 95.51 36.85 95.29 36.70 94.95 36.70 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="175" stroke="none" target-height="22.43" target-width="13.400002" target-x="91" target-y="36.7"></path><path d="M 104.09 57.91 C 101.48 56.41 98.84 54.91 96.09 53.69 C 94.71 53.03 93.28 52.48 91.81 52.07 C 90.71 51.72 89.53 51.72 88.43 52.07 C 87.38 52.44 86.67 53.42 86.65 54.53 C 86.91 55.65 87.57 56.64 88.50 57.32 C 90.59 58.95 92.85 60.36 95.23 61.53 C 97.06 62.49 98.78 63.65 100.35 65.00 C 100.87 65.47 101.34 66.00 101.76 66.57 C 101.99 66.89 102.59 67.57 102.59 68.02 C 102.59 68.47 104.27 68.22 104.27 67.57 C 104.27 67.24 103.83 66.68 103.66 66.41 C 103.38 65.97 103.07 65.55 102.72 65.16 C 101.78 64.16 100.73 63.27 99.58 62.52 C 97.21 60.90 94.58 59.72 92.18 58.17 C 90.95 57.38 87.34 55.11 88.57 53.17 C 88.72 52.98 88.88 52.82 89.07 52.67 C 89.07 52.67 89.07 52.67 89.07 52.67 C 89.07 52.67 89.07 52.67 89.17 52.67 C 89.60 52.69 90.03 52.75 90.45 52.84 C 91.79 53.19 93.09 53.66 94.34 54.25 C 97.22 55.57 100.02 57.05 102.75 58.66 C 103.22 58.94 104.75 58.25 104.09 57.85 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="177" stroke="none" target-height="16.75" target-width="18.099998" target-x="86.65" target-y="51.72"></path><path d="M 102.59 68.00 C 102.59 71.45 102.31 74.94 102.02 78.37 C 101.96 79.05 103.66 78.73 103.70 78.16 C 104.00 74.65 104.27 71.08 104.27 67.55 C 104.27 67.03 102.59 67.35 102.59 68.00 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="179" stroke="none" target-height="12.020004" target-width="2.3099976" target-x="101.96" target-y="67.03"></path><path d="M 91.84 106.26 C 98.23 100.91 101.60 92.88 102.93 84.81 C 103.03 84.17 101.34 84.45 101.24 85.03 C 99.95 92.90 96.73 100.76 90.49 106.03 C 90.18 106.29 90.36 106.51 90.65 106.63 C 91.07 106.71 91.51 106.59 91.84 106.31 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="181" stroke="none" target-height="22.54" target-width="12.849998" target-x="90.18" target-y="84.17"></path><path d="M 103.64 78.00 C 103.03 77.30 102.41 76.62 101.77 76.00 C 101.13 75.38 100.62 74.72 99.97 74.16 C 98.92 73.14 97.29 73.00 96.08 73.82 C 93.26 75.70 95.27 79.12 97.08 80.97 C 98.55 82.52 100.08 84.03 101.57 85.56 C 101.98 85.98 103.57 85.36 103.13 84.90 L 98.90 80.57 C 97.71 79.50 96.86 78.11 96.44 76.57 C 96.28 75.93 96.41 75.25 96.78 74.70 C 96.94 74.50 97.14 74.34 97.36 74.21 C 97.70 74.27 98.02 74.42 98.27 74.66 C 98.88 75.18 99.46 75.75 100.00 76.35 C 100.70 77.10 101.39 77.85 102.07 78.62 C 102.45 79.05 104.07 78.45 103.63 77.96 Z" fill="#a35600" fill-rule="nonzero" group-id="1,3,5" node-id="183" stroke="none" target-height="12.980003" target-width="10.809998" target-x="93.26" target-y="73"></path></g></g><path d="M 270.00 140.00 C 270.00 211.80 211.80 270.00 140.00 270.00 C 68.20 270.00 10.00 211.80 10.00 140.00 C 10.00 68.20 68.20 10.00 140.00 10.00 C 211.80 10.00 270.00 68.20 270.00 140.00 Z" fill="none" node-id="188" stroke="#ef9100" stroke-linecap="butt" stroke-width="4" target-height="260" target-width="260" target-x="10" target-y="10"></path><path d="M -150.04 140.00 C -150.04 211.80 -208.24 270.00 -280.04 270.00 C -351.84 270.00 -410.04 211.80 -410.04 140.00 C -410.04 68.20 -351.84 10.00 -280.04 10.00 C -208.24 10.00 -150.04 68.20 -150.04 140.00 Z" fill="#ffffff" fill-rule="nonzero" node-id="190" stroke="none" target-height="260" target-width="260" target-x="-410.04" target-y="10"></path><g clip-path="url(#clip-path-2)" group-id="2" id="å‰ä»–飛天" node-id="63"><path d="M 39.35 200.51 L 39.35 200.51 C 22.10 205.58 4.14 207.77 -13.82 207.00 C 14.09 200.28 40.95 186.00 65.63 173.22 C 73.75 169.02 81.93 164.61 90.90 162.83 C 100.07 161.01 113.21 161.21 120.37 167.83 C 116.64 167.21 112.85 167.10 109.09 167.51 C 100.72 168.51 92.01 174.44 85.09 179.10 C 74.40 186.31 62.89 192.22 50.80 196.71 C 47.03 198.11 43.22 199.38 39.35 200.51 Z" fill="#677a8c" fill-rule="nonzero" group-id="2,4,6" node-id="196" stroke="none" target-height="46.76001" target-width="134.19" target-x="-13.82" target-y="161.01"></path><path d="M -215.18 221.28 C -215.56 219.92 -215.95 218.57 -216.33 217.21 C -216.79 215.62 -217.23 214.01 -217.69 212.42 C -218.61 208.90 -219.74 205.44 -221.09 202.06 C -220.79 201.50 -220.52 200.93 -220.27 200.35 C -217.80 195.11 -216.85 189.28 -217.53 183.53 C -218.15 178.95 -220.26 174.69 -223.53 171.42 C -196.75 173.78 -170.51 180.31 -145.75 190.79 C -132.28 196.47 -119.32 203.28 -107.00 211.15 C -101.38 214.75 -95.93 218.66 -90.38 222.35 C -84.32 226.40 -78.91 226.89 -71.77 227.98 C -64.58 229.08 -57.81 232.05 -52.14 236.60 C -44.45 242.76 -39.60 251.66 -33.43 259.33 C -23.77 271.33 -7.72 280.23 -5.73 297.04 C -4.73 305.60 -7.85 313.24 -3.86 321.56 C -1.54 326.36 2.23 330.41 4.19 335.37 C 7.34 343.37 5.29 352.45 2.13 360.45 C -1.03 368.45 -5.27 376.16 -6.58 384.65 C -6.82 386.19 -6.93 387.74 -6.93 389.29 C -11.02 383.29 -14.18 376.85 -15.08 369.70 C -15.73 364.47 -15.13 359.12 -16.14 353.95 C -17.12 349.91 -18.59 346.00 -20.51 342.31 C -31.34 319.36 -39.74 295.76 -62.12 281.53 C -75.34 273.13 -90.46 268.29 -105.38 263.53 C -118.56 259.34 -132.65 252.97 -146.28 250.99 C -153.37 249.99 -160.11 247.62 -164.53 242.67 C -165.72 242.84 -166.92 242.98 -168.12 243.08 C -170.94 243.33 -173.78 243.37 -176.61 243.17 C -181.38 242.79 -186.08 241.74 -190.56 240.05 L -190.91 239.92 C -192.54 239.32 -194.14 238.64 -195.73 237.92 C -197.65 237.02 -199.51 236.04 -201.35 234.99 L -201.35 234.99 C -202.59 234.28 -203.81 233.55 -205.01 232.78 C -207.35 231.31 -210.42 229.52 -213.42 227.43 Z" fill="#af5459" fill-rule="nonzero" group-id="2,4,6" node-id="198" stroke="none" target-height="217.87001" target-width="230.87" target-x="-223.53" target-y="171.42"></path><path d="M -223.87 171.94 C -198.31 174.19 -173.23 180.26 -149.46 189.94 C -137.81 194.69 -126.53 200.28 -115.69 206.67 C -110.13 209.95 -104.69 213.47 -99.40 217.12 C -94.57 220.43 -89.83 224.28 -84.19 226.12 C -78.98 227.82 -73.46 227.93 -68.19 229.30 C -62.38 230.82 -56.98 233.60 -52.37 237.45 C -43.94 244.52 -39.05 254.67 -31.69 262.69 C -25.39 269.56 -17.80 275.30 -12.39 282.97 C -9.61 286.79 -7.73 291.18 -6.87 295.83 C -5.87 301.55 -7.09 307.26 -6.87 312.99 C -6.79 316.03 -6.08 319.01 -4.81 321.77 C -3.53 324.25 -2.08 326.63 -0.47 328.91 C 1.27 331.35 2.67 334.01 3.69 336.83 C 4.60 339.74 4.96 342.79 4.77 345.83 C 4.11 358.39 -3.62 368.89 -6.70 380.83 C -7.38 383.66 -7.78 386.54 -7.87 389.45 C -7.87 390.20 -6.07 389.83 -6.04 389.22 C -5.94 386.17 -5.50 383.13 -4.75 380.17 C -3.89 377.13 -2.84 374.14 -1.59 371.24 C 0.80 365.50 3.56 359.93 5.20 354.00 C 6.76 348.31 7.39 342.12 5.55 336.42 C 3.71 330.72 -0.71 326.35 -3.16 320.92 C -5.73 315.22 -4.91 309.18 -4.66 303.14 C -4.32 298.03 -5.21 292.92 -7.25 288.23 C -11.17 279.63 -18.56 273.34 -25.25 266.90 C -28.75 263.53 -31.97 259.89 -34.88 256.00 C -38.33 251.38 -41.48 246.54 -45.25 242.17 C -48.95 237.80 -53.47 234.19 -58.55 231.55 C -63.76 228.91 -69.20 227.80 -74.92 226.93 C -77.56 226.58 -80.16 226.03 -82.71 225.27 C -85.39 224.38 -87.94 223.12 -90.26 221.51 C -95.74 217.84 -101.11 214.00 -106.68 210.45 C -117.43 203.61 -128.66 197.57 -140.30 192.38 C -163.77 181.91 -188.66 174.99 -214.16 171.84 C -217.15 171.48 -220.15 171.17 -223.16 170.90 C -223.87 170.84 -225.11 171.83 -223.88 171.90 Z" fill="#804f13" fill-rule="nonzero" group-id="2,4,7" node-id="202" stroke="none" target-height="219.36002" target-width="232.5" target-x="-225.11" target-y="170.84"></path><path d="M 120.93 167.30 C 113.59 166.24 106.63 166.73 99.81 169.76 C 92.99 172.79 87.20 177.17 81.00 181.12 C 74.35 185.37 67.40 189.12 60.20 192.34 C 53.22 195.56 46.00 198.24 38.61 200.34 C 7.27 208.80 -27.57 209.52 -58.17 197.28 C -72.45 191.56 -85.11 182.70 -96.48 172.43 C -102.11 167.36 -107.47 162.01 -112.54 156.38 C -117.85 150.48 -122.88 144.32 -128.54 138.71 C -133.39 133.70 -138.93 129.42 -145.00 126.00 C -151.33 122.67 -158.09 120.21 -165.08 118.70 C -172.05 117.09 -179.21 116.40 -186.36 116.63 C -189.75 116.67 -193.12 117.05 -196.43 117.76 C -199.28 118.58 -201.94 119.94 -204.28 121.76 C -210.71 126.19 -217.60 129.92 -224.83 132.87 C -232.41 136.11 -240.18 139.29 -248.58 139.01 C -252.40 139.02 -256.16 138.14 -259.58 136.44 C -262.09 134.94 -264.16 132.80 -265.58 130.24 C -268.48 125.35 -268.91 118.78 -268.58 113.24 C -268.47 110.74 -267.97 108.27 -267.08 105.93 C -266.84 105.35 -268.66 105.55 -268.91 106.16 C -270.96 111.16 -270.82 117.16 -270.07 122.38 C -269.32 127.60 -267.22 132.86 -262.86 136.17 C -257.80 140.00 -250.39 140.49 -244.30 139.86 C -236.52 139.05 -229.23 135.86 -222.14 132.74 C -215.31 129.82 -208.79 126.22 -202.67 122.00 C -199.73 119.87 -196.28 118.55 -192.67 118.17 C -188.85 117.72 -185.01 117.57 -181.17 117.74 C -166.11 118.36 -150.44 122.93 -138.41 132.20 C -126.00 141.69 -117.00 154.82 -106.00 165.76 C -95.51 176.19 -84.00 185.81 -71.00 192.88 C -42.89 208.09 -8.38 210.62 22.66 204.93 C 37.69 202.19 52.27 197.41 66.00 190.71 C 73.00 187.28 79.75 183.37 86.20 179.00 C 92.45 174.78 99.01 170.23 106.44 168.45 C 110.85 167.56 115.38 167.51 119.81 168.29 C 120.39 168.38 121.96 167.45 120.93 167.29 Z" fill="#804f13" fill-rule="nonzero" group-id="2,4,7" node-id="204" stroke="none" target-height="105.27" target-width="392.91998" target-x="-270.96" target-y="105.35"></path><path d="M 121.17 167.46 C 116.17 162.97 109.24 161.53 102.70 161.34 C 95.25 161.19 87.84 162.55 80.93 165.34 C 72.64 168.59 64.82 173.08 56.93 177.16 C 48.61 181.46 40.26 185.71 31.78 189.68 C 14.78 197.68 -3.01 204.68 -21.60 208.18 C -39.92 211.58 -59.89 211.62 -77.45 204.70 C -91.89 198.96 -104.25 188.99 -112.93 176.11 C -117.93 168.71 -120.80 160.64 -122.93 152.02 C -124.93 143.84 -126.36 135.46 -129.62 127.66 C -132.51 120.39 -137.45 114.12 -143.83 109.59 C -149.91 105.43 -156.97 102.91 -164.31 102.28 C -171.70 101.64 -179.13 102.89 -185.90 105.92 C -192.40 108.82 -198.09 113.19 -203.34 117.92 C -216.20 129.58 -227.60 144.30 -245.62 147.69 C -253.73 149.22 -265.23 149.40 -271.46 143.06 C -277.13 137.28 -277.58 127.06 -276.12 119.59 C -275.34 115.38 -273.63 111.40 -271.12 107.94 C -270.66 107.32 -272.39 107.45 -272.73 107.94 C -277.50 114.40 -279.15 122.74 -278.30 130.65 C -278.03 134.42 -276.90 138.08 -274.99 141.34 C -272.84 144.55 -269.61 146.89 -265.89 147.94 C -258.22 150.39 -249.35 149.85 -241.67 147.71 C -233.53 145.45 -226.57 140.96 -220.21 135.50 C -208.40 125.36 -198.47 111.88 -183.61 105.95 C -168.18 99.78 -149.35 103.95 -138.37 116.56 C -126.58 130.11 -127.16 149.30 -120.78 165.29 C -115.16 179.36 -103.96 191.35 -91.22 199.29 C -60.33 218.58 -20.99 211.83 11.14 199.51 C 28.34 192.91 44.76 184.51 61.14 176.02 C 69.45 171.71 77.76 166.87 86.80 164.24 C 94.26 161.96 102.17 161.61 109.80 163.24 C 113.41 164.01 116.78 165.67 119.58 168.08 C 120.03 168.49 121.65 167.83 121.18 167.41 Z" fill="#6b3b00" fill-rule="nonzero" group-id="2,4,7" node-id="206" stroke="none" target-height="118.8" target-width="400.8" target-x="-279.15" target-y="99.78"></path><path d="M 42.62 199.26 C 55.83 191.00 68.53 181.92 82.10 174.26 C 86.24 171.92 90.45 169.71 94.73 167.64 C 95.88 167.08 94.83 166.49 94.01 166.88 C 79.78 173.75 66.64 182.37 53.45 191.00 C 49.45 193.60 45.45 196.18 41.45 198.69 C 40.40 199.35 41.99 199.61 42.58 199.24 Z" fill="#faffb9" fill-rule="nonzero" group-id="2,4,7" node-id="208" stroke="none" target-height="33.119995" target-width="55.479996" target-x="40.4" target-y="166.49"></path></g><path d="M -150.04 140.00 C -150.04 211.80 -208.24 270.00 -280.04 270.00 C -351.84 270.00 -410.04 211.80 -410.04 140.00 C -410.04 68.20 -351.84 10.00 -280.04 10.00 C -208.24 10.00 -150.04 68.20 -150.04 140.00 Z" fill="none" node-id="213" stroke="#ef9100" stroke-linecap="butt" stroke-width="4" target-height="260" target-width="260" target-x="-410.04" target-y="10"></path></svg> \ No newline at end of file diff --git a/src/modules/login/router.ts b/src/modules/login/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..3493821f17bce34116778c080ca2c556e7c5aea3 --- /dev/null +++ b/src/modules/login/router.ts @@ -0,0 +1,16 @@ +import { RouteRecordRaw } from 'vue-router'; + +const routes: RouteRecordRaw[] = [ + { + path: '/login', + name: 'LOGIN', + component: () => import('./LoginPage.vue'), + meta: { + title: 'Login', + permission: ['*'], + keepalive: false, + }, + }, +]; + +export default routes; diff --git a/src/modules/pinia-example/PiniaExample.vue b/src/modules/pinia-example/PiniaExample.vue new file mode 100644 index 0000000000000000000000000000000000000000..9e6b3785f6ba04e531ed4c652058026c8b817aab --- /dev/null +++ b/src/modules/pinia-example/PiniaExample.vue @@ -0,0 +1,32 @@ +<!-- + * @FileDescription: Pinia example + * @Date: 2023-10-08 + * @LastEditTime: 2023-10-08 +--> +<script setup lang="ts"> +import { useCounterStore } from './stores/counter'; + +const counter = useCounterStore(); +counter.count++; +counter.$patch({ + count: counter.count + 1, +}) + +// // 或使用 action 代替 +// counter.increment(); +</script> +<template> + <div> + <div class="q-pa-md"> + <a href="https://pinia.vuejs.org/zh/introduction.html" target="_blank">Pinia文档</a> + </div> + <div class="q-pa-md"> + <button>使用</button> + <button>{{ counter.count }}</button> + <button>{{ counter.doubleCount }}</button> + <button>{{ counter.doublePlusOne }}</button> + </div> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/pinia-example/router.ts b/src/modules/pinia-example/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..941866595560021b049c350f9b32c72f0120c8e0 --- /dev/null +++ b/src/modules/pinia-example/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'pinia-example', + name: 'PiniaExample', + component: () => import('./PiniaExample.vue'), + meta: { + title: 'Pinia example', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/pinia-example/stores/counter.ts b/src/modules/pinia-example/stores/counter.ts new file mode 100644 index 0000000000000000000000000000000000000000..2404fd2731edd4b8827d911f2aa71ccbd0905e55 --- /dev/null +++ b/src/modules/pinia-example/stores/counter.ts @@ -0,0 +1,22 @@ +import { defineStore } from 'pinia'; + +export const useCounterStore = defineStore('counter', { + state: () => { + return { count: 1 }; + }, + // 也å¯ä»¥è¿™æ ·å®šä¹‰ + // state: () => ({ count: 0 }) + getters: { + doubleCount(state) { + return state.count * 2; + }, + doublePlusOne(): number { + return this.doubleCount + 1; + }, + }, + actions: { + increment() { + this.count++; + }, + }, +}); diff --git a/src/modules/some-css/SomeCss.vue b/src/modules/some-css/SomeCss.vue new file mode 100644 index 0000000000000000000000000000000000000000..0325e5be0adf3a7324218f4d3f0f6467048cb97c --- /dev/null +++ b/src/modules/some-css/SomeCss.vue @@ -0,0 +1,77 @@ +<!-- + * @FileDescription: some css + * @Date: 2023-10-09 + * @LastEditTime: 2023-10-09 +--> +<script setup lang="ts"> +// import { reactive } from 'vue'; +</script> +<template> + <div class="q-pa-md"> + <div class="q-gutter-sm"> + <q-card style="width:400px;height:500px;"> + <q-card-section class="fit"> + <div class="box1"> + <div class="box1-inner"> + <div class="box1-container"> + <div v-for="i in 30" :key="i">{{ i }}</div> + </div> + <div class="btn-box"> + <div class="fit row"> + <q-btn class="col-3 btn1" flat color="red-6" label="退出" /> + <q-btn class="col-9" flat color="blue" label="æäº¤" /> + </div> + </div> + </div> + </div> + </q-card-section> + </q-card> + </div> + </div> +</template> + +<style lang="scss" scoped> +.box1 { + width: 100%; + height: 100%; + position: relative; + border: 1px solid $border-color; + overflow: hidden; + + .box1-inner { + overflow: auto; + width: 100%; + height: 100%; + padding-bottom: 58px; + } + + .btn-box { + position: absolute; + width: 100%; + height: 50px; + bottom: 0; + overflow: hidden; + background-color: #fff; + border-top-right-radius: 12px; + border-top-left-radius: 12px; + /* x åç§»é‡ | y åç§»é‡ | 阴影模糊åŠå¾„ | 阴影扩散åŠå¾„ | 阴影颜色 */ + box-shadow: 0px -3px 11px 0px rgba(0, 0, 0, 0.24); + // box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.2), 0 0px 10px rgba(0, 0, 0, 0.24); + + + .btn1 { + position: relative; + + &::after { + position: absolute; + content: ''; + height: 32px; + width: 1px; + background-color: $border-color; + right: -1px; + top: 10px; + } + } + } +} +</style> diff --git a/src/modules/some-css/router.ts b/src/modules/some-css/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..3e65aceef5f9db26bafb92d1e4d987be1fe924f3 --- /dev/null +++ b/src/modules/some-css/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'some-css', + name: 'SomeCss', + component: () => import('./SomeCss.vue'), + meta: { + title: '一些css', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/state-mgt/StateMgt.vue b/src/modules/state-mgt/StateMgt.vue new file mode 100644 index 0000000000000000000000000000000000000000..82db956fe3c0ee3fe9c80f5d93549c224ee5e8ed --- /dev/null +++ b/src/modules/state-mgt/StateMgt.vue @@ -0,0 +1,44 @@ +<!-- + * @FileDescription: 状æ€ç®¡ç† + * @Date: 2023-10-08 + * @LastEditTime: 2023-10-08 +--> +<script setup lang="ts"> +import { ref } from 'vue'; + +import Tab1Page from './tabs/Tab1Page.vue'; +import Tab2Page from './tabs/Tab2Page.vue'; +import Tab3Page from './tabs/Tab3Page.vue'; + +const tab = ref('tab1'); +</script> +<template> + <div class="fit overflow-hidden column no-wrap"> + <div> + <q-tabs v-model="tab" dense class="text-grey" active-color="primary" indicator-color="primary" align="left" + narrow-indicator> + <q-tab name="tab1" label="Tab1" /> + <q-tab name="tab2" label="Tab2" /> + <q-tab name="tab3" label="Tab3" /> + </q-tabs> + <q-separator /> + </div> + <div class="flex-1 overflow-auto"> + <q-tab-panels v-model="tab" animated keep-alive> + <q-tab-panel name="tab1"> + <Tab1Page /> + </q-tab-panel> + + <q-tab-panel name="tab2"> + <Tab2Page /> + </q-tab-panel> + + <q-tab-panel name="tab3"> + <Tab3Page /> + </q-tab-panel> + </q-tab-panels> + </div> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/state-mgt/elements/AgGridTable.vue b/src/modules/state-mgt/elements/AgGridTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..6b6f109c65b61918f21e0ed041b2837bca6feac4 --- /dev/null +++ b/src/modules/state-mgt/elements/AgGridTable.vue @@ -0,0 +1,79 @@ +<script setup lang="ts"> +import { ref, reactive, watch } from 'vue'; +import { useStore } from '../store'; +import { AgGridVue } from 'ag-grid-vue3'; +import type { GridOptions, GridApi } from 'ag-grid-community'; + +const store = useStore(); + +const isGridReady = ref(false); +const gridApi = ref<GridApi>(); +// Ag Grid +const gridOptions: GridOptions<any> = reactive({ + suppressContextMenu: true, // 阻æ¢â€œå³é”®å•击â€ä¸Šä¸‹æ–‡èœå• + suppressCellFocus: true, // 阻æ¢å•å…ƒæ ¼èšç„¦ï¼Œè¿™æ„味ç€é”®ç›˜å¯¼èˆªå°†å¯¹ç½‘æ ¼å•å…ƒæ ¼ç¦ç”¨ + defaultColDef: { + suppressMenu: true, // é˜»æ¢æ¤åˆ—æ ‡å¤´èœå•显示 + }, + columnDefs: [ + { + headerName: 'åºå·', + maxWidth: 80, + valueFormatter: (params: any) => { + return params.node?.rowIndex + 1; + }, + }, + + { headerName: 'Dessert (100g serving)', field: 'name' }, + { headerName: 'Calories', field: 'calories' }, + { headerName: 'Fat (g)', field: 'fat' }, + { headerName: 'Carbs (g)', field: 'carbs' }, + { headerName: 'Protein (g)', field: 'protein' }, + { headerName: 'Sodium (mg)', field: 'sodium' }, + { headerName: 'Calcium (%)', field: 'calcium' }, + { headerName: 'Iron (%)', field: 'iron' }, + ], + rowData: [], + onGridReady: (params) => { + isGridReady.value = true; + gridApi.value = params.api; + } + +}); + +watch( + () => store.rows, + () => { + doSetMyRows(); + }, + { + immediate: true, + deep: true + } +) + +function doSetMyRows() { + if (isGridReady.value) { + setMyRows(); + } else { + setTimeout(() => { + doSetMyRows(); + }, 500); + } +} +function setMyRows() { + console.log('å˜äº†'); + gridApi.value?.setRowData(store.rows) +} +</script> +<template> + <div> + + <div style="height:500px;width:100%"> + <ag-grid-vue class="ag-theme-material fit" :grid-options="gridOptions"> + </ag-grid-vue> + </div> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/state-mgt/elements/TablePage1.vue b/src/modules/state-mgt/elements/TablePage1.vue new file mode 100644 index 0000000000000000000000000000000000000000..b9b32a3263d99a2359b1379415e84971cc5c8a4e --- /dev/null +++ b/src/modules/state-mgt/elements/TablePage1.vue @@ -0,0 +1,159 @@ +<script setup lang="ts"> +import { reactive, onMounted } from 'vue'; +import { useStore } from '../store'; +import { getRandomInt } from 'src/common/utils'; + +const store = useStore(); + +const state = reactive({ + columns: [ + { + name: 'name', + required: true, + label: 'Dessert (100g serving)', + align: 'left', + field: 'name', + }, + { name: 'calories', align: 'center', label: 'Calories', field: 'calories', sortable: true }, + { name: 'fat', label: 'Fat (g)', field: 'fat', sortable: true }, + { name: 'carbs', label: 'Carbs (g)', field: 'carbs' }, + { name: 'protein', label: 'Protein (g)', field: 'protein' }, + { name: 'sodium', label: 'Sodium (mg)', field: 'sodium' }, + { name: 'calcium', label: 'Calcium (%)', field: 'calcium', }, + { name: 'iron', label: 'Iron (%)', field: 'iron', } + ] as any[], +}) + +onMounted(() => { + const rows = [ + { + name: 'Frozen Yogurt', + calories: 159, + fat: 6.0, + carbs: 24, + protein: 4.0, + sodium: 87, + calcium: '14%', + iron: '1%' + }, + { + name: 'Ice cream sandwich', + calories: 237, + fat: 9.0, + carbs: 37, + protein: 4.3, + sodium: 129, + calcium: '8%', + iron: '1%' + }, + { + name: 'Eclair', + calories: 262, + fat: 16.0, + carbs: 23, + protein: 6.0, + sodium: 337, + calcium: '6%', + iron: '7%' + }, + { + name: 'Cupcake', + calories: 305, + fat: 3.7, + carbs: 67, + protein: 4.3, + sodium: 413, + calcium: '3%', + iron: '8%' + }, + { + name: 'Gingerbread', + calories: 356, + fat: 16.0, + carbs: 49, + protein: 3.9, + sodium: 327, + calcium: '7%', + iron: '16%' + }, + { + name: 'Jelly bean', + calories: 375, + fat: 0.0, + carbs: 94, + protein: 0.0, + sodium: 50, + calcium: '0%', + iron: '0%' + }, + { + name: 'Lollipop', + calories: 392, + fat: 0.2, + carbs: 98, + protein: 0, + sodium: 38, + calcium: '0%', + iron: '2%' + }, + { + name: 'Honeycomb', + calories: 408, + fat: 3.2, + carbs: 87, + protein: 6.5, + sodium: 562, + calcium: '0%', + iron: '45%' + }, + { + name: 'Donut', + calories: 452, + fat: 25.0, + carbs: 51, + protein: 4.9, + sodium: 326, + calcium: '2%', + iron: '22%' + }, + { + name: 'KitKat', + calories: 518, + fat: 26.0, + carbs: 65, + protein: 7, + sodium: 54, + calcium: '12%', + iron: '6%' + } + ]; + store.setRows(rows); +}) + +function addRow() { + const length = store.rows.length; + const item = { + name: `Row ${length + 1}`, + calories: getRandomInt(0, 500), + fat: getRandomInt(0, 500), + carbs: getRandomInt(0, 500), + protein: getRandomInt(0, 500), + sodium: getRandomInt(0, 500), + calcium: `${getRandomInt(0, 100)}%`, + iron: `${getRandomInt(0, 100)}%` + }; + store.addOne(item); +} +</script> +<template> + <div> + <div class="q-gutter-sm q-mb-sm"> + <q-btn label="æ·»åŠ è¡Œ" color="primary" @click="addRow" /> + </div> + <q-table title="Treats" :rows="store.rows" :columns="state.columns" row-key="name" :pagination="{ + rowsPerPage: 0 + }" /> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/state-mgt/router.ts b/src/modules/state-mgt/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..b88fcbfec9d672579ddaaf588465047bcd4f0607 --- /dev/null +++ b/src/modules/state-mgt/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'state-mgt', + name: 'StateMgt', + component: () => import('./StateMgt.vue'), + meta: { + title: '状æ€ç®¡ç†', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/state-mgt/store.ts b/src/modules/state-mgt/store.ts new file mode 100644 index 0000000000000000000000000000000000000000..5fcc5a50876f38c0d12478615e814bc6e9145066 --- /dev/null +++ b/src/modules/state-mgt/store.ts @@ -0,0 +1,18 @@ +import { defineStore } from 'pinia'; + +export const useStore = defineStore('state-mgt-store', { + state: () => { + return { rows: [] as any[] }; + }, + // 也å¯ä»¥è¿™æ ·å®šä¹‰ + // state: () => ({ count: 0 }) + getters: {}, + actions: { + setRows(data: any[]) { + this.rows = data; + }, + addOne(data: any) { + this.rows.push(data); + }, + }, +}); diff --git a/src/modules/state-mgt/tabs/Tab1Page.vue b/src/modules/state-mgt/tabs/Tab1Page.vue new file mode 100644 index 0000000000000000000000000000000000000000..3a2692c2973e7e2cde74adf0bc4c4e420723f4f3 --- /dev/null +++ b/src/modules/state-mgt/tabs/Tab1Page.vue @@ -0,0 +1,12 @@ +<script setup lang="ts"> +// import { reactive } from 'vue'; +import TablePage1 from '../elements/TablePage1.vue'; + +</script> +<template> + <div> + <TablePage1 /> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/state-mgt/tabs/Tab2Page.vue b/src/modules/state-mgt/tabs/Tab2Page.vue new file mode 100644 index 0000000000000000000000000000000000000000..43a4798a507b96419025e69a2aa4217e772fd0a3 --- /dev/null +++ b/src/modules/state-mgt/tabs/Tab2Page.vue @@ -0,0 +1,11 @@ +<script setup lang="ts"> +// import { reactive } from 'vue'; +import AgGridTable from '../elements/AgGridTable.vue'; +</script> +<template> + <div> + <AgGridTable /> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/state-mgt/tabs/Tab3Page.vue b/src/modules/state-mgt/tabs/Tab3Page.vue new file mode 100644 index 0000000000000000000000000000000000000000..2493a9e7432beef5e47022b846e22426ee096485 --- /dev/null +++ b/src/modules/state-mgt/tabs/Tab3Page.vue @@ -0,0 +1,11 @@ +<script setup lang="ts"> +// import { reactive } from 'vue'; +</script> +<template> + <div> + <div class="text-h6">Tab3</div> + Lorem ipsum dolor sit amet consectetur adipisicing elit. + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/test/TestPage.vue b/src/modules/test/TestPage.vue new file mode 100644 index 0000000000000000000000000000000000000000..87485b530e593db497cc00fe9368ee3286ff91a6 --- /dev/null +++ b/src/modules/test/TestPage.vue @@ -0,0 +1,13 @@ +<!-- + * @FileDescription: 乱七八糟 +--> +<script setup lang="ts"> +// import { reactive } from 'vue'; +</script> +<template> + <div> + <div>123</div> + </div> +</template> + +<style lang="scss" scoped></style> diff --git a/src/modules/test/router.ts b/src/modules/test/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..452a6fe77bd19a86bfe108da824ab99e4624edea --- /dev/null +++ b/src/modules/test/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'test', + name: 'TestPage', + component: () => import('./TestPage.vue'), + meta: { + title: '测试', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/modules/wang-editor5/WangEditor5.vue b/src/modules/wang-editor5/WangEditor5.vue new file mode 100644 index 0000000000000000000000000000000000000000..e3b0d4ee0e93e65386bfd437a0ef704625ac9e8f --- /dev/null +++ b/src/modules/wang-editor5/WangEditor5.vue @@ -0,0 +1,108 @@ +<!-- + * @FileDescription: 富文本编辑器 wangEditor5 https://github.com/wangeditor-team/wangEditor + * @Date: 2023-10-16 + * @LastEditTime: 2023-10-16 +--> +<script setup lang="ts"> +import { onMounted, ref, shallowRef, onBeforeUnmount } from 'vue'; +import { createEditor, createToolbar } from '@wangeditor/editor'; + +// 编辑器实例,必须用 shallowRef +const editorRef = shallowRef(); +const viewHtml = ref(''); + +onMounted(() => { + initEditer(); +}) +onBeforeUnmount(() => { + // ç»„ä»¶é”€æ¯æ—¶ï¼Œä¹ŸåŠæ—¶é”€æ¯ç¼–辑器 + const editor = editorRef.value + if (editor == null) return; + editor.destroy(); +}) + +function initEditer() { + // editor + const editorConfig = { + placeholder: '请输入内容...', + }; + const editor = createEditor({ + selector: '#editor-container', + html: '<p><br></p>', + config: editorConfig, + mode: 'simple', // 'default' or 'simple' + }); + // 记录 editor 实例 + editorRef.value = editor; + // + // toolbar + const toolbarConfig = {}; + createToolbar({ + editor, + selector: '#toolbar-container', + config: toolbarConfig, + mode: 'simple', // 'default' or 'simple' + }) +} + +// èŽ·å– HTML 内容 +function getHtml() { + const editor = editorRef.value; + const html = editor.getHtml(); + viewHtml.value = html; + console.log('html=', html); +} +// 获å–纯文本内容 +function getText() { + const editor = editorRef.value; + const text = editor.getText(); + console.log('text=', text); +} + +</script> +<template> + <div> + <div>快速开始:https://www.wangeditor.com/v5/getting-started.html</div> + <div> + <button @click="getHtml">getHtml</button> + <button @click="getText">getText</button> + </div> + + <div class="q-pa-md"> + <div id="editor-wrapper"> + <div id="toolbar-container"><!-- 工具æ --></div> + <div id="editor-container"><!-- 编辑器 --></div> + </div> + </div> + <div class="q-pa-md"> + <div class="view-box editor-content-view"> + <div v-html="viewHtml"></div> + </div> + </div> + </div> +</template> + +<style lang="scss" scoped> +#editor-wrapper { + border: 1px solid $border-color; + z-index: 100; + /* 按需定义 */ +} + +#toolbar-container { + border-bottom: 1px solid $border-color; + display: flex; + flex-direction: row; +} + +#editor-container { + height: 500px; + background-color: pink; +} + +.view-box { + overflow: auto; + border: 1px solid $border-color; + height: 400px; +} +</style> diff --git a/src/modules/wang-editor5/router.ts b/src/modules/wang-editor5/router.ts new file mode 100644 index 0000000000000000000000000000000000000000..7458181f4a9a88cc72661530df8e07899a8f542a --- /dev/null +++ b/src/modules/wang-editor5/router.ts @@ -0,0 +1,12 @@ +export default [ + { + path: 'wang-editor5', + name: 'WangEditor5', + component: () => import('./WangEditor5.vue'), + meta: { + title: 'wangEditor 5', + permission: ['*'], + keepalive: true, + }, + }, +]; diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue index 35eb682142b039e08255e9146f53a48db4fb5db0..2fa1a068f828385446fb216ea86d806bd98d3fda 100644 --- a/src/pages/IndexPage.vue +++ b/src/pages/IndexPage.vue @@ -2,7 +2,7 @@ <q-page class="container-height"> <div class="fit overflow-auto"> <router-view v-slot="{ Component, route }"> - <keep-alive :include="keepAliveList"> + <keep-alive :include="state.keepAliveList"> <component :is="Component" :key="route.path" /> </keep-alive> </router-view> @@ -15,18 +15,35 @@ // v-if="!(route.meta && route.meta.keepalive)" // :is="Component" // /> -import { computed } from 'vue'; +import { watch, reactive } from 'vue'; import { usePageStore } from 'src/common/hooks'; export default { name: 'LaoutIndexPage', setup() { const pageStore = usePageStore(); - const keepAliveList = computed(() => { - return pageStore.allPageKeys; - }); + // const keepAliveList = computed(() => { + // console.log('keepAliveList--', pageStore.allPageKeys); + + // return pageStore.allPageKeys; + // }); + const state = reactive({ + keepAliveList: [] as any[] + }) + + watch( + () => pageStore.allPageKeys, + (val) => { + state.keepAliveList = val; + }, + { + immediate: true, + deep: true, + } + ) return { - keepAliveList, + // keepAliveList, + state, }; }, }; diff --git a/src/router/index.ts b/src/router/index.ts index 4531114bfe2ca073e7f3669f69e69f30ead490c3..652b573e3cf322b41a9c5b7c37e576fe24f51aed 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -7,6 +7,7 @@ import { } from 'vue-router'; import routes from './routes'; +import { useUserInfoStore } from 'src/common/hooks'; /* * If not building with SSR mode, you can @@ -20,7 +21,9 @@ import routes from './routes'; export default route(function (/* { store, ssrContext } */) { const createHistory = process.env.SERVER ? createMemoryHistory - : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory); + : process.env.VUE_ROUTER_MODE === 'history' + ? createWebHistory + : createWebHashHistory; const Router = createRouter({ scrollBehavior: () => ({ left: 0, top: 0 }), @@ -32,5 +35,31 @@ export default route(function (/* { store, ssrContext } */) { history: createHistory(process.env.VUE_ROUTER_BASE), }); + Router.beforeEach((to: any, from: any, next: any) => { + const userInfoStore = useUserInfoStore(); + + // console.log('to', to); + // console.log(userInfoStore.$state); + + if (to.matched.length === 0) { + next({ name: 'NOT_FOUND' }); + } else { + if (to.path === '/login') { + next(); + } else { + if (userInfoStore.$state.id > 0) { + next(); + } else { + next({ + path: '/login', + query: { + redirect: to.fullPath, // 把è¦è·³è½¬çš„页é¢çš„è·¯å¾„ä½œä¸ºå‚æ•°ä¼ åˆ°ç™»å½•é¡µé¢ + }, + }); + } + } + } + }); + return Router; }); diff --git a/src/router/routes.ts b/src/router/routes.ts index df352f84881b3f4e4bbaf94a8d3fea7737a6ee79..8e5c1d8be733c03a505cc291153d9ff7e03d7398 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,7 +1,15 @@ import { RouteRecordRaw } from 'vue-router'; +import LOGIN from '../modules/login/router'; import HOME from '../modules/home/router'; import AG_GRID_SELECTION from '../modules/ag-grid-selection/router'; import COMPONENTS_EXAMPLE from '../modules/components-example/router'; +import PINIA_EXAMPLE from '../modules/pinia-example/router'; +import STATE_MGT from '../modules/state-mgt/router'; +import SOME_CSS from '../modules/some-css/router'; +import ARRAY_BULK_MOVE from '../modules/array-bulk-move/router'; +import WANG_EDITOR5 from '../modules/wang-editor5/router'; +import CK_EDITOR5 from '../modules/ck-editor5/router'; +import TEST from '../modules/test/router'; const routes: RouteRecordRaw[] = [ { @@ -13,15 +21,27 @@ const routes: RouteRecordRaw[] = [ name: 'LaoutIndexPage', component: () => import('pages/IndexPage.vue'), redirect: '/home', - children: [...HOME, ...AG_GRID_SELECTION, ...COMPONENTS_EXAMPLE], + children: [ + ...HOME, + ...AG_GRID_SELECTION, + ...COMPONENTS_EXAMPLE, + ...PINIA_EXAMPLE, + ...STATE_MGT, + ...SOME_CSS, + ...ARRAY_BULK_MOVE, + ...WANG_EDITOR5, + ...CK_EDITOR5, + ...TEST, + ], }, ], }, - + ...LOGIN, // Always leave this as last one, // but you can also remove it { path: '/:catchAll(.*)*', + name: 'NOT_FOUND', component: () => import('pages/ErrorNotFound.vue'), }, ]; diff --git a/yarn.lock b/yarn.lock index 784ac72ed6b69415db8440e54148e32ce350b0b2..0436db986af2d968684da21acf5a4b562d4c2caf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,11 +7,421 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" + integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== + dependencies: + "@babel/types" "^7.23.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.18.9", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== + "@babel/parser@^7.20.15", "@babel/parser@^7.21.3": version "7.22.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/runtime@^7.12.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.18.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" + integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.3" + "@babel/types" "^7.23.3" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@ckeditor/ckeditor5-adapter-ckfinder@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-40.0.0.tgz#db3a669445a547b46ba23d722f2d2055eec809f5" + integrity sha512-iSbaSUPPp2SrHY0uRAZgPvl5XQZcwdgIyL942B3IEKdlXgkOnxwXZpvPQRYnJ4StVzrM73lezHwSvvrwwqaWgA== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-autoformat@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-40.0.0.tgz#caeadacd8f0d05c63594a278d0315c02d5d889e6" + integrity sha512-MLgA7QhsDaSKOuU+oGbP9ztnS85Wt9XFdZmlB3+A8I2A7SY4wTTH2ijLaohdHafdKiQ9/5SZrjH3ocN5PhUzDA== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-basic-styles@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-40.0.0.tgz#8ff31476149da035bd619d01c13d29006d3dac36" + integrity sha512-J7kFFfIyAX6MrQixLx7g//1jLmjnRhdZUxfJSfKY8pDAodOJmJtnU1FRwVYTSfc2pM1aKmccXDlvEYmI+uYpQw== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-block-quote@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-40.0.0.tgz#ba0cfbf55dc5c51320b34fad5c75b5c5949ce378" + integrity sha512-4vzWkboHljKRelesQr+2ozMWfnSEiJBLxW8CZUPDfvZ7VZLOpo3v40QQYiR64S3tDzqmUMb6hvedrz/wHGIigg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-build-classic@^40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-build-classic/-/ckeditor5-build-classic-40.0.0.tgz#428dea4be8db60d752a72813ec0028081b48669a" + integrity sha512-Wv7e+GrPc5zPhaj1oNUy8Yf0RIDsK0o1tpnX8Ny3+eVXgN1AmCkUdz9iEjW/eTD2nGYuybOttNJxQqsE3X7oQg== + dependencies: + "@ckeditor/ckeditor5-adapter-ckfinder" "40.0.0" + "@ckeditor/ckeditor5-autoformat" "40.0.0" + "@ckeditor/ckeditor5-basic-styles" "40.0.0" + "@ckeditor/ckeditor5-block-quote" "40.0.0" + "@ckeditor/ckeditor5-ckbox" "40.0.0" + "@ckeditor/ckeditor5-ckfinder" "40.0.0" + "@ckeditor/ckeditor5-cloud-services" "40.0.0" + "@ckeditor/ckeditor5-easy-image" "40.0.0" + "@ckeditor/ckeditor5-editor-classic" "40.0.0" + "@ckeditor/ckeditor5-essentials" "40.0.0" + "@ckeditor/ckeditor5-heading" "40.0.0" + "@ckeditor/ckeditor5-image" "40.0.0" + "@ckeditor/ckeditor5-indent" "40.0.0" + "@ckeditor/ckeditor5-link" "40.0.0" + "@ckeditor/ckeditor5-list" "40.0.0" + "@ckeditor/ckeditor5-media-embed" "40.0.0" + "@ckeditor/ckeditor5-paragraph" "40.0.0" + "@ckeditor/ckeditor5-paste-from-office" "40.0.0" + "@ckeditor/ckeditor5-table" "40.0.0" + "@ckeditor/ckeditor5-typing" "40.0.0" + +"@ckeditor/ckeditor5-ckbox@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-40.0.0.tgz#40dc3a2e4da93bf040b47248a191f0cac25e44b0" + integrity sha512-eabwMatRuQY7hez2mz3JMXE5IOrFawWTK5gLGJToeBsEJyzotzghvwdyuzDqLmhVQdTVbwqbVhkKnrSsDp8RZg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-ckfinder@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-40.0.0.tgz#88bff96124d95977136dd3995408069a003a4b6e" + integrity sha512-NUTnFEXnYf1HVlv14WnwR7RhT5aBI0ofBl/A7D0NQQpGHZ4HB65vjX1mxXBKwpbbLsMS7kMgVEf8WKc0oCzhrA== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-clipboard@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-40.0.0.tgz#6a2b7e22dbfd001f48930ff33cb297b5c43bb875" + integrity sha512-Xtgjb4ZYa40XHqwQo25X6rA4Job0kgFvocNRMBH7CNrN5h4lJwJwVXlY9HSXvXPY0TBaBBS1HcMvB+sf5DYXeg== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + "@ckeditor/ckeditor5-widget" "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-cloud-services@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-40.0.0.tgz#9b1cc5bd19d0ce9fb1792b7f1db286c3cb2e2fda" + integrity sha512-l22T0zgqMpsO0FoObnIb8YB7PPNsnIVCe+f4ZVPaUKT7VP27FVtEI0HIX3qhYW/hEFKiWhlbxOJYs8Ol2y/mlg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-core@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-40.0.0.tgz#941654698c0714263a5aad90bb325504510eb6a5" + integrity sha512-8xoSDOc9/35jEikKtYbdYmBxPop7i/JYSkkZmJYbZ8XxkjQiIMAUYOJVdNntfuLGazU+THmutieEA/x3ISme4g== + dependencies: + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-dev-translations@^39.2.1": + version "39.2.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-dev-translations/-/ckeditor5-dev-translations-39.2.1.tgz#258c9a5e8088941c16a58add4fd016a7166d843c" + integrity sha512-DIS3TtAt+EdXgYojAJYxcpOBavgfF4UyZo92J2jqwPvG88CsyBCKeD3UiwQ5zbPKJgBce+gEyJWdr9i1bUeNmg== + dependencies: + "@babel/parser" "^7.18.9" + "@babel/traverse" "^7.18.9" + chalk "^4.0.0" + pofile "^1.0.9" + rimraf "^3.0.2" + webpack-sources "^2.0.1" + +"@ckeditor/ckeditor5-easy-image@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-40.0.0.tgz#074de733ff77c50969d3bf72f18f9772be526234" + integrity sha512-hYawrY/ClxZzhKQzJmQhwSiLK8yUzNRlOSeTUtJ+VNTpEmmtzWXpQxt1Yo2VvuE1Q7wMt99tAGLALj74J2llJA== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-editor-classic@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-40.0.0.tgz#ab94ad174ae14f605f2a3e9e4e498fcaef59c51f" + integrity sha512-tCI359WG1VmsrmqRkvBcbXWQ2cDml51l+M2fyzcJjMHJyjEqvrkrOiCKdO/66eRcD1UA6xQYtZzE/dxm7hkZWw== + dependencies: + ckeditor5 "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-engine@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-40.0.0.tgz#321d19d5206dc4b4d929706c23c436e4ef6c31c7" + integrity sha512-zauOXFudE1B94RSziWWojdpqGprSo4rKwW3KLU6nfaz9Kq9RZkcP/TW5ADE0DxC2jWUMeItVE/3U8ES5fZ0hqQ== + dependencies: + "@ckeditor/ckeditor5-utils" "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-enter@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-40.0.0.tgz#48a8d33e34622af9fdc06082d7b0d153c5e75b89" + integrity sha512-pu8/zyQMqzMOgJbbPLbVu6znFfbgMYQwIVT7GMmWX+pZxPSBPyM+qNlmstFLwAxeki0aHCbo27gYmR1rIYGgrg== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + +"@ckeditor/ckeditor5-essentials@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-40.0.0.tgz#24e29f09e0e5efe627361b57657521c0a329c69c" + integrity sha512-5e+GOlZ0vQZg0qLmORabC1XsjM1tv3hyVW+qgZeABU5Has+D5NO0TkqJDcLeDGS11/ejXGsp7ebJQ6uU6nuCHg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-heading@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-40.0.0.tgz#017c60ca107b551b09f1f9c0de05416d1e0dbc81" + integrity sha512-VDV8TQggkNQdReleo4Y7Gyn9A1hHB7J3efMkMgO5CzCbxVWzq6tqh285S+Kp7o2sJcezudVZoojL0jV3WxERKg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-image@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-image/-/ckeditor5-image-40.0.0.tgz#294738b9536a432982a6ba17106d34d970fb5580" + integrity sha512-5CV80EiKBaMDfpJwUqTD/2Hcl87da4PS1WU5lDlhvKimrIx+0c65MJmjWGjUdQCSyJ89+PBzj1qAwMJWVZBQ/g== + dependencies: + "@ckeditor/ckeditor5-ui" "40.0.0" + ckeditor5 "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-indent@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-40.0.0.tgz#53afceb069c3e4effddb4cea24fd4e1e9f1c56dc" + integrity sha512-YI9gI3NiAombf0mYkgvZSB7UaMyZl3f7idPbLlsDPfeHb1oTkzxLvTfrpaxKoE7hZPjj6KrgH9gXyPLeho7O/A== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-link@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-link/-/ckeditor5-link-40.0.0.tgz#388a6d3eff7f7cd8fabd0f8c9cd17fd01a9012db" + integrity sha512-hi0JRC6N93N7vqpR80AG9wBGUJ0C86UYvwA8yPMThl5KtXxwwUs2L5UH+Ju3twrkan2MxMzjpPMTXqfaFSt+vA== + dependencies: + "@ckeditor/ckeditor5-ui" "40.0.0" + ckeditor5 "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-list@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-list/-/ckeditor5-list-40.0.0.tgz#daeec63821d1611ae6806f1c5538a2e73432db72" + integrity sha512-sP6ZZ0rzaC2bU09DWT1k2gYJizQHaGwcX7/mTsCSpLVynkZaOU8ckBY/SChD9R54/RWADyX3woVJVHhL1v0QRQ== + dependencies: + "@ckeditor/ckeditor5-ui" "40.0.0" + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-media-embed@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-40.0.0.tgz#2b2d3f0ff7d6b41ea24508540498c58c655b9d23" + integrity sha512-5xmO1SVSDvEvOQF4nAjrJVSvt3+THh70MtxhRu3Wrbqt55sj6G+2IoOkdkSXtaw8vnBE67xa1qEOSX4WQ7Rxwg== + dependencies: + "@ckeditor/ckeditor5-ui" "40.0.0" + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-paragraph@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-40.0.0.tgz#50be65f332271259c6e06b46d6f5b247a0a305ba" + integrity sha512-j2Pm/dlu3hE08EKYvbUT9qUMyJeZtuufuZjUZaADCsVmtfFuzXlaHjIkQUvCxUeuMXQLlUpJ69OSAMzzMlJs8g== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + +"@ckeditor/ckeditor5-paste-from-office@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-40.0.0.tgz#6bf1c2ecc6f43ae8e2bdf6563d7484e6db398196" + integrity sha512-6KHXPxrcF4w81Bu7+LtC7hsMu/mAuKIeQ1kYi05dzteHjra6K6hLv6oH0JZ8U6c2zWM3qznfNxDPFae66N85Eg== + dependencies: + ckeditor5 "40.0.0" + +"@ckeditor/ckeditor5-select-all@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-40.0.0.tgz#15e1eacc2cc7260b34ef98c778c5e8b0fbeb15fe" + integrity sha512-6FP/8DjKCfy9ha42hoshOj5fs13KFFRSbXcCDNFCUk/ZrvH42lz1BYw2S5uQYA9Xl6o4BUWdN+g4CVPQfpGm+Q== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + +"@ckeditor/ckeditor5-table@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-table/-/ckeditor5-table-40.0.0.tgz#64eb60fc39db1814ae56244fc8208047e5244796" + integrity sha512-RsX1Jbnap8OwP9t1EPBS1DDjaJY74oWvUYjmp5IbamvtkFnlDP4HCmxIF4MIQ90V5u0qevydKwAqNmioue/1wA== + dependencies: + ckeditor5 "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-typing@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-40.0.0.tgz#0f5e5aeb261b9fe9c27acf364b83a6dbcf9df5d8" + integrity sha512-c0uMXkh3kJP1wEVoh/0sLPr8Ouk4EvBuaAqSYEkrvX5wKBWAoGnUotHfrFH8wRBy25m17QbZ44N7dkA+BpuMPQ== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-ui@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-40.0.0.tgz#30fb7f4a2deab4097886c11c8990728f9697ed22" + integrity sha512-wnfC7eSqdN6i+nHTN83+PCByWeCPDgdQAXvf3HHBNdsJna6khKC8Oy/1eU8F+vR84unJMrPoaCMIx0qRvK3hCA== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + color-convert "2.0.1" + color-parse "1.4.2" + lodash-es "4.17.21" + vanilla-colorful "0.7.2" + +"@ckeditor/ckeditor5-undo@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-40.0.0.tgz#788cd65a56bbd9ccbc41a34f0a5a5e782ed24982" + integrity sha512-kt+9Ux0RdC0OeMLp95kJW1h6d1LobOblkozU2as5VN5c20tvbXviQJuoQeJsiixmJapUmi7vvDgnVsGw9obEpQ== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + +"@ckeditor/ckeditor5-upload@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-40.0.0.tgz#bfed41c38b5bb6bba8c68321c931c6e304bcf79b" + integrity sha512-LutDg8zjhJu1UKInAyvVHIk8HyroETi61KS2PQTyiTQv/DmRvjSK32Xl83KprTxAvqZsiDdXe+Nl1kdAO8S2ag== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + +"@ckeditor/ckeditor5-utils@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-40.0.0.tgz#6e287ab33d5f8cac4928f82f5621ba994c47a15e" + integrity sha512-52UwkeGxrZWhbwWWfixKceWhF1kuDeJNAM57wqfB7GS8CzElOpJ3AELeD/L/ZkUEBGL9asqribEH3CzgTjWKPA== + dependencies: + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-vue@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-vue/-/ckeditor5-vue-5.1.0.tgz#1fb371f8d1e66746c63714c779644686e138ccf7" + integrity sha512-KEx4Tj2Irr4ZbLG8LnaKpb0Dgd8qmLmKFWeiKkQwM3RAAeYRYOCcBVB2Y168I9KA8wRosPxgOO9jbQ92yopYHA== + +"@ckeditor/ckeditor5-watchdog@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-40.0.0.tgz#a9ab427fe9a1248cf4d2a1e98729b74cda79af09" + integrity sha512-bwBimEdiUCe6/1IScWhC2vomcwApkKeb804NuxX7m7QhctKaHALV+tRVG/y8Oln3qCaw3na6C4pQgaXz0qtWcQ== + dependencies: + lodash-es "4.17.21" + +"@ckeditor/ckeditor5-widget@40.0.0": + version "40.0.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-40.0.0.tgz#71330fe467fdbf66f075ee10ac7dda1f72a6a2d8" + integrity sha512-3dZjAQECWMvSMQhleM6iHwG2LOTKQmir4Rf3/Vulc7Aexb/brcQ06JuNQtQsIxRBZPoaEpWFAakK1PSfxxO0Sg== + dependencies: + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-enter" "40.0.0" + "@ckeditor/ckeditor5-typing" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + lodash-es "4.17.21" + "@esbuild/linux-loong64@0.14.54": version "0.14.54" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" @@ -129,11 +539,38 @@ "@intlify/core-base" "9.2.2" "@intlify/shared" "9.2.2" -"@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -220,6 +657,11 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@transloadit/prettier-bytes@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b" + integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -255,6 +697,11 @@ resolved "https://registry.yarnpkg.com/@types/cordova/-/cordova-0.0.34.tgz#ea7addf74ecec3d7629827a0c39e2c9addc73d04" integrity sha512-rkiiTuf/z2wTd4RxFOb+clE7PF4AEJU0hsczbUdkHHBtkUmpWQpEddynNfJYKYtZFJKbq4F+brfekt1kx85IZA== +"@types/event-emitter@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/event-emitter/-/event-emitter-0.3.3.tgz#727032a9fc67565f96bbd78b2e2809275c97d7e7" + integrity sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q== + "@types/express-serve-static-core@^4.17.33": version "4.17.35" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" @@ -450,6 +897,49 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@uppy/companion-client@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@uppy/companion-client/-/companion-client-2.2.2.tgz#c70b42fdcca728ef88b3eebf7ee3e2fa04b4923b" + integrity sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og== + dependencies: + "@uppy/utils" "^4.1.2" + namespace-emitter "^2.0.1" + +"@uppy/core@^2.1.1": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@uppy/core/-/core-2.3.4.tgz#260b85b6bf3aa03cdc67da231f8c69cfbfdcc84a" + integrity sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/store-default" "^2.1.1" + "@uppy/utils" "^4.1.3" + lodash.throttle "^4.1.1" + mime-match "^1.0.2" + namespace-emitter "^2.0.1" + nanoid "^3.1.25" + preact "^10.5.13" + +"@uppy/store-default@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@uppy/store-default/-/store-default-2.1.1.tgz#62a656a099bdaa012306e054d093754cb2d36e3e" + integrity sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ== + +"@uppy/utils@^4.1.2", "@uppy/utils@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@uppy/utils/-/utils-4.1.3.tgz#9d0be6ece4df25f228d30ef40be0f14208258ce3" + integrity sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw== + dependencies: + lodash.throttle "^4.1.1" + +"@uppy/xhr-upload@^2.0.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz#0d4e355332fe0c6eb372d7731315e04d02aeeb18" + integrity sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ== + dependencies: + "@uppy/companion-client" "^2.2.2" + "@uppy/utils" "^4.1.2" + nanoid "^3.1.25" + "@vitejs/plugin-vue@^2.2.0": version "2.3.4" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz#966a6279060eb2d9d1a02ea1a331af071afdcf9e" @@ -550,6 +1040,79 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== +"@wangeditor/basic-modules@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz#a9c3ccf4ef53332f29550d59d3676e15f395946f" + integrity sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg== + dependencies: + is-url "^1.2.4" + +"@wangeditor/code-highlight@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz#90256857714d5c0cf83ac475aea64db7bf29a7cd" + integrity sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw== + dependencies: + prismjs "^1.23.0" + +"@wangeditor/core@^1.1.19": + version "1.1.19" + resolved "https://registry.yarnpkg.com/@wangeditor/core/-/core-1.1.19.tgz#f9155f7fd92d03cb1982405b3b82e54c31f1c2b0" + integrity sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q== + dependencies: + "@types/event-emitter" "^0.3.3" + event-emitter "^0.3.5" + html-void-elements "^2.0.0" + i18next "^20.4.0" + scroll-into-view-if-needed "^2.2.28" + slate-history "^0.66.0" + +"@wangeditor/editor@^5.1.23": + version "5.1.23" + resolved "https://registry.yarnpkg.com/@wangeditor/editor/-/editor-5.1.23.tgz#c9d2007b7cb0ceef6b72692b4ee87b01ee2367b3" + integrity sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ== + dependencies: + "@uppy/core" "^2.1.1" + "@uppy/xhr-upload" "^2.0.3" + "@wangeditor/basic-modules" "^1.1.7" + "@wangeditor/code-highlight" "^1.0.3" + "@wangeditor/core" "^1.1.19" + "@wangeditor/list-module" "^1.0.5" + "@wangeditor/table-module" "^1.1.4" + "@wangeditor/upload-image-module" "^1.0.2" + "@wangeditor/video-module" "^1.1.4" + dom7 "^3.0.0" + is-hotkey "^0.2.0" + lodash.camelcase "^4.3.0" + lodash.clonedeep "^4.5.0" + lodash.debounce "^4.0.8" + lodash.foreach "^4.5.0" + lodash.isequal "^4.5.0" + lodash.throttle "^4.1.1" + lodash.toarray "^4.4.0" + nanoid "^3.2.0" + slate "^0.72.0" + snabbdom "^3.1.0" + +"@wangeditor/list-module@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@wangeditor/list-module/-/list-module-1.0.5.tgz#3fc0b167acddf885536b45fa0c127f9c6adaea33" + integrity sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ== + +"@wangeditor/table-module@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@wangeditor/table-module/-/table-module-1.1.4.tgz#757d4a5868b2b658041cd323854a4d707c8347e9" + integrity sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w== + +"@wangeditor/upload-image-module@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz#89e9b9467e10cbc6b11dc5748e08dd23aaebee30" + integrity sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA== + +"@wangeditor/video-module@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532" + integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg== + accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -620,6 +1183,13 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -843,6 +1413,15 @@ caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001517: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -876,6 +1455,25 @@ ci-info@^3.7.1: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== +ckeditor5@40.0.0: + version "40.0.0" + resolved "https://registry.yarnpkg.com/ckeditor5/-/ckeditor5-40.0.0.tgz#0415efab6b11da48cc7d58229ce282e3587d2be8" + integrity sha512-pyXptFXODCyICkIaiBfWl+vqNq87CwB4IodaacUDdp+7z7szK13/vMJMWyPCQyZob+lzpakqPpj29HR5Kzy4AQ== + dependencies: + "@ckeditor/ckeditor5-clipboard" "40.0.0" + "@ckeditor/ckeditor5-core" "40.0.0" + "@ckeditor/ckeditor5-engine" "40.0.0" + "@ckeditor/ckeditor5-enter" "40.0.0" + "@ckeditor/ckeditor5-paragraph" "40.0.0" + "@ckeditor/ckeditor5-select-all" "40.0.0" + "@ckeditor/ckeditor5-typing" "40.0.0" + "@ckeditor/ckeditor5-ui" "40.0.0" + "@ckeditor/ckeditor5-undo" "40.0.0" + "@ckeditor/ckeditor5-upload" "40.0.0" + "@ckeditor/ckeditor5-utils" "40.0.0" + "@ckeditor/ckeditor5-watchdog" "40.0.0" + "@ckeditor/ckeditor5-widget" "40.0.0" + clean-css@^4.2.1: version "4.2.4" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" @@ -923,18 +1521,37 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -color-convert@^2.0.1: +color-convert@2.0.1, color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@~1.1.4: +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-parse@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/color-parse/-/color-parse-1.4.2.tgz#78651f5d34df1a57f997643d86f7f87268ad4eb5" + integrity sha512-RI7s49/8yqDj3fECFZjUI1Yi0z/Gq1py43oNJivAIIDSyJiOZLfYCRQEgn8HEVAj++PcRe8AnL2XF0fRJ3BTnA== + dependencies: + color-name "^1.0.0" + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -977,6 +1594,11 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1041,6 +1663,14 @@ csstype@^3.1.1: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1048,7 +1678,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1101,6 +1731,13 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom7@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331" + integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g== + dependencies: + ssr-window "^3.0.0-alpha.1" + dot-prop@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" @@ -1142,6 +1779,32 @@ end-of-stream@^1.4.1: dependencies: once "^1.4.0" +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + esbuild-android-64@0.14.51: version "0.14.51" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz#414a087cb0de8db1e347ecca6c8320513de433db" @@ -1566,6 +2229,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + express@^4.17.3: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" @@ -1603,6 +2274,13 @@ express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1810,6 +2488,11 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" @@ -1839,6 +2522,11 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -1879,6 +2567,11 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" +html-void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" + integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -1890,6 +2583,13 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +i18next@^20.4.0: + version "20.6.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345" + integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A== + dependencies: + "@babel/runtime" "^7.12.0" + iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1907,6 +2607,11 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -1995,6 +2700,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -2022,11 +2732,21 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -2054,6 +2774,11 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -2061,6 +2786,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -2128,11 +2858,26 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@^4.17.21: +lodash-es@4.17.21, lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -2148,6 +2893,16 @@ lodash.flatten@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" @@ -2158,6 +2913,16 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -2233,6 +2998,13 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +mime-match@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-match/-/mime-match-1.0.2.tgz#3f87c31e9af1a5fd485fb9db134428b23bbb7ba8" + integrity sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg== + dependencies: + wildcard "^1.1.0" + mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" @@ -2289,7 +3061,12 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.3.6: +namespace-emitter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c" + integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g== + +nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -2309,6 +3086,11 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + no-case@^2.2.0: version "2.3.2" resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" @@ -2491,6 +3273,11 @@ pinia@^2.0.11: "@vue/devtools-api" "^6.5.0" vue-demi ">=0.14.5" +pofile@^1.0.9: + version "1.1.4" + resolved "https://registry.yarnpkg.com/pofile/-/pofile-1.1.4.tgz#eab7e29f5017589b2a61b2259dff608c0cad76a2" + integrity sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g== + postcss-selector-parser@^6.0.13: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" @@ -2513,6 +3300,11 @@ postcss@^8.1.10, postcss@^8.4.13: picocolors "^1.0.0" source-map-js "^1.0.2" +preact@^10.5.13: + version "10.18.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.18.1.tgz#3b84bb305f0b05f4ad5784b981d15fcec4e105da" + integrity sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -2523,6 +3315,11 @@ prettier@^2.5.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prismjs@^1.23.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -2621,6 +3418,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + register-service-worker@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.2.tgz#6516983e1ef790a98c4225af1216bc80941a4bd2" @@ -2738,6 +3540,13 @@ sax@1.1.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9" integrity sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg== +scroll-into-view-if-needed@^2.2.28: + version "2.2.31" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + semver@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -2829,6 +3638,22 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slate-history@^0.66.0: + version "0.66.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940" + integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng== + dependencies: + is-plain-object "^5.0.0" + +slate@^0.72.0: + version "0.72.8" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.72.8.tgz#5a018edf24e45448655293a68bfbcf563aa5ba81" + integrity sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -2838,6 +3663,16 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snabbdom@^3.1.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/snabbdom/-/snabbdom-3.5.1.tgz#25f80ef15b194baea703d9d5441892e369de18e1" + integrity sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA== + +source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -2853,6 +3688,11 @@ source-map@^0.7.4: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== +ssr-window@^3.0.0-alpha.1: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37" + integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA== + stack-trace@^1.0.0-pre2: version "1.0.0-pre2" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-1.0.0-pre2.tgz#46a83a79f1b287807e9aaafc6a5dd8bcde626f9c" @@ -2898,6 +3738,13 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2942,6 +3789,11 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -2949,6 +3801,11 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -3003,6 +3860,16 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + typescript@^4.5.4: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" @@ -3053,6 +3920,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +vanilla-colorful@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/vanilla-colorful/-/vanilla-colorful-0.7.2.tgz#3fb1f4b9f15b797e20fd1ce8e0364f33b073f4a2" + integrity sha512-z2YZusTFC6KnLERx1cgoIRX2CjPRP0W75N+3CC6gbvdX5Ch47rZkEMGO2Xnf+IEmi3RiFLxS18gayMA27iU7Kg== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -3131,6 +4003,14 @@ webpack-merge@^5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" +webpack-sources@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -3138,6 +4018,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wildcard@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5" + integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng== + wildcard@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"