From 5d64a656d899890179c6f104179dd66af1616af8 Mon Sep 17 00:00:00 2001 From: Rizky Date: Thu, 11 Jan 2024 16:20:08 +0700 Subject: [PATCH] wip fix constrain --- app/web/package.json | 1 + .../ed/panel/popup/script/default-val.tsx | 1 + .../src/nova/ed/panel/popup/script/monaco.tsx | 102 ++++++++++++------ app/web/src/nova/vi/meta/comp/instantiate.tsx | 2 +- app/web/src/nova/vi/render/parts.tsx | 5 + .../src/nova/vi/render/script/eval-script.tsx | 12 ++- bun.lockb | Bin 267296 -> 267704 bytes 7 files changed, 89 insertions(+), 34 deletions(-) diff --git a/app/web/package.json b/app/web/package.json index 473868b8..4833a709 100644 --- a/app/web/package.json +++ b/app/web/package.json @@ -10,6 +10,7 @@ "@floating-ui/react": "^0.26.4", "@leeoniya/ufuzzy": "^1.0.14", "@minoru/react-dnd-treeview": "^3.4.4", + "constrained-editor-plugin": "^1.3.0", "@monaco-editor/react": "^4.6.0", "@paralleldrive/cuid2": "2.2.2", "react-contenteditable": "^3.3.7", diff --git a/app/web/src/nova/ed/panel/popup/script/default-val.tsx b/app/web/src/nova/ed/panel/popup/script/default-val.tsx index 02103319..1e2920c8 100644 --- a/app/web/src/nova/ed/panel/popup/script/default-val.tsx +++ b/app/web/src/nova/ed/panel/popup/script/default-val.tsx @@ -32,6 +32,7 @@ export const edMonacoDefaultVal = (p: PG, adv: FNAdv, mitem: MItem) => { const mprop = mprops.get(p.ui.popup.script.prop_name); if (mprop) { const kind = p.ui.popup.script.prop_kind; + if (kind === "value") { val = mprop.get("value"); } else if (kind === "gen") { diff --git a/app/web/src/nova/ed/panel/popup/script/monaco.tsx b/app/web/src/nova/ed/panel/popup/script/monaco.tsx index fdde076b..44b00d6c 100644 --- a/app/web/src/nova/ed/panel/popup/script/monaco.tsx +++ b/app/web/src/nova/ed/panel/popup/script/monaco.tsx @@ -12,6 +12,9 @@ import { getActiveMeta } from "../../../logic/active/get-meta"; import { EDGlobal, IMeta, active } from "../../../logic/ed-global"; import { edMonacoDefaultVal } from "./default-val"; import { declareScope } from "./scope/scope"; +import { Loading } from "../../../../../utils/ui/loading"; +// @ts-ignore +import { constrainedEditor } from "constrained-editor-plugin/dist/esm/constrainedEditor"; const scriptEdit = { timeout: null as any, @@ -57,6 +60,7 @@ export const EdScriptMonaco: FC<{}> = () => { const monaco = local.monaco; if (monaco && editor) { + const type = p.ui.popup.script.type; if (local.mode !== p.ui.popup.script.mode) { local.init = false; local.mode = p.ui.popup.script.mode; @@ -73,12 +77,14 @@ export const EdScriptMonaco: FC<{}> = () => { }); if (meta) { - if (!meta.item.adv) { - meta.item.adv = {}; - } + if (type === "item") { + if (!meta.item.adv) { + meta.item.adv = {}; + } - if (!meta.item.adv[p.ui.popup.script.mode]) { - meta.item.adv[p.ui.popup.script.mode] = val; + if (!meta.item.adv[p.ui.popup.script.mode]) { + meta.item.adv[p.ui.popup.script.mode] = val; + } } } @@ -95,18 +101,33 @@ export const EdScriptMonaco: FC<{}> = () => { { types: {}, values: {} } ); if (meta) { - if (p.ui.popup.script.type !== "prop-master") { + let end_hide = 0; + if (type === "prop-master") { + const nmodel = monaco.editor.createModel( + val, + "typescript", + monaco.Uri.parse("file:///active.tsx") + ); + editor.setModel(nmodel); + } else { const imports = declareScope(p, meta, monaco); - let cur = active.comp_id ? active.comp_id : "page"; monaco.editor.getModels().forEach((model) => { if ( + type === "item" && model.uri.path === `/${cur}_${active.item_id}_src_src.tsx` ) { editor.setModel(model); } - }); + if ( + type === "prop-instance" && + model.uri.path === + `/${cur}_${active.item_id}_prop_${p.ui.popup.script.prop_name}.tsx` + ) { + editor.setModel(model); + } + }); const model = editor.getModel(); if (!model) { const nmodel = monaco.editor.createModel( @@ -116,27 +137,38 @@ export const EdScriptMonaco: FC<{}> = () => { "typescript", monaco.Uri.parse("file:///active.tsx") ); - editor.setModel(nmodel); } - if (imports) { local.imports = imports; - const end = imports.split("\n").length + 1; - const range = new monaco.Range(1, 0, end, 0); + end_hide = imports.split("\n").length + 1; + const range = new monaco.Range(1, 0, end_hide, 0); (editor as any).setHiddenAreas([range]); } - } else { - const nmodel = monaco.editor.createModel( - val, - "typescript", - monaco.Uri.parse("file:///active.tsx") - ); - - editor.setModel(nmodel); } - await jsMount(editor, monaco, p); + + if (type === "prop-instance") { + const constrainedInstance = constrainedEditor(monaco); + constrainedInstance.initializeIn(editor); + const model = editor.getModel(); + constrainedInstance.removeRestrictionsIn(model); + const frange = model?.getFullModelRange(); + if (frange) { + const ranges = [ + { + range: [ + end_hide + 1, + `export const ${p.ui.popup.script.prop_name} = `.length, + frange.getEndPosition().lineNumber, + frange.getEndPosition().column, + ], + allowMultiline: true, + }, + ]; + constrainedInstance.addRestrictionsTo(model, ranges); + } + } } } else { const model = monaco.editor.createModel( @@ -219,9 +251,9 @@ export const EdScriptMonaco: FC<{}> = () => { } val = edMonacoDefaultVal(p, adv, mitem); - return ( } options={{ minimap: { enabled: false }, wordWrap: "wordWrapColumn", @@ -236,20 +268,29 @@ export const EdScriptMonaco: FC<{}> = () => { { css: "scss", js: "typescript", html: "html" }[p.ui.popup.script.mode] } onChange={(value) => { + const stype = p.ui.popup.script.type; if ((value || "").includes("/** IMPORT MODULE **/")) { const valparts = (value || "").split("/** IMPORT MODULE **/\n"); if (valparts.length === 2) local.value = valparts[1]; + if ( + stype === "prop-instance" && + local.value.includes( + `export const ${p.ui.popup.script.prop_name} = ` + ) + ) { + local.value = local.value.substring( + `export const ${p.ui.popup.script.prop_name} = `.length + ); + } } else { local.value = value || ""; } - local.render(); clearTimeout(scriptEdit.timeout); - const applyChanges = async () => { const value = local.value; const meta = getActiveMeta(p); - const type = p.ui.popup.script.mode; + const mode = p.ui.popup.script.mode; if (meta && meta.mitem) { let arg = {} as any; if (active.comp_id) { @@ -257,9 +298,8 @@ export const EdScriptMonaco: FC<{}> = () => { } else { arg.page_id = p.page.cur.id; } - let scope: boolean | ParsedScope = false; - if (p.ui.popup.script.type === "prop-master") { + if (stype === "prop-master") { p.sync.code.edit({ type: "prop-master", prop_kind: p.ui.popup.script.prop_kind, @@ -267,10 +307,10 @@ export const EdScriptMonaco: FC<{}> = () => { value: compress(encode.encode(value || "")), ...arg, }); - } else if (p.ui.popup.script.type === "prop-instance") { + } else if (stype === "prop-instance") { scope = await p.sync.code.edit({ type: "prop-instance", - mode: type, + mode: mode, prop_name: p.ui.popup.script.prop_name, item_id: active.item_id, value: compress(encode.encode(value || "")), @@ -279,19 +319,17 @@ export const EdScriptMonaco: FC<{}> = () => { } else { scope = await p.sync.code.edit({ type: "adv", - mode: type, + mode: mode, item_id: active.item_id, value: compress(encode.encode(value || "")), ...arg, }); } - if (typeof scope === "object") { meta.item.script = scope; } } }; - p.ui.popup.script.on_close = () => { clearTimeout(scriptEdit.timeout); applyChanges(); diff --git a/app/web/src/nova/vi/meta/comp/instantiate.tsx b/app/web/src/nova/vi/meta/comp/instantiate.tsx index b1a17fe4..5e8a920c 100644 --- a/app/web/src/nova/vi/meta/comp/instantiate.tsx +++ b/app/web/src/nova/vi/meta/comp/instantiate.tsx @@ -23,7 +23,7 @@ export const instantiate = (arg: { newitem.component.props[k].value = item.component.props[k].value; newitem.component.props[k].valueBuilt = item.component.props[k].valueBuilt; - + newitem.component.props[k].jsxCalledBy = item.component.props[k].jsxCalledBy; } diff --git a/app/web/src/nova/vi/render/parts.tsx b/app/web/src/nova/vi/render/parts.tsx index c9429e94..eb7a416e 100644 --- a/app/web/src/nova/vi/render/parts.tsx +++ b/app/web/src/nova/vi/render/parts.tsx @@ -51,6 +51,11 @@ export const viParts = ( props.children = children; + if (meta.item.adv?.js && !meta.item.adv.js.includes("children")) { + delete props.children; + delete props.dangerouslySetInnerHTML; + } + return { props, text_props, diff --git a/app/web/src/nova/vi/render/script/eval-script.tsx b/app/web/src/nova/vi/render/script/eval-script.tsx index fbb4e094..5319d873 100644 --- a/app/web/src/nova/vi/render/script/eval-script.tsx +++ b/app/web/src/nova/vi/render/script/eval-script.tsx @@ -69,7 +69,7 @@ export const viEvalScript = ( const fn = new Function( ...Object.keys(arg), `// ${meta.item.name}: ${meta.item.id} -${meta.item.adv?.jsBuilt || ""} +${replaceWithObject(meta.item.adv?.jsBuilt || "", replacement) || ""} ` ); fn(...Object.values(arg)); @@ -90,3 +90,13 @@ const JsxProp: FC<{ } return local.result; }; + +const replacement = { + "stroke-width": "strokeWidth", +}; + +const replaceWithObject = (tpl: string, data: any) => { + return tpl.replace(/\$\(([^\)]+)?\)/g, function ($1, $2) { + return data[$2]; + }); +}; diff --git a/bun.lockb b/bun.lockb index f4335ef4b3945a717e7421b9716bc759cc11f33b..6f5fb16f2a7e1ca59a728ead54580baa8e2128f9 100755 GIT binary patch delta 39440 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 GxBd^6JJlZm