Commit f0392c1d by pangchong

feat: 富文本样式

parent 2fbd303c
...@@ -7,19 +7,20 @@ export {} ...@@ -7,19 +7,20 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
NAlert: typeof import('naive-ui')['NAlert']
NButton: typeof import('naive-ui')['NButton'] NButton: typeof import('naive-ui')['NButton']
NCard: typeof import('naive-ui')['NCard'] NCard: typeof import('naive-ui')['NCard']
NConfigProvider: typeof import('naive-ui')['NConfigProvider'] NConfigProvider: typeof import('naive-ui')['NConfigProvider']
NDataTable: typeof import('naive-ui')['NDataTable'] NDataTable: typeof import('naive-ui')['NDataTable']
NInput: typeof import('naive-ui')['NInput']
NLayout: typeof import('naive-ui')['NLayout'] NLayout: typeof import('naive-ui')['NLayout']
NLayoutContent: typeof import('naive-ui')['NLayoutContent'] NLayoutContent: typeof import('naive-ui')['NLayoutContent']
NLayoutFooter: typeof import('naive-ui')['NLayoutFooter'] NLayoutFooter: typeof import('naive-ui')['NLayoutFooter']
NLayoutHeader: typeof import('naive-ui')['NLayoutHeader'] NLayoutHeader: typeof import('naive-ui')['NLayoutHeader']
NMessageProvider: typeof import('naive-ui')['NMessageProvider']
NResult: typeof import('naive-ui')['NResult'] NResult: typeof import('naive-ui')['NResult']
NSpace: typeof import('naive-ui')['NSpace'] NSpace: typeof import('naive-ui')['NSpace']
NSpin: typeof import('naive-ui')['NSpin'] NSwitch: typeof import('naive-ui')['NSwitch']
NTable: (typeof import('naive-ui'))['NTable'] NTree: typeof import('naive-ui')['NTree']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView'] RouterView: typeof import('vue-router')['RouterView']
} }
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
"dependencies": { "dependencies": {
"@types/qs": "^6.9.15", "@types/qs": "^6.9.15",
"@vueuse/core": "^10.9.0", "@vueuse/core": "^10.9.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"dayjs": "^1.11.11", "dayjs": "^1.11.11",
"less": "^4.2.0", "less": "^4.2.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
...@@ -244,6 +246,17 @@ ...@@ -244,6 +246,17 @@
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@babel/runtime": {
"version": "7.27.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.0.tgz",
"integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@commitlint/cli": { "node_modules/@commitlint/cli": {
"version": "19.8.0", "version": "19.8.0",
"resolved": "https://registry.npmmirror.com/@commitlint/cli/-/cli-19.8.0.tgz", "resolved": "https://registry.npmmirror.com/@commitlint/cli/-/cli-19.8.0.tgz",
...@@ -839,6 +852,11 @@ ...@@ -839,6 +852,11 @@
"win32" "win32"
] ]
}, },
"node_modules/@transloadit/prettier-bytes": {
"version": "0.0.7",
"resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz",
"integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA=="
},
"node_modules/@types/conventional-commits-parser": { "node_modules/@types/conventional-commits-parser": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmmirror.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", "resolved": "https://registry.npmmirror.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz",
...@@ -853,6 +871,11 @@ ...@@ -853,6 +871,11 @@
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
}, },
"node_modules/@types/event-emitter": {
"version": "0.3.5",
"resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ=="
},
"node_modules/@types/katex": { "node_modules/@types/katex": {
"version": "0.16.7", "version": "0.16.7",
"resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz", "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz",
...@@ -890,6 +913,56 @@ ...@@ -890,6 +913,56 @@
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
}, },
"node_modules/@uppy/companion-client": {
"version": "2.2.2",
"resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz",
"integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==",
"dependencies": {
"@uppy/utils": "^4.1.2",
"namespace-emitter": "^2.0.1"
}
},
"node_modules/@uppy/core": {
"version": "2.3.4",
"resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz",
"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"
}
},
"node_modules/@uppy/store-default": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz",
"integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ=="
},
"node_modules/@uppy/utils": {
"version": "4.1.3",
"resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz",
"integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==",
"dependencies": {
"lodash.throttle": "^4.1.1"
}
},
"node_modules/@uppy/xhr-upload": {
"version": "2.1.3",
"resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz",
"integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==",
"dependencies": {
"@uppy/companion-client": "^2.2.2",
"@uppy/utils": "^4.1.2",
"nanoid": "^3.1.25"
},
"peerDependencies": {
"@uppy/core": "^2.3.3"
}
},
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
"version": "5.0.4", "version": "5.0.4",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz",
...@@ -1140,6 +1213,156 @@ ...@@ -1140,6 +1213,156 @@
} }
} }
}, },
"node_modules/@wangeditor/basic-modules": {
"version": "1.1.7",
"resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz",
"integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==",
"dependencies": {
"is-url": "^1.2.4"
},
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"lodash.throttle": "^4.1.1",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/code-highlight": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz",
"integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==",
"dependencies": {
"prismjs": "^1.23.0"
},
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/core": {
"version": "1.1.19",
"resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz",
"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"
},
"peerDependencies": {
"@uppy/core": "^2.1.1",
"@uppy/xhr-upload": "^2.0.3",
"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"
}
},
"node_modules/@wangeditor/editor": {
"version": "5.1.23",
"resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz",
"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"
}
},
"node_modules/@wangeditor/editor-for-vue": {
"version": "5.1.12",
"resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
"integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
"peerDependencies": {
"@wangeditor/editor": ">=5.1.0",
"vue": "^3.0.5"
}
},
"node_modules/@wangeditor/list-module": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz",
"integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==",
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/table-module": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz",
"integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==",
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/upload-image-module": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz",
"integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==",
"peerDependencies": {
"@uppy/core": "^2.0.3",
"@uppy/xhr-upload": "^2.0.3",
"@wangeditor/basic-modules": "1.x",
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"lodash.foreach": "^4.5.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/video-module": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz",
"integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==",
"peerDependencies": {
"@uppy/core": "^2.1.4",
"@uppy/xhr-upload": "^2.0.7",
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.11.3", "version": "8.11.3",
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
...@@ -1455,6 +1678,11 @@ ...@@ -1455,6 +1678,11 @@
"dot-prop": "^5.1.0" "dot-prop": "^5.1.0"
} }
}, },
"node_modules/compute-scroll-into-view": {
"version": "1.0.20",
"resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg=="
},
"node_modules/computeds": { "node_modules/computeds": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz",
...@@ -1608,6 +1836,18 @@ ...@@ -1608,6 +1836,18 @@
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
}, },
"node_modules/d": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz",
"integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
"dependencies": {
"es5-ext": "^0.10.64",
"type": "^2.7.2"
},
"engines": {
"node": ">=0.12"
}
},
"node_modules/dargs": { "node_modules/dargs": {
"version": "8.1.0", "version": "8.1.0",
"resolved": "https://registry.npmmirror.com/dargs/-/dargs-8.1.0.tgz", "resolved": "https://registry.npmmirror.com/dargs/-/dargs-8.1.0.tgz",
...@@ -1692,6 +1932,14 @@ ...@@ -1692,6 +1932,14 @@
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
"dev": true "dev": true
}, },
"node_modules/dom7": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
"dependencies": {
"ssr-window": "^3.0.0-alpha.1"
}
},
"node_modules/dot-prop": { "node_modules/dot-prop": {
"version": "5.3.0", "version": "5.3.0",
"resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz", "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz",
...@@ -1785,6 +2033,43 @@ ...@@ -1785,6 +2033,43 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/es5-ext": {
"version": "0.10.64",
"resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz",
"integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
"hasInstallScript": true,
"dependencies": {
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.3",
"esniff": "^2.0.1",
"next-tick": "^1.1.0"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/es6-iterator": {
"version": "2.0.3",
"resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
"dependencies": {
"d": "1",
"es5-ext": "^0.10.35",
"es6-symbol": "^3.1.1"
}
},
"node_modules/es6-symbol": {
"version": "3.1.4",
"resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz",
"integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
"dependencies": {
"d": "^1.0.2",
"ext": "^1.7.0"
},
"engines": {
"node": ">=0.12"
}
},
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.19.12", "version": "0.19.12",
"resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.19.12.tgz", "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.19.12.tgz",
...@@ -1831,16 +2116,47 @@ ...@@ -1831,16 +2116,47 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/esniff": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz",
"integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
"dependencies": {
"d": "^1.0.1",
"es5-ext": "^0.10.62",
"event-emitter": "^0.3.5",
"type": "^2.7.2"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/estree-walker": { "node_modules/estree-walker": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"node_modules/event-emitter": {
"version": "0.3.5",
"resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
"dependencies": {
"d": "1",
"es5-ext": "~0.10.14"
}
},
"node_modules/evtd": { "node_modules/evtd": {
"version": "0.2.4", "version": "0.2.4",
"resolved": "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz", "resolved": "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz",
"integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==" "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw=="
}, },
"node_modules/ext": {
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz",
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
"dependencies": {
"type": "^2.7.2"
}
},
"node_modules/fast-deep-equal": { "node_modules/fast-deep-equal": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
...@@ -2108,6 +2424,15 @@ ...@@ -2108,6 +2424,15 @@
"node": ">=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/html-void-elements": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
"integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/husky": { "node_modules/husky": {
"version": "8.0.3", "version": "8.0.3",
"resolved": "https://registry.npmmirror.com/husky/-/husky-8.0.3.tgz", "resolved": "https://registry.npmmirror.com/husky/-/husky-8.0.3.tgz",
...@@ -2123,6 +2448,14 @@ ...@@ -2123,6 +2448,14 @@
"url": "https://github.com/sponsors/typicode" "url": "https://github.com/sponsors/typicode"
} }
}, },
"node_modules/i18next": {
"version": "20.6.1",
"resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz",
"integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==",
"dependencies": {
"@babel/runtime": "^7.12.0"
}
},
"node_modules/iconv-lite": { "node_modules/iconv-lite": {
"version": "0.6.3", "version": "0.6.3",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
...@@ -2147,6 +2480,15 @@ ...@@ -2147,6 +2480,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/immer": {
"version": "9.0.21",
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
"integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/immer"
}
},
"node_modules/import-fresh": { "node_modules/import-fresh": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
...@@ -2230,6 +2572,11 @@ ...@@ -2230,6 +2572,11 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/is-hotkey": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz",
"integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw=="
},
"node_modules/is-number": { "node_modules/is-number": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
...@@ -2248,6 +2595,14 @@ ...@@ -2248,6 +2595,14 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-text-path": { "node_modules/is-text-path": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmmirror.com/is-text-path/-/is-text-path-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/is-text-path/-/is-text-path-2.0.0.tgz",
...@@ -2260,6 +2615,11 @@ ...@@ -2260,6 +2615,11 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-url": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz",
"integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
},
"node_modules/is-what": { "node_modules/is-what": {
"version": "3.14.1", "version": "3.14.1",
"resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz",
...@@ -2427,8 +2787,28 @@ ...@@ -2427,8 +2787,28 @@
"node_modules/lodash.camelcase": { "node_modules/lodash.camelcase": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
"dev": true },
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
"node_modules/lodash.foreach": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead."
}, },
"node_modules/lodash.isplainobject": { "node_modules/lodash.isplainobject": {
"version": "4.0.6", "version": "4.0.6",
...@@ -2466,6 +2846,16 @@ ...@@ -2466,6 +2846,16 @@
"integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==",
"dev": true "dev": true
}, },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
},
"node_modules/lodash.toarray": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
"integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw=="
},
"node_modules/lodash.uniq": { "node_modules/lodash.uniq": {
"version": "4.5.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
...@@ -2578,6 +2968,14 @@ ...@@ -2578,6 +2968,14 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/mime-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz",
"integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==",
"dependencies": {
"wildcard": "^1.1.0"
}
},
"node_modules/minimist": { "node_modules/minimist": {
"version": "1.2.8", "version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
...@@ -2664,6 +3062,11 @@ ...@@ -2664,6 +3062,11 @@
"vue": "^3.0.0" "vue": "^3.0.0"
} }
}, },
"node_modules/namespace-emitter": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
"integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g=="
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.7", "version": "3.3.7",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
...@@ -2691,6 +3094,11 @@ ...@@ -2691,6 +3094,11 @@
"node": ">= 4.4.x" "node": ">= 4.4.x"
} }
}, },
"node_modules/next-tick": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "2.0.14", "version": "2.0.14",
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
...@@ -3036,6 +3444,15 @@ ...@@ -3036,6 +3444,15 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true "dev": true
}, },
"node_modules/preact": {
"version": "10.26.4",
"resolved": "https://registry.npmmirror.com/preact/-/preact-10.26.4.tgz",
"integrity": "sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.3.2", "version": "3.3.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
...@@ -3051,6 +3468,14 @@ ...@@ -3051,6 +3468,14 @@
"url": "https://github.com/prettier/prettier?sponsor=1" "url": "https://github.com/prettier/prettier?sponsor=1"
} }
}, },
"node_modules/prismjs": {
"version": "1.30.0",
"resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz",
"integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
"engines": {
"node": ">=6"
}
},
"node_modules/prr": { "node_modules/prr": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
...@@ -3098,6 +3523,11 @@ ...@@ -3098,6 +3523,11 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/require-directory": { "node_modules/require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
...@@ -3201,6 +3631,14 @@ ...@@ -3201,6 +3631,14 @@
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
"optional": true "optional": true
}, },
"node_modules/scroll-into-view-if-needed": {
"version": "2.2.31",
"resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
"integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
"dependencies": {
"compute-scroll-into-view": "^1.0.20"
}
},
"node_modules/scule": { "node_modules/scule": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
...@@ -3290,6 +3728,35 @@ ...@@ -3290,6 +3728,35 @@
"node": ">=14" "node": ">=14"
} }
}, },
"node_modules/slate": {
"version": "0.72.8",
"resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz",
"integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
"dependencies": {
"immer": "^9.0.6",
"is-plain-object": "^5.0.0",
"tiny-warning": "^1.0.3"
}
},
"node_modules/slate-history": {
"version": "0.66.0",
"resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz",
"integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==",
"dependencies": {
"is-plain-object": "^5.0.0"
},
"peerDependencies": {
"slate": ">=0.65.3"
}
},
"node_modules/snabbdom": {
"version": "3.6.2",
"resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz",
"integrity": "sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==",
"engines": {
"node": ">=12.17.0"
}
},
"node_modules/source-map": { "node_modules/source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
...@@ -3316,6 +3783,11 @@ ...@@ -3316,6 +3783,11 @@
"node": ">= 10.x" "node": ">= 10.x"
} }
}, },
"node_modules/ssr-window": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
"integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
},
"node_modules/string-width": { "node_modules/string-width": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
...@@ -3564,6 +4036,11 @@ ...@@ -3564,6 +4036,11 @@
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
"dev": true "dev": true
}, },
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/tinyexec": { "node_modules/tinyexec": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.2.tgz", "resolved": "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.2.tgz",
...@@ -3598,6 +4075,11 @@ ...@@ -3598,6 +4075,11 @@
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/type": {
"version": "2.7.3",
"resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz",
"integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
},
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.3.3", "version": "5.3.3",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz",
...@@ -4023,6 +4505,11 @@ ...@@ -4023,6 +4505,11 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/wildcard": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng=="
},
"node_modules/wrap-ansi": { "node_modules/wrap-ansi": {
"version": "8.1.0", "version": "8.1.0",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
"dependencies": { "dependencies": {
"@types/qs": "^6.9.15", "@types/qs": "^6.9.15",
"@vueuse/core": "^10.9.0", "@vueuse/core": "^10.9.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"dayjs": "^1.11.11", "dayjs": "^1.11.11",
"less": "^4.2.0", "less": "^4.2.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
......
<template> <template>
<n-config-provider class="w-full h-full" :theme="appStore.theme" :locale="zhCN" :date-locale="dateZhCN" :theme-overrides="themeOverrides"> <n-config-provider class="w-full h-full" :theme="appStore.theme" :locale="zhCN" :date-locale="dateZhCN" :theme-overrides="themeOverrides">
<n-message-provider>
<router-view></router-view> <router-view></router-view>
</n-message-provider>
</n-config-provider> </n-config-provider>
</template> </template>
......
<?xml version="1.0" encoding="UTF-8"?><!--Arbortext, Inc., 1988-2013, v.4002--><!DOCTYPE JOBCARD PUBLIC "-//CEA-TEXT//DTD JOBCARD-VER1//EN" "JOBCARD.dtd"><JOBCARD><EOTK-HEADER></EOTK-HEADER><CEP><EFFECT EFFRG="001999"></EFFECT><TITLEC>发动机QEC拆卸(V2500-A5系列)</TITLEC><TITLE>Remove the Engine's QEC(V2500-A5 series)</TITLE><TOPIC CK-LEVEL="C"><TITLEC>飞机/发动机基本信息</TITLEC><TITLE>AIRCRAFT/ENGINE INFORMATION</TITLE><STEP CK-LEVEL="C"><EFFECT EFFRG="001999"></EFFECT><RECORD-LINE><PARAC>发动机序号</PARAC><PARA>Engine SN</PARA><RECORD></RECORD></RECORD-LINE><NOTE><PARAC>开始工作前请记录。</PARAC><PARA>Please record before starting work.</PARA></NOTE><SIGNOFF/></STEP></TOPIC><TOPIC CK-LEVEL="C"><TITLEC>工作准备</TITLEC><TITLE>Preparation</TITLE><STEP CK-LEVEL="C"><EFFECT EFFRG="001999"></EFFECT><PARAC>对所拆卸发动机进行目视检查 确保发动机本体部件的完整性和完好性。</PARAC><PARA>Visual inspection to ensure the integrity of engine parts and integrity.</PARA></STEP><STEP CK-LEVEL="C"><EFFECT EFFRG="001999"></EFFECT><PARAC>将发动机上架,参考EM TASK 71-00-00-560-001。</PARAC><PARA>Move The Engine From The Transportation Stand To The Support Pedestals, Handling-001.Ref. EM TASK 71-00-00-560-001.</PARA></STEP><STEP CK-LEVEL="C"><EFFECT EFFRG="001999"></EFFECT><?Pub Caret -2?><PARAC>将工具箱,工作梯,及QEC部件储存架摆放到位。</PARAC><PARA>Put the toolbox, working ladder, and QEC parts storage rack placed in place.</PARA><SIGNOFF/></STEP><STEP CK-LEVEL="C"><EFFECT EFFRG="001999"></EFFECT><PARAC>按照EB-2020-V250-70-201最新版,完成发动机的出库检查。</PARAC><PARA>Finish the engine outgoing check ref thelatest version of EB-2020-V250-70-201.</PARA><SIGNOFF/></STEP></TOPIC><TOPIC CK-LEVEL="C"><TITLEC>工作步骤</TITLEC><TITLE>PROCEDURE</TITLE><STEP><EFFECT EFFRG="001999"></EFFECT><PARAC>发动机QEC拆卸</PARAC><PARA>Remove the Engine's QEC</PARA><LIST1><L1ITEM><LIST2><L2ITEM><PARAC>拆卸EBU风扇机匣支架,按EM TASK 71-00-02-000-026-B00。</PARAC><PARA>Ref. EM TASK 71-00-02-000-026-B00 (A5-PPBU) - Remove The EBU Fan Case Brackets, Removal-026.</PARA></L2ITEM><L2ITEM><PARAC>拆卸低压中压机匣支架,按EM TASK 71-00-02-000-027-B00。</PARAC><PARA>Ref. EM TASK 71-00-02-000-027-B00 (A5-PPBU) - Remove The LP Compressor/Intermediate Case Brackets, Removal-027.</PARA></L2ITEM></LIST2><SIGNOFF/></L1ITEM><L1ITEM><LIST2><L2ITEM><PARAC>拆卸防冰管(风扇机匣部分),按 AMM TASK 30-21-49-000-010-B, AMM TASK 30-21-49-000-011-B, AMM TASK 30-21-49-000-012-B, AMM TASK 30-21-49-000-013-B, AMM TASK 30-21-49-000-014-B。</PARAC><PARA>DUCTS-ANTI ICE, Ref. AMM TASK 30-21-49-000-010-B, AMM TASK 30-21-49-000-011-B, AMM TASK 30-21-49-000-012-B, AMM TASK 30-21-49-000-013-B, AMM TASK 30-21-49-000-014-B.</PARA><NOTE><PARAC>防冰管隔热罩与防冰管一同拆下。</PARAC><PARA>Anti-ice Duct heat shield and Anti-ice Duct together remove.</PARA></NOTE><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸防冰活门,按AMM TASK 30-21-51-000-010-B。</PARAC><PARA>Ref.Removal of the Engine Air Intake Anti-ice Valve AMM TASK 30-21-51-000-010-B.</PARA><SIGNOFF/></L2ITEM></LIST2></L1ITEM><L1ITEM><LIST2><L2ITEM><PARAC>拆卸IDG,按AMM TASK 24-21-51-000-010-A。</PARAC><PARA>Removal of the Integrated Drive Generator -IDG 1(2),Ref.AMM TASK&nbsp;24-21-51-000-010-A.</PARA><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸IDG QAD,按AMM TASK&nbsp;24-21-41-000-010-A。</PARAC><PARA>Removal of the Quick Attach/Detach (QAD) Adapter of the IDG.Ref. AMM TASK&nbsp;24-21-41-000-010-A.</PARA><NOTE><PARAC>QEC中的IDG QAD由于备发已补齐,拆卸时可根据实际备发缺件情况完成。</PARAC><PARA>IDG QAD can be disassembled according to the actual situation of spare engines because of spare engines have a complete IDG QAD.</PARA></NOTE><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸IDG导线,按AMM TASK&nbsp;24-21-43-000-010-A。</PARAC><PARA>Removal of the IDG Cables.Ref. AMM TASK&nbsp;24-21-43-000-010-A.</PARA><SIGNOFF/></L2ITEM></LIST2></L1ITEM><L1ITEM><LIST2><L2ITEM><PARAC>拆卸液压泵及液压油滤组件。</PARAC><PARA>Removal of the Engine Pump and Engine-Pump Case-Drain Filter.</PARA><LIST3><L3ITEM><PARAC>按EM TASK 71-00-02-000-019 或</PARAC><PARAC>AMM TASK&nbsp;29-11-51-000-010-A Removal of the Engine Pump</PARAC><PARAC>AMM TASK&nbsp;29-11-43-000-010-A Removal of the Engine-Pump Case-Drain Filter</PARAC></L3ITEM></LIST3><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸液压泵管路。</PARAC><PARA>Remove The Hydraulic Tubes.</PARA><LIST3><L3ITEM><PARAC>按EM TASK 71-00-02-000-012-B00 或</PARAC><PARAC>AMM TASK&nbsp;29-11-49-000-010-A Removal of the Hydraulic Suction Tubes</PARAC><PARAC>AMM TASK&nbsp;29-11-49-000-011-A Removal of the Hydraulic Pressure Tubes</PARAC><PARAC>AMM TASK&nbsp;29-11-49-000-012-A Removal of the Hydraulic Case Drain Tubes</PARAC></L3ITEM></LIST3><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸低压电门,按AMM TASK&nbsp;29-11-17-000-010-A Removal of the Engine Pump Pressure Switch。</PARAC><PARA>Removal of the Engine Pump Pressure Switch ref.AMM TASK&nbsp;29-11-17-000-010-A.</PARA></L2ITEM><L2ITEM><PARAC>拆下转接头(P/N:740-5777-501,AIPC 29-11-17-80A,ITEM 030)。</PARAC><PARA>Removal of the ADAPTOR.</PARA></L2ITEM><SIGNOFF/></LIST2></L1ITEM><L1ITEM><PARAC>拆卸附件区域火警线,按EM TASK 71-00-02-000-018-B00或AMM TASK&nbsp;26-12-15-000-010-B。</PARAC><PARA>Ref. EM TASK 71-00-02-000-018-B00 (A5-PPBU) or AMM TASK&nbsp;26-12-15-000-010-B- Remove The Accessory Zone Fire Detector.</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸核心机空气系统和空气系统传感器管路。</PARAC><PARA>Remove The Cabin Bleed Air System Ducts, Valves And Air System Sense Tubes.</PARA><LIST2><L2ITEM><PARAC>按EM TASK 71-00-02-000-015-B00 或</PARAC><PARAC>AMM TASK&nbsp;36-11-49-000-010-B Removal of the Upper Bleed Air Duct;</PARAC><PARAC>AMM TASK&nbsp;36-11-49-000-011-B Removal of the Y-Intersection Bleed Air Duct;</PARAC><PARAC>AMM TASK&nbsp;36-11-49-000-012-B Removal of the Lower Bleed Air Duct;</PARAC><PARAC>AMM TASK&nbsp;36-11-52-000-010-B Removal of the Bleed Pressure-Regulator Valve;</PARAC><PARAC>AMM TASK&nbsp;36-11-41-000-010-A Removal of the Intermediate Pressure (IP) Bleed Check Valve;</PARAC><PARAC>AMM TASK&nbsp;36-11-51-000-010-A Removal of the HP Bleed Valve;</PARAC><PARAC>AMM TASK&nbsp;36-21-49-000-010-B Removal of the Pressure Indicating Tubes。</PARAC></L2ITEM></LIST2><SIGNOFF/></L1ITEM><L1ITEM><LIST2><L2ITEM><PARAC>拆卸起动机,起动活门及起动空气管路。</PARAC><PARA>Remove The Pneumatic Starter Ducts, The Pneumatic Starter And The Pneumatic Starter Valve.</PARA><LIST3><L3ITEM><PARAC>按EM TASK 71-00-02-000-014-B00 或</PARAC><PARAC>AMM TASK&nbsp;80-13-41-000-010-A Removal of the Starter</PARAC><PARAC>AMM TASK&nbsp;80-13-51-000-010-B Removal of the Pneumatic Starter Valve</PARAC><PARAC>AMM TASK&nbsp;80-13-49-000-010-B Removal of the Starter Duct</PARAC></L3ITEM></LIST3><SIGNOFF/></L2ITEM><L2ITEM><PARAC>拆卸起动机底座,按EM TASK 71-00-02-000-017。</PARAC><PARA>Ref.EM TASK 71-00-02-000-017 (A1/A5-PPBU) - Remove The Pneumatic Starter And Housing Adapter.</PARA></L2ITEM></LIST2><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸核心机导线,按EM TASK 71-00-02-000-013-B00 或 AMM TASK&nbsp;71-52-41-000-010-B。</PARAC><PARA>Ref.EM TASK 71-00-02-000-013-B00 (A5-PPBU) or AMM TASK&nbsp;71-52-41-000-010-B- Remove The Fire Detection, The Nacelle Temperature And Cabin Services Harnesses.</PARA><NOTE><PARAC>QEC中的核心机导线由于备发已补齐,拆卸时可根据实际备发缺件情况完成。</PARAC><PARA>Core harnesses can be disassembled according to the actual situation of spare engines because of spare engines have a complete Core harnesses.</PARA></NOTE><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸余油盒,中介机匣以及低压压气机匣的余油管路。</PARAC><PARA>Remove The Drains Mast And The LP Compressor/Intermediate Case Module Drains.</PARA><LIST2><L2ITEM><PARAC>按EM TASK 71-00-02-000-021-B00 或</PARAC><PARAC>AMM TASK&nbsp;71-71-42-000-010-A Removal of the Drains Mast</PARAC><PARAC>AMM TASK&nbsp;71-71-43-000-010-A Removal of the Drain Tubes</PARAC></L2ITEM></LIST2><NOTE><PARAC>QEC中的余油盒,余油管路由于备发已补齐,拆卸时可根据实际备发缺件情况完成。</PARAC><PARA>Drains Mast and Drain Tubes can be disassembled according to the actual situation of spare engines because of spare engines have a complete Drains Mast and Drain Tubes.</PARA></NOTE><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸核心区火警探测器及短舱温度探测器。</PARAC><PARA>Remove The Core Fire Detectors and Nacelle Temperature Sensor.</PARA><LIST2><L2ITEM><PARAC>按EM TASK 71-00-02-000-001-B00 或</PARAC><PARAC>AMM TASK&nbsp;26-12-17-000-010-A Removal of the Core Fire Detectors</PARAC><PARAC>AMM TASK&nbsp;75-41-15-000-010-B Removal of the Nacelle Temperature Sensor</PARAC></L2ITEM></LIST2><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸锁销开关,按EM TASK 71-00-02-000-020-B00 或 AMM TASK&nbsp;78-32-56-000-010-A。</PARAC><PARA>Ref.EM TASK 71-00-02-000-020-B00 (A5-PPBU) or AMM TASK&nbsp;78-32-56-000-010-A Remove The Open Latch Indicator.</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸燃油供油管,按EM TASK 71-00-02-000-022-B00 或AMM TASK&nbsp;73-11-48-000-010-A。</PARAC><PARA>Ref.EM TASK 71-00-02-000-022-B00 (A5-PPBU) or AMM TASK&nbsp;73-11-48-000-010-A Removal of the Power Plant Flexible Fuel Tubes.</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸油气分离器通气管,按EM TASK 71-00-02-000-023-B00或AMM TASK&nbsp;72-61-49-000-010-B。</PARAC><PARA>Ref.EM TASK 71-00-02-000-023-B00 (A5-PPBU) or AMM TASK&nbsp;72-61-49-000-010-B Remove The Gearbox Deoiler Breather Duct (GBOD).</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸P2/T2探头软管组件,按EM TASK 71-00-02-000-009或AMM TASK&nbsp;73-22-48-000-010-A。</PARAC><PARA>Ref.EM TASK 71-00-02-000-009 (A1/A5-PPBU) or AMM TASK&nbsp;73-22-48-000-010-A Remove The P2/T2 Probe Hose Assembly.</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>拆卸尾喷承力座,按EM TASK 71-00-02-000-025。</PARAC><PARA>Ref.EM TASK 71-00-02-000-025 (A1/A5-PPBU) - Remove The Load Share Fittings.</PARA><SIGNOFF/></L1ITEM><L1ITEM><PARAC>结束工作</PARAC><PARA>Finish Work</PARA><LIST2><L2ITEM><PARAC>按照EB-2020-V250-70-201最新版,完成发动机的入库检查。</PARAC><PARA>Finish the engine incoming check ref thelatest version of EB-2020-V250-70-201.</PARA></L2ITEM><L2ITEM><PARAC>将发动机拖离工作位。参考EM TASK 71-00-00-560-002。</PARAC><PARA>Drag the engine off the working position. Ref EM TASK 71-00-00-560-002 Move The Engine From The Support Pedestals To The Transportation Stand, Handling-002.</PARA></L2ITEM><L2ITEM><PARAC>在发动机安装托架工作结束后,需按照EB-2016-V250-72-202最新版中的要求完成托架的检查与上传。</PARAC><PARA>After the engine mounting bracket is finished, Inspection on stand of engine transportation according to the requirements of EB-2016-V250-72-202 the latest version.</PARA></L2ITEM></LIST2><SIGNOFF/></L1ITEM></LIST1></STEP><STEP><EFFECT EFFRG="001999"></EFFECT><PARAC>发动机QEC零件故检,清洗,集件和导线修理</PARAC><PARA>Remove the Engine's QEC</PARA><LIST1><L1ITEM><PARAC>使用清洗剂清洗拆下QEC件</PARAC><PARA>Clean all QEC parts with cleanser.</PARA></L1ITEM><L1ITEM><PARAC>检查右侧空气系统管路,对开口处堵上堵盖。参考EM 71-00-02。</PARAC><PARA>Inspect the air system tubes which installed on the engine&rsquo;s right side, Ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>检查右侧灭火系统管路,对开口处堵上堵盖。参考EM 71-00-02。</PARAC><PARA>Inspect the system tubes which installed on the engine&rsquo;s right side, Ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>检查左侧液压系统管路,对开口处堵上堵盖。参考EM 71-00-02。</PARAC><PARA>Inspect the hydraulic system tubes and hoses which installed on the engine&rsquo;s right side, Ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>检查右侧燃油总管,对开口处堵上堵盖。参考EM 71-00-02。</PARAC><PARA>Inspect the main fuel supply hose tubes which installed on the engine&rsquo;s right side, Ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>检查右侧启动系统管路,对开口处堵上堵盖。参考EM 71-00-02。</PARAC><PARA>Inspect the start system tubes which installed on the engine&rsquo;s right side, Ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>目视检查IDG。对开口处堵上堵盖。</PARAC><PARA>Visual inspect IDG.</PARA></L1ITEM><L1ITEM><PARAC>目视检查液压泵。</PARAC><PARA>Visual inspect hydraulic pump.</PARA></L1ITEM><L1ITEM><PARAC>目视检查高压活门。对开口处堵上堵盖。</PARAC><PARA>Visual inspect high pressure bleed valve.</PARA></L1ITEM><L1ITEM><PARAC>目视检查调压活门。对开口处堵上堵盖。</PARAC><PARA>Visual inspect pressure regulate valve.</PARA></L1ITEM><L1ITEM><PARAC>目视检查起动机。对开口处堵上堵盖。</PARAC><PARA>Visual inspect thrust reverse valve.</PARA></L1ITEM><L1ITEM><PARAC>目视检查防冰活门和管路。对开口处堵上堵盖。</PARAC><PARA>Visual inspect anti-ice valve and tubes.</PARA></L1ITEM><L1ITEM><PARAC>目视检查所有安装卡圈。参考EM 71-00-02。</PARAC><PARA>Visual inspect all the clamps, ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>目视检查所有支架。参考EM手册71-00-02。</PARAC><PARA>Visual inspect all the brackets, ref EM manual 71-00-02.</PARA></L1ITEM><L1ITEM><PARAC>一般目视检查导线及卡子组件,如有故障填写故障处理单并进行排故处理,给未连接插头堵上堵盖。</PARAC><PARA>Inspect the wires and clamps, if anything wrong is found, please fill the maintenance fault table.</PARA></L1ITEM></LIST1><SIGNOFF/></STEP></TOPIC><TOPIC CK-LEVEL="C"><TITLEC>收尾</TITLEC><TITLE>CLOSE UP</TITLE><SUBTASK CHAPNBR="99" FUNC="999" KEY="EN-SF874" SECTNBR="99" SEQ="999" SUBJNBR="99"><LIST1><L1ITEM><RECORD-LINE><PARAC>故障处理单记录:</PARAC><PARA>Non-routine card record:</PARA><RECORD MANDATORY="N" MULTI="N" TAG="SMNRC"></RECORD></RECORD-LINE><RECORD-LINE><PARAC>缺陷处理单记录:</PARAC><PARA>Defect card record:</PARA><RECORD></RECORD></RECORD-LINE><NOTE><PARAC>对实施工作中生成的故障/缺陷处理单,工作者应记录处理单号及相应的工序。完成的故障/缺陷处理单与本工作单卡一并保存。 如未生成故障/缺陷处理单,工作者应在记录中注明。</PARAC><PARA>For Non-routine cards found during the work process, the mechanic should note down the report; Non-routine card number and the corresponding work procedure. The Non-routine card should be kept together with this generating task card.N/A should be written if no such report sheet is generated.</PARA></NOTE><RECORD-LINE><PARAC>最终工作结论:</PARAC><PARA>Final conclusion:</PARA><RECORD></RECORD><PARAC>完成日期:</PARAC><PARA>Date accomplished:</PARA><RECORD MANDATORY="N" TAG="SMCMPDT"></RECORD></RECORD-LINE></L1ITEM></LIST1><SIGNOFF/></SUBTASK></TOPIC></CEP></JOBCARD>
\ No newline at end of file
...@@ -5,6 +5,7 @@ const routes: Array<RouteRecordRaw> = [ ...@@ -5,6 +5,7 @@ const routes: Array<RouteRecordRaw> = [
path: '/', path: '/',
component: () => import(/* webpackChunkName: "Layout" */ '@/views/layout/index.vue'), component: () => import(/* webpackChunkName: "Layout" */ '@/views/layout/index.vue'),
name: 'Layout', name: 'Layout',
redirect: '/editor',
children: [ children: [
{ {
path: '/404', path: '/404',
...@@ -19,10 +20,16 @@ const routes: Array<RouteRecordRaw> = [ ...@@ -19,10 +20,16 @@ const routes: Array<RouteRecordRaw> = [
}, },
{ {
path: '/theme', path: '/theme',
component: () => import(/* webpackChunkName: "Login" */ '@/views/example/theme.vue'), component: () => import(/* webpackChunkName: "Theme" */ '@/views/example/theme.vue'),
name: 'Theme', name: 'Theme',
meta: { title: '主题' }, meta: { title: '主题' },
children: [] children: []
},
{
path: '/editor',
name: 'Editor',
component: () => import(/* webpackChunkName: "Editor" */ '@/views/editor/index.vue'),
meta: { title: '在线编辑器' }
} }
] ]
}, },
......
...@@ -28,6 +28,10 @@ const useAppStore = defineStore('app', { ...@@ -28,6 +28,10 @@ const useAppStore = defineStore('app', {
const cssVarName = `--${key.replace(/([A-Z])/g, '-$1').toLowerCase()}` const cssVarName = `--${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`
document.body.style.setProperty(cssVarName, value as string) document.body.style.setProperty(cssVarName, value as string)
} }
document.body.style.setProperty('--w-e-textarea-bg-color', themeData.baseColor)
document.body.style.setProperty('--w-e-toolbar-bg-color', themeData.baseColor)
document.body.style.setProperty('--w-e-textarea-color', themeData.textColorBase)
document.body.style.setProperty('--w-e-toolbar-border-color', themeData.borderColor)
} }
}, },
persist: false persist: false
......
<template>
<div class="z-10 h-full flex flex-col">
<!-- 工具栏 -->
<Toolbar :editor="editorRef" :editorId="editorId" class="border-b border-solid border-borderColor" />
<!-- 编辑器 -->
<div class="p-[15px] flex flex-1 overflow-hidden">
<slot name="left"></slot>
<n-card class="flex-1" content-class="h-full !p-0">
<Editor
v-model="valueHtml"
:defaultConfig="editorConfig"
:editorId="editorId"
:style="editorStyle"
@on-change="handleChange"
@on-created="handleCreated"
/>
</n-card>
</div>
</div>
</template>
<script setup lang="ts">
import { IDomEditor, IEditorConfig } from '@wangeditor/editor'
// @ts-ignore
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
import { isNumber } from 'lodash'
type InsertFnType = (url: string, alt: string, href: string) => void
const ps = defineProps({
modelValue: {
type: String,
default: ''
},
editorId: {
type: String,
default: 'wangeEditor-1'
},
url: {
type: String,
default: ''
},
height: {
type: [String, Number],
default: '100%'
},
editorConfig: {
type: Object,
default: () => {
return undefined
}
},
readonly: {
type: Boolean,
default: false
}
})
const es = defineEmits(['change', 'created', 'update:modelValue'])
// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef<IDomEditor>()
const valueHtml = ref('')
watch(
() => ps.modelValue,
(val: string) => {
if (val === unref(valueHtml)) return
valueHtml.value = val
},
{
immediate: true
}
)
// 监听
watch(
() => valueHtml.value,
(val: string) => {
es('update:modelValue', val)
}
)
const handleCreated = (editor: IDomEditor) => {
editorRef.value = editor
es('created', editor)
}
// 编辑器配置
const message = useMessage()
const editorConfig = computed((): IEditorConfig => {
return Object.assign(
{
placeholder: '请输入内容...',
readOnly: ps.readonly,
customAlert: (s: string, t: string) => {
switch (t) {
case 'success':
message.success(s)
break
case 'info':
message.info(s)
break
case 'warning':
message.warning(s)
break
case 'error':
message.error(s)
break
default:
message.info(s)
break
}
},
autoFocus: false,
scroll: true,
MENU_CONF: {
['uploadImage']: {
server: ps.url,
// 单个文件的最大体积限制,默认为 2M
maxFileSize: 5 * 1024 * 1024,
// 最多可上传几个文件,默认为 100
maxNumberOfFiles: 10,
// 选择文件时的类型限制,默认为 ['image/*'] 。如不想限制,则设置为 []
allowedFileTypes: ['image/*'],
// 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。
meta: { updateSupport: 0 },
// 将 meta 拼接到 url 参数中,默认 false
metaWithUrl: true,
// 自定义增加 http header
headers: {
Accept: '*',
Authorization: `Bearer`
},
// 跨域是否传递 cookie ,默认为 false
withCredentials: true,
// 超时时间,默认为 10 秒
timeout: 5 * 1000, // 5 秒
// form-data fieldName,后端接口参数名称,默认值wangeditor-uploaded-image
fieldName: 'file',
// 上传之前触发
onBeforeUpload(file: File) {
console.log(file)
return file
},
// 上传进度的回调函数
onProgress(progress: number) {
// progress 是 0-100 的数字
console.log('progress', progress)
},
onSuccess(file: File, res: any) {
console.log('onSuccess', file, res)
},
onFailed(file: File, res: any) {
alert(res.message)
console.log('onFailed', file, res)
},
onError(file: File, err: any, res: any) {
alert(err.message)
console.error('onError', file, err, res)
},
// 自定义插入图片
customInsert(res: any, insertFn: InsertFnType) {
insertFn(res.data, 'image', res.data)
}
}
},
uploadImgShowBase64: true
},
ps.editorConfig || {}
)
})
const editorStyle = computed(() => {
return {
height: isNumber(ps.height) ? `${ps.height}px` : ps.height
}
})
// 回调函数
const handleChange = (editor: IDomEditor) => {
es('change', editor)
}
// 组件销毁时,及时销毁编辑器
onBeforeUnmount(() => {
const editor = unref(editorRef.value)
// 销毁,并移除 editor
editor?.destroy()
})
defineExpose({
editor: editorRef
})
</script>
<style src="@wangeditor/editor/dist/css/style.css"></style>
<template>
<div class="flex flex-col h-full">
<div class="p-[10px]">
<n-input v-model:value="searchKey" placeholder="搜索" />
</div>
<div class="flex-auto overflow-auto">
<n-tree :pattern="searchKey" :data="treeData" block-line />
</div>
</div>
</template>
<script setup lang="ts">
import { searchKey, treeData } from '../constants'
</script>
import type { TreeOption } from 'naive-ui'
// 菜单相关
export const searchKey = ref('')
export const treeData: TreeOption[] = [
{
label: '0',
key: '0',
children: [
{
label: '0-0',
key: '0-0',
children: [
{ label: '0-0-0', key: '0-0-0' },
{ label: '0-0-1', key: '0-0-1' }
]
},
{
label: '0-1',
key: '0-1',
children: [
{ label: '0-1-0', key: '0-1-0' },
{ label: '0-1-1', key: '0-1-1' }
]
}
]
},
{
label: '1',
key: '1',
children: [
{
label: '1-0',
key: '1-0',
children: [
{ label: '1-0-0', key: '1-0-0' },
{ label: '1-0-1', key: '1-0-1' }
]
},
{
label: '1-1',
key: '1-1',
children: [
{ label: '1-1-0', key: '1-1-0' },
{ label: '1-1-1', key: '1-1-1' }
]
}
]
}
]
//编辑器相关
export const editorRef = ref()
export const formData = reactive({
html: ''
})
import { IDomEditor } from '@wangeditor/editor'
export const handleEditor = (editor: IDomEditor) => {
console.log(editor)
// const headers = editor.getElemsByTypePrefix('header')
// const menu = headers.map((header: any) => {
// const title = SlateNode.string(header)
// return {
// title,
// key: header.id,
// type: header.type
// }
// })
// treeData.value = buildTree(menu)
}
<template>
<ContentEditor ref="editorRef" v-model="formData.html" @change="handleEditor" @created="handleEditor">
<template #left>
<n-card class="h-full min-w-[300px] max-w-[300px] mr-[15px]" content-class="bg-baseColor !p-0 overflow-hidden">
<ContentTree></ContentTree>
</n-card>
</template>
</ContentEditor>
</template>
<script setup lang="ts">
import ContentEditor from './components/ContentEditor.vue'
import ContentTree from './components/ContentTree.vue'
import { editorRef, formData } from './constants'
import { handleEditor } from './functions'
</script>
<style lang="less" scoped></style>
<template> <template>
<n-layout class="h-full overflow-hidden"> <n-layout class="h-full overflow-hidden">
<n-layout-header></n-layout-header> <n-layout-header></n-layout-header>
<n-layout-content content-class="flex flex-col flex-auto overflow-x-auto" class="h-full flex flex-col"> <n-layout-content content-class="flex flex-col flex-auto overflow-x-auto bg-codeColor" class="h-full flex flex-col">
<router-view></router-view> <router-view></router-view>
</n-layout-content> </n-layout-content>
<n-layout-footer></n-layout-footer> <n-layout-footer></n-layout-footer>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment