diff --git a/package.json b/package.json index ade5907..a444462 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "grow_com:build": "pnpm --filter grow_components build", "grow_icon:dev": "pnpm --filter grow_admin_icons dev", "grow_icon:build": "pnpm --filter grow_admin_icons build", + "grow_editor:dev": "pnpm --filter grow_editor dev", + "grow_editor:build": "pnpm --filter grow_editor build", "grow_des:dev": "pnpm --filter grow_designer dev", "grow_des:build": "pnpm --filter grow_designer build", "grow_rule:dev": "pnpm --filter grow_rule_engine dev", diff --git a/packages/grow_editor/.babelrc b/packages/grow_editor/.babelrc new file mode 100644 index 0000000..e0151a3 --- /dev/null +++ b/packages/grow_editor/.babelrc @@ -0,0 +1,32 @@ +{ + "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]], + "plugins": [ + "syntax-dynamic-import", + ["@vue/babel-plugin-jsx"], + "@babel/plugin-proposal-optional-chaining", + "@babel/plugin-proposal-nullish-coalescing-operator" + ], + "env": { + "utils": { + "presets": [ + [ + "env", + { + "loose": true, + "modules": "commonjs", + "targets": { + "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] + } + } + ] + ] + }, + "test": { + "plugins": ["istanbul"], + "presets": [["env", { "targets": { "node": "current" } }]] + }, + "esm": { + "presets": [["@babel/preset-env", { "modules": false }]] + } + } +} diff --git a/packages/grow_editor/README.md b/packages/grow_editor/README.md new file mode 100644 index 0000000..c9eb6e1 --- /dev/null +++ b/packages/grow_editor/README.md @@ -0,0 +1 @@ +开发中,暂无相关描述 \ No newline at end of file diff --git a/packages/grow_editor/package.json b/packages/grow_editor/package.json new file mode 100644 index 0000000..16d88d3 --- /dev/null +++ b/packages/grow_editor/package.json @@ -0,0 +1,27 @@ +{ + "name": "grow_editor", + "private": true, + "version": "1.0.0", + "description": "", + "author": "ZhQuella (Email:827265905@qq.com)", + "type": "module", + "license": "ISC", + "main": "./src/index.ts", + "scripts": { + "build": "rollup -c --environment NODE_ENV:production", + "dev": "rollup -c -w --environment NODE_ENV:development" + }, + "dependencies": { + "@codemirror/commands": "^6.5.0", + "@codemirror/lang-css": "^6.2.1", + "@codemirror/lang-html": "^6.4.9", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-sql": "^6.6.4", + "@codemirror/lang-vue": "^0.1.3", + "@codemirror/state": "^6.4.1", + "@codemirror/theme-one-dark": "^6.1.2", + "@codemirror/view": "^6.26.3", + "codemirror": "^6.0.1" + } +} diff --git a/packages/grow_editor/postcss.config.cjs b/packages/grow_editor/postcss.config.cjs new file mode 100644 index 0000000..5cbc2c7 --- /dev/null +++ b/packages/grow_editor/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +}; diff --git a/packages/grow_editor/rollup.config.mjs b/packages/grow_editor/rollup.config.mjs new file mode 100644 index 0000000..dcf5c06 --- /dev/null +++ b/packages/grow_editor/rollup.config.mjs @@ -0,0 +1,75 @@ +import path from "path"; +import { fileURLToPath } from 'url'; +import { defineConfig } from "rollup"; +import babel from "@rollup/plugin-babel"; +import resolve from "@rollup/plugin-node-resolve"; +import esbuild from 'rollup-plugin-esbuild'; +import vue from "@vitejs/plugin-vue"; +import jsx from "@vitejs/plugin-vue-jsx"; +import json from "@rollup/plugin-json"; +import commonjs from "@rollup/plugin-commonjs"; +import { terser } from "rollup-plugin-terser"; +import peerDepsExternal from "rollup-plugin-peer-deps-external"; +import postcss from "rollup-plugin-postcss"; +import alias from "@rollup/plugin-alias"; +import postcssImport from 'postcss-import'; +import tailwindcss from 'tailwindcss'; +const __filenameNew = fileURLToPath(import.meta.url); +const __dirnameNew = path.dirname(__filenameNew); + +import pkg from "./package.json" assert { type: "json" }; + +const createBanner = () => { + return `/*! + * ${pkg.name} v${pkg.version} + * (c) ${new Date().getFullYear()} ${pkg.author} + * @license ${pkg.license} + */`; +}; + +export default defineConfig({ + input: "./src/index.ts", + output: [ + { + banner: createBanner(), + file: "dist/index.js", + format: "cjs" + }, + { + banner: createBanner(), + file: "dist/index.esm.js", + format: "esm", + exports: "named" + }, + { + banner: createBanner(), + file: "dist/index.umd.js", + format: "umd", + name: "w" + } + ], + plugins: [ + peerDepsExternal(), + vue({ + reactivityTransform: true + }), + postcss({ + extensions: [".css"], + extract: true, + plugins: [postcssImport(), tailwindcss()] + }), + commonjs(), + resolve({ + preferBuiltins: true + }), + babel(), + jsx(), + esbuild(), + json(), + terser(), + alias({ + entries: [{ find: "@", replacement: path.resolve(__dirnameNew, "src") }] + }) + ], + external: ["Vue", "element-plus"] +}); diff --git a/packages/grow_editor/shims.d.ts b/packages/grow_editor/shims.d.ts new file mode 100644 index 0000000..e0c94ea --- /dev/null +++ b/packages/grow_editor/shims.d.ts @@ -0,0 +1,17 @@ +declare const __DEV__: boolean; + +declare module "*.vue" { + import type { DefineComponent } from "vue"; + const comp: DefineComponent<{}, {}, any>; + export default comp; +} + +declare module "*.scss" { + const classes: string; + export default classes; +} + +declare module "*.module.scss" { + const classes: { readonly [key: string]: string }; + export default classes; +} diff --git a/packages/grow_editor/src/index.ts b/packages/grow_editor/src/index.ts new file mode 100644 index 0000000..d6d4cac --- /dev/null +++ b/packages/grow_editor/src/index.ts @@ -0,0 +1,35 @@ +import { App, Component } from "vue"; +import { version } from "../package.json"; + +import { GCodemirror } from "./packages/Codemirror"; + +import "animate.css"; +import "./styles/tailwindcss/index.css"; +import "./styles/animate/index.css"; + +const components: Component[] = [ + GCodemirror +]; + +const install = (app: App) => { + const useComponent = (component: Component) => { + if (component.name) { + app.component(component.name, component); + } else { + throw "component need name"; + } + }; + components.forEach((component: Component) => { + useComponent(component); + }); +}; + +const GrowConponent = { + version, + install, + GCodemirror +}; + +export { version, GCodemirror }; + +export default GrowConponent; diff --git a/packages/grow_editor/src/packages/Codemirror/GCodemirror.vue b/packages/grow_editor/src/packages/Codemirror/GCodemirror.vue new file mode 100644 index 0000000..cd2ba1c --- /dev/null +++ b/packages/grow_editor/src/packages/Codemirror/GCodemirror.vue @@ -0,0 +1,74 @@ + + + diff --git a/packages/grow_editor/src/packages/Codemirror/index.ts b/packages/grow_editor/src/packages/Codemirror/index.ts new file mode 100644 index 0000000..316af88 --- /dev/null +++ b/packages/grow_editor/src/packages/Codemirror/index.ts @@ -0,0 +1,3 @@ +import GCodemirror from './GCodemirror.vue'; + +export { GCodemirror }; diff --git a/packages/grow_editor/src/packages/Codemirror/use/initEditor.ts b/packages/grow_editor/src/packages/Codemirror/use/initEditor.ts new file mode 100644 index 0000000..6025792 --- /dev/null +++ b/packages/grow_editor/src/packages/Codemirror/use/initEditor.ts @@ -0,0 +1,31 @@ +import { ref } from "vue"; + +import { EditorState } from "@codemirror/state"; +import { basicSetup } from "codemirror"; +import { EditorView, keymap } from "@codemirror/view"; +import { defaultKeymap } from "@codemirror/commands"; +// import { oneDark } from "@codemirror/theme-one-dark"; + +export const initEditor = () => { + + const editorView = ref(); + + const resetEditor = (parent: HTMLDivElement, method): void => { + editorView.value = new EditorView({ + state: EditorState.create({ + doc: "", + extensions: [ + basicSetup, + keymap.of(defaultKeymap), + method() + ] + }), + parent + }); + } + + return { + resetEditor, + editorView + } +} diff --git a/packages/grow_editor/src/packages/Codemirror/use/useEvent.ts b/packages/grow_editor/src/packages/Codemirror/use/useEvent.ts new file mode 100644 index 0000000..fa28c8c --- /dev/null +++ b/packages/grow_editor/src/packages/Codemirror/use/useEvent.ts @@ -0,0 +1,23 @@ + + +export const useEvent = ({ + editorView, + codeEditor, + resetEditor, editorValue +}) => { + + const onModelChange = (value) => { + codeEditor.value.innerHTML = ""; + resetEditor(codeEditor.value, value.method); + }; + + const onCleanEditor= () => { + codeEditor.value.innerHTML = ""; + resetEditor(codeEditor.value, editorValue.value.method); + } + + return { + onCleanEditor, + onModelChange + } +} diff --git a/packages/grow_editor/src/static/dict.ts b/packages/grow_editor/src/static/dict.ts new file mode 100644 index 0000000..f3bcb8f --- /dev/null +++ b/packages/grow_editor/src/static/dict.ts @@ -0,0 +1,39 @@ +import { javascript } from "@codemirror/lang-javascript"; +import { vue } from "@codemirror/lang-vue"; +import { css } from "@codemirror/lang-css"; +import { json } from "@codemirror/lang-json"; +import { html } from "@codemirror/lang-html"; +import { sql } from "@codemirror/lang-sql"; + +export const selectMap = [ + { + label: "JavaScript", + value: "javascript", + method: javascript + }, + { + label: "Css", + value: "css", + method: css + }, + { + label: "Vue", + value: "vue", + method: vue + }, + { + label: "HTML", + value: "html", + method: html + }, + { + label: "SQL", + value: "sql", + method: sql + }, + { + label: "Json", + value: "json", + method: json + } +]; \ No newline at end of file diff --git a/packages/grow_editor/src/styles/animate/index.css b/packages/grow_editor/src/styles/animate/index.css new file mode 100644 index 0000000..23b45cf --- /dev/null +++ b/packages/grow_editor/src/styles/animate/index.css @@ -0,0 +1,3 @@ +:root { + --animate-duration: 0.35s; +} diff --git a/packages/grow_editor/src/styles/tailwindcss/index.css b/packages/grow_editor/src/styles/tailwindcss/index.css new file mode 100644 index 0000000..46227aa --- /dev/null +++ b/packages/grow_editor/src/styles/tailwindcss/index.css @@ -0,0 +1,32 @@ +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; + +@layer base { + .theme-public { + --public-main-color: 64, 158, 255; + --public-main-dark-color: 51, 126, 204; + } + .theme-light { + --bg-color: 250, 250, 252; + --bg-color2: 245, 245, 246; + --bg-color3: 255, 255, 255; + --bg-card: 255, 255, 255; + --main-text: 51, 51, 51; + --text-light-1: 69, 68, 74; + --text-light-2: 140, 140, 140; + --border-color: 220, 223, 230; + --border-color2: 238, 238, 238; + } + .theme-dark { + --bg-color: 17, 24, 39; + --bg-color2: 22, 31, 50; + --bg-color3: 33, 33, 33; + --bg-card: 21, 21, 21; + --main-text: 217, 230, 235; + --text-light-1: 217, 230, 235; + --text-light-2: 196, 221, 230; + --border-color: 76, 77, 79; + --border-color2: 48, 48, 48; + } +} diff --git a/packages/grow_editor/src/vite-env.d.ts b/packages/grow_editor/src/vite-env.d.ts new file mode 100644 index 0000000..48a5f52 --- /dev/null +++ b/packages/grow_editor/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// + + diff --git a/packages/grow_editor/tailwind.config.cjs b/packages/grow_editor/tailwind.config.cjs new file mode 100644 index 0000000..8798ba2 --- /dev/null +++ b/packages/grow_editor/tailwind.config.cjs @@ -0,0 +1,97 @@ +module.exports = { + mode: "jit", + content: ["./index.html", "./src/**/*.{js,jsx,ts,tsx,vue}"], + safelist: ["theme-light", "theme-dark", "theme-public"], + important: true, + theme: { + screens: { + sm: "0px", + md: "768px", + lg: "1024px", + xl: "1280px" + }, + extend: { + colors: { + PUBLIC_MAIN_COLOR: withOpacity("--public-main-color"), + PUBLIC_MAIN_DARK_COLOR: withOpacity("--public-main-dark-color"), + BG_COLOR: withOpacity("--bg-color"), + BG_COLOR2: withOpacity("--bg-color2"), + BG_COLOR3: withOpacity("--bg-color3"), + BG_CARD: withOpacity("--bg-card"), + WHITE: withOpacity("--white"), + MAIN_TEXT: withOpacity("--main-text"), + TEXT_LIGHT1: withOpacity("--text-light-1"), + TEXT_LIGHT2: withOpacity("--text-light-2"), + BORDER_COLOR: withOpacity("--border-color"), + BORDER_COLOR2: withOpacity("--border-color2") + } + } + }, + variants: { + extend: {} + }, + plugins: [require("tailwindcss"), require("autoprefixer"), solveCover, createEnterPlugin(30)] +}; + +function solveCover({ addBase }) { + addBase({ + ".el-button": { + "background-color": "var(--el-button-bg-color, var(--el-color-white))" + } + }); +} + +function withOpacity(variableName) { + return ({ opacityValue }) => { + if (opacityValue) { + return `rgba(var(${variableName}), ${opacityValue})`; + } + return `rgb(var(${variableName}))`; + }; +} + +function createEnterPlugin(maxOutput = 20) { + const createCss = (index, d = "x") => { + const upd = d.toUpperCase(); + return { + [`*> .enter-${d}:nth-child(${index})`]: { + transform: `translate${upd}(50px) translateZ(0)` + }, + [`*> .-enter-${d}:nth-child(${index})`]: { + transform: `translate${upd}(-50px) translateZ(0)` + }, + [`* > .enter-${d}:nth-child(${index}),* > .-enter-${d}:nth-child(${index})`]: { + "z-index": `${10 - index}`, + opacity: "0", + animation: `enter-${d}-animation 0.4s ease-in-out 0.3s`, + "animation-fill-mode": "forwards", + "animation-delay": `${(index * 1) / 10}s` + } + }; + }; + const handler = ({ addBase }) => { + const addRawCss = {}; + for (let index = 1; index < maxOutput; index++) { + Object.assign(addRawCss, { + ...createCss(index, "x"), + ...createCss(index, "y") + }); + } + addBase({ + ...addRawCss, + [`@keyframes enter-x-animation`]: { + to: { + opacity: "1", + transform: "translateX(0)" + } + }, + [`@keyframes enter-y-animation`]: { + to: { + opacity: "1", + transform: "translateY(0)" + } + } + }); + }; + return { handler }; +} diff --git a/packages/grow_editor/tsconfig.json b/packages/grow_editor/tsconfig.json new file mode 100644 index 0000000..7a19d80 --- /dev/null +++ b/packages/grow_editor/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "sourceMap": false, + "target": "esnext", + "module": "esnext", + "jsx": "preserve", + "moduleResolution": "node", + "strictNullChecks": true, + "declaration": true, + "noUnusedLocals": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "rootDir": ".", + "baseUrl": ".", + "lib": ["esnext", "dom"], + "types": ["node"], + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["./shims.d.ts", "src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/grow_editor/types/public.d.ts b/packages/grow_editor/types/public.d.ts new file mode 100644 index 0000000..a88bb46 --- /dev/null +++ b/packages/grow_editor/types/public.d.ts @@ -0,0 +1,5 @@ + +export interface Fn { + (...arg: T[]): R; +} + diff --git a/packages/grow_flow/src/index.ts b/packages/grow_flow/src/index.ts index b421641..c4bc0e6 100644 --- a/packages/grow_flow/src/index.ts +++ b/packages/grow_flow/src/index.ts @@ -1,13 +1,13 @@ import { App, Component } from "vue"; import { version } from "../package.json"; -import { WorkFlow } from "./packages/WorkFlow"; +import { GWorkFlow } from "./packages/GWorkFlow"; import "animate.css"; import "./styles/tailwindcss/index.css"; import "./styles/animate/index.css"; const components: Component[] = [ - WorkFlow + GWorkFlow ]; const install = (app: App) => { @@ -26,9 +26,9 @@ const install = (app: App) => { const GrowConponent = { version, install, - WorkFlow + GWorkFlow }; -export { version, WorkFlow }; +export { version, GWorkFlow }; export default GrowConponent; diff --git a/packages/grow_flow/src/packages/WorkFlow/WorkFlow.vue b/packages/grow_flow/src/packages/GWorkFlow/GWorkFlow.vue similarity index 99% rename from packages/grow_flow/src/packages/WorkFlow/WorkFlow.vue rename to packages/grow_flow/src/packages/GWorkFlow/GWorkFlow.vue index f651731..22f8ec9 100644 --- a/packages/grow_flow/src/packages/WorkFlow/WorkFlow.vue +++ b/packages/grow_flow/src/packages/GWorkFlow/GWorkFlow.vue @@ -94,7 +94,7 @@ diff --git a/packages/grow_up_admin/src/pages/AutomatedTool/ProcessEngine/index.vue b/packages/grow_up_admin/src/pages/AutomatedTool/ProcessEngine/index.vue index e9fce30..1480fbe 100644 --- a/packages/grow_up_admin/src/pages/AutomatedTool/ProcessEngine/index.vue +++ b/packages/grow_up_admin/src/pages/AutomatedTool/ProcessEngine/index.vue @@ -1,9 +1,9 @@ diff --git a/packages/grow_up_admin/src/plugins/style.plugin.ts b/packages/grow_up_admin/src/plugins/style.plugin.ts index bc39372..99b486e 100644 --- a/packages/grow_up_admin/src/plugins/style.plugin.ts +++ b/packages/grow_up_admin/src/plugins/style.plugin.ts @@ -3,6 +3,7 @@ import "style/tailwindcss/index.scss"; import "grow_components/dist/index.css"; import "grow_designer/dist/index.css"; import "grow_flow/dist/index.css"; +import "grow_editor/dist/index.css"; import "animate.css"; import "hover.css"; import "nprogress/nprogress.css"; diff --git a/packages/grow_up_admin/src/routers/authority.ts b/packages/grow_up_admin/src/routers/authority.ts index da30b04..dc4efc7 100644 --- a/packages/grow_up_admin/src/routers/authority.ts +++ b/packages/grow_up_admin/src/routers/authority.ts @@ -3,6 +3,7 @@ export default { AutomatedTool: ["admin"], PageDesigner: ["admin"], ProcessEngine: ["admin"], + OnlineEditor: ["admin"], dashboard: ["admin"], analysis: ["admin"], workbench: ["admin"], diff --git a/packages/grow_up_admin/src/routers/pages/AutomatedTool.ts b/packages/grow_up_admin/src/routers/pages/AutomatedTool.ts index 38cfa8d..ecccaec 100644 --- a/packages/grow_up_admin/src/routers/pages/AutomatedTool.ts +++ b/packages/grow_up_admin/src/routers/pages/AutomatedTool.ts @@ -17,6 +17,13 @@ export default [ icon: "FlowModeler", path: "process-engine", component: "AutomatedTool/ProcessEngine/index.vue" + }, + { + label: "在线编辑器", + name: "OnlineEditor", + icon: "Code", + path: "online-editor", + component: "AutomatedTool/OnlineEditor/index.vue" } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d8d18b..a300a1d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -267,6 +267,42 @@ importers: specifier: ^2.2.1 version: 2.2.1(sortablejs@1.15.0)(vue@3.3.0) + packages/grow_editor: + dependencies: + '@codemirror/commands': + specifier: ^6.5.0 + version: 6.5.0 + '@codemirror/lang-css': + specifier: ^6.2.1 + version: 6.2.1(@codemirror/view@6.26.3) + '@codemirror/lang-html': + specifier: ^6.4.9 + version: 6.4.9 + '@codemirror/lang-javascript': + specifier: ^6.2.2 + version: 6.2.2 + '@codemirror/lang-json': + specifier: ^6.0.1 + version: 6.0.1 + '@codemirror/lang-sql': + specifier: ^6.6.4 + version: 6.6.4(@codemirror/view@6.26.3) + '@codemirror/lang-vue': + specifier: ^0.1.3 + version: 0.1.3 + '@codemirror/state': + specifier: ^6.4.1 + version: 6.4.1 + '@codemirror/theme-one-dark': + specifier: ^6.1.2 + version: 6.1.2 + '@codemirror/view': + specifier: ^6.26.3 + version: 6.26.3 + codemirror: + specifier: ^6.0.1 + version: 6.0.1(@lezer/common@1.2.1) + packages/grow_flow: dependencies: '@antv/x6': @@ -328,6 +364,9 @@ importers: grow_designer: specifier: workspace:* version: link:../grow_designer + grow_editor: + specifier: workspace:^ + version: link:../grow_editor grow_flow: specifier: workspace:* version: link:../grow_flow @@ -1699,6 +1738,146 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@codemirror/autocomplete@6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1): + resolution: {integrity: sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + dev: false + + /@codemirror/commands@6.5.0: + resolution: {integrity: sha512-rK+sj4fCAN/QfcY9BEzYMgp4wwL/q5aj/VfNSoH1RWPF9XS/dUwBkvlL3hpWgEjOqlpdN1uLC9UkjJ4tmyjJYg==} + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + dev: false + + /@codemirror/lang-css@6.2.1(@codemirror/view@6.26.3): + resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.8 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-html@6.4.9: + resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.26.3) + '@codemirror/lang-javascript': 6.2.2 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.8 + '@lezer/html': 1.3.9 + dev: false + + /@codemirror/lang-javascript@6.2.2: + resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.7.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + '@lezer/javascript': 1.4.16 + dev: false + + /@codemirror/lang-json@6.0.1: + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/json': 1.0.2 + dev: false + + /@codemirror/lang-sql@6.6.4(@codemirror/view@6.26.3): + resolution: {integrity: sha512-n+FVfKGut+frOvor9dU5pFUalcP614WBNQ9IT1kOUj1t6LFLjWHi2I9DdxXnJuxqFV9jTyYF79coDV3ilSJqCw==} + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-vue@0.1.3: + resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} + dependencies: + '@codemirror/lang-html': 6.4.9 + '@codemirror/lang-javascript': 6.2.2 + '@codemirror/language': 6.10.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@codemirror/language@6.10.1: + resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + style-mod: 4.1.2 + dev: false + + /@codemirror/lint@6.7.1: + resolution: {integrity: sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + crelt: 1.0.6 + dev: false + + /@codemirror/search@6.5.6: + resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + crelt: 1.0.6 + dev: false + + /@codemirror/state@6.4.1: + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + dev: false + + /@codemirror/theme-one-dark@6.1.2: + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/highlight': 1.2.0 + dev: false + + /@codemirror/view@6.26.3: + resolution: {integrity: sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==} + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + dev: false + /@ctrl/tinycolor@3.6.0: resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} engines: {node: '>=10'} @@ -2296,6 +2475,54 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@lezer/common@1.2.1: + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + dev: false + + /@lezer/css@1.1.8: + resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.2.1 + dev: false + + /@lezer/html@1.3.9: + resolution: {integrity: sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/javascript@1.4.16: + resolution: {integrity: sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/json@1.0.2: + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/lr@1.4.0: + resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} + dependencies: + '@lezer/common': 1.2.1 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3418,6 +3645,20 @@ packages: engines: {node: '>=6.0'} dev: true + /codemirror@6.0.1(@lezer/common@1.2.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/commands': 6.5.0 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.7.1 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + transitivePeerDependencies: + - '@lezer/common' + dev: false + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -3511,6 +3752,10 @@ packages: readable-stream: 3.6.2 dev: false + /crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + dev: false + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -5531,6 +5776,10 @@ packages: engines: {node: '>=8'} dev: true + /style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + dev: false + /sucrase@3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} @@ -5876,6 +6125,10 @@ packages: '@vue/server-renderer': 3.3.0(vue@3.3.0) '@vue/shared': 3.3.0 + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + dev: false + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} diff --git a/scripts/build.js b/scripts/build.js index c703105..7a75a7f 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -5,6 +5,7 @@ async function buildAll() { await execa("pnpm", ["run", "grow_des:build"], { stdio: "inherit" }); await execa("pnpm", ["run", "grow_flow:build"], { stdio: "inherit" }); await execa("pnpm", ["run", "grow_icon:build"], { stdio: "inherit" }); + await execa("pnpm", ["run", "grow_editor:build"], { stdio: "inherit" }); await execa("pnpm", ["run", "grow_utils:build"], { stdio: "inherit" }); await execa("pnpm", ["run", "grow_admin:build"], { stdio: "inherit" }); } diff --git a/scripts/dev.js b/scripts/dev.js index bb19bf9..d04ef0f 100644 --- a/scripts/dev.js +++ b/scripts/dev.js @@ -5,6 +5,7 @@ async function buildAll() { execa("pnpm", ["run", "grow_des:dev"], { stdio: "inherit" }); execa("pnpm", ["run", "grow_flow:dev"], { stdio: "inherit" }); execa("pnpm", ["run", "grow_icon:dev"], { stdio: "inherit" }); + execa("pnpm", ["run", "grow_editor:dev"], { stdio: "inherit" }); execa("pnpm", ["run", "grow_utils:dev"], { stdio: "inherit" }); execa("pnpm", ["run", "grow_admin:dev"], { stdio: "inherit" }); }