@cniot/mdd-editor 0.3.8 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +4 -0
- package/build/index.cjs.js +101 -24
- package/build/index.es.js +352 -7
- package/build/style.css +1 -1
- package/package.json +1 -1
- package/src/ai/LocalAIDrawer.jsx +425 -3
package/build/index.es.js
CHANGED
|
@@ -26193,6 +26193,9 @@ var styles$b = {
|
|
|
26193
26193
|
const DRAG_KEY$2 = "PanelTitle";
|
|
26194
26194
|
const { Panel: Panel$3 } = Collapse;
|
|
26195
26195
|
const { Tooltip } = Balloon;
|
|
26196
|
+
const stopHeaderInputKeyboardEvent = (event) => {
|
|
26197
|
+
event.stopPropagation();
|
|
26198
|
+
};
|
|
26196
26199
|
const TitleRender$2 = (props) => {
|
|
26197
26200
|
const ref = useRef(null);
|
|
26198
26201
|
const {
|
|
@@ -26270,7 +26273,8 @@ const TitleRender$2 = (props) => {
|
|
|
26270
26273
|
size: "small",
|
|
26271
26274
|
value: label,
|
|
26272
26275
|
onChange: (v2) => titleChange("label", v2),
|
|
26273
|
-
|
|
26276
|
+
onKeyDown: stopHeaderInputKeyboardEvent,
|
|
26277
|
+
placeholder: "\u8F93\u5165\u5C55\u793A\u540D\u79F0"
|
|
26274
26278
|
}), titleType.includes("type") && /* @__PURE__ */ React$1.createElement("div", {
|
|
26275
26279
|
className: styles$b.itemComponent
|
|
26276
26280
|
}, /* @__PURE__ */ React$1.createElement("label", {
|
|
@@ -30436,7 +30440,11 @@ function getPageCode(schemaJson = {}, pageMeta = {}) {
|
|
|
30436
30440
|
const MIN_BRIDGE_VERSION = "0.1.4";
|
|
30437
30441
|
const START_COMMAND = `npm i -g @cniot/mdd-ai-bridge
|
|
30438
30442
|
mdd-ai-bridge`;
|
|
30443
|
+
const DEFAULT_MAIN_PROJECT_PATH = "/Users/caoruiqi/Documents/code/owtb/tms-mach36";
|
|
30444
|
+
const MAIN_PROJECT_PATH_STORAGE_KEY = "mdd-local-ai-i18n-main-project-path";
|
|
30439
30445
|
const trimEndSlash = (value = "") => value.replace(/\/+$/, "");
|
|
30446
|
+
const hasChineseText = (value = "") => /[\u4e00-\u9fff]/.test(String(value));
|
|
30447
|
+
const hasLetterText = (value = "") => /[a-zA-Z]/.test(String(value));
|
|
30440
30448
|
const parseSchema = (value) => {
|
|
30441
30449
|
if (!value)
|
|
30442
30450
|
return null;
|
|
@@ -30704,6 +30712,166 @@ const collectLinkedPageReferences = ({ schemaJson, scriptInfo, rootCode, extraSo
|
|
|
30704
30712
|
);
|
|
30705
30713
|
return mergeL4References([...schemaReferences, ...scriptReferences, ...extraReferences], rootCode);
|
|
30706
30714
|
};
|
|
30715
|
+
const I18N_SCHEMA_FIELDS = /* @__PURE__ */ new Set([
|
|
30716
|
+
"label",
|
|
30717
|
+
"tooltip",
|
|
30718
|
+
"title",
|
|
30719
|
+
"placeholder",
|
|
30720
|
+
"children",
|
|
30721
|
+
"text",
|
|
30722
|
+
"submitText",
|
|
30723
|
+
"resetText",
|
|
30724
|
+
"cancelText",
|
|
30725
|
+
"secondConfirmTitle",
|
|
30726
|
+
"secondConfirmContent",
|
|
30727
|
+
"emptyText",
|
|
30728
|
+
"moreText"
|
|
30729
|
+
]);
|
|
30730
|
+
const createI18nSchemaCandidates = (value, path = "$", candidates = []) => {
|
|
30731
|
+
if (Array.isArray(value)) {
|
|
30732
|
+
value.forEach((item, index2) => createI18nSchemaCandidates(item, `${path}[${index2}]`, candidates));
|
|
30733
|
+
return candidates;
|
|
30734
|
+
}
|
|
30735
|
+
if (!value || typeof value !== "object")
|
|
30736
|
+
return candidates;
|
|
30737
|
+
Object.keys(value).forEach((key) => {
|
|
30738
|
+
const nextPath = `${path}.${key}`;
|
|
30739
|
+
const item = value[key];
|
|
30740
|
+
if (typeof item === "string" && I18N_SCHEMA_FIELDS.has(key) && (hasChineseText(item) || hasLetterText(item))) {
|
|
30741
|
+
candidates.push({
|
|
30742
|
+
path: nextPath,
|
|
30743
|
+
field: key,
|
|
30744
|
+
text: item
|
|
30745
|
+
});
|
|
30746
|
+
}
|
|
30747
|
+
createI18nSchemaCandidates(item, nextPath, candidates);
|
|
30748
|
+
});
|
|
30749
|
+
return candidates;
|
|
30750
|
+
};
|
|
30751
|
+
const createScriptI18nPreview = (script = "") => {
|
|
30752
|
+
const seen = /* @__PURE__ */ new Set();
|
|
30753
|
+
const stringLikePattern = /(['"`])(?:(?!\1).)*[\u4e00-\u9fffA-Za-z](?:(?!\1).)*\1/;
|
|
30754
|
+
return String(script).split("\n").map((line, index2) => ({
|
|
30755
|
+
lineNumber: index2 + 1,
|
|
30756
|
+
line: line.trim()
|
|
30757
|
+
})).filter((item) => stringLikePattern.test(item.line)).filter((item) => hasChineseText(item.line) || hasLetterText(item.line)).filter((item) => {
|
|
30758
|
+
const key = item.line;
|
|
30759
|
+
if (seen.has(key))
|
|
30760
|
+
return false;
|
|
30761
|
+
seen.add(key);
|
|
30762
|
+
return true;
|
|
30763
|
+
}).slice(0, 40);
|
|
30764
|
+
};
|
|
30765
|
+
const formatI18nCandidateList = (items = []) => {
|
|
30766
|
+
if (!items.length)
|
|
30767
|
+
return "- \u6682\u672A\u5728\u7F16\u8F91\u5668\u5F53\u524D schema \u4E2D\u9884\u626B\u5230 label/tooltip \u7B49\u6587\u6848\uFF0C\u8BF7\u4ECD\u7136\u5B8C\u6574\u68C0\u67E5 mdd.schema.json\u3002";
|
|
30768
|
+
return items.slice(0, 80).map((item) => `- ${item.path} (${item.field}): ${item.text}`).join("\n");
|
|
30769
|
+
};
|
|
30770
|
+
const formatScriptPreviewList = (items = []) => {
|
|
30771
|
+
if (!items.length)
|
|
30772
|
+
return "- \u6682\u672A\u5728\u7F16\u8F91\u5668\u5F53\u524D script \u4E2D\u9884\u626B\u5230\u660E\u663E\u6587\u6848\u884C\uFF0C\u8BF7\u4ECD\u7136\u5B8C\u6574\u68C0\u67E5 mdd.script.jsx\u3002";
|
|
30773
|
+
return items.map((item) => `- L${item.lineNumber}: ${item.line}`).join("\n");
|
|
30774
|
+
};
|
|
30775
|
+
const formatLinkedI18nWorkspaceList = ({ linkedPages = {}, syncLinkedPages = false }) => {
|
|
30776
|
+
if (!syncLinkedPages) {
|
|
30777
|
+
return "\u672C\u6B21\u672A\u5F00\u542F\u9012\u5F52\u5B50\u9875\u9762\uFF0C\u53EA\u5904\u7406\u5F53\u524D L4 \u9875\u9762\u3002";
|
|
30778
|
+
}
|
|
30779
|
+
const pages = (linkedPages == null ? void 0 : linkedPages.pages) || [];
|
|
30780
|
+
const failed = (linkedPages == null ? void 0 : linkedPages.failed) || [];
|
|
30781
|
+
const syncedText = pages.length ? pages.map((page) => `- ${page.name || "\u672A\u547D\u540D\u9875\u9762"} (${page.code})\uFF1A${page.dir}`).join("\n") : "- \u672A\u53D1\u73B0\u5DF2\u540C\u6B65\u7684\u5173\u8054\u5B50\u9875\u9762\u3002";
|
|
30782
|
+
const failedText = failed.length ? `
|
|
30783
|
+
|
|
30784
|
+
\u9012\u5F52\u626B\u63CF\u4E2D\u6709\u4EE5\u4E0B\u5173\u8054\u9875\u9762\u672A\u80FD\u540C\u6B65\uFF0C\u8BF7\u4E0D\u8981\u4FEE\u6539\u8FD9\u4E9B\u9875\u9762\uFF0C\u6700\u540E\u62A5\u544A\u7ED9\u7528\u6237\uFF1A
|
|
30785
|
+
${failed.map((page) => `- ${page.name || "\u672A\u547D\u540D\u9875\u9762"} (${page.code})\uFF1A${page.reason || "\u672A\u80FD\u81EA\u52A8\u540C\u6B65"}`).join("\n")}` : "";
|
|
30786
|
+
return `\u672C\u6B21\u5DF2\u5F00\u542F\u9012\u5F52\u5B50\u9875\u9762\uFF0C\u8BF7\u540C\u65F6\u5904\u7406\u5F53\u524D\u9875\u9762\u548C\u4EE5\u4E0B\u5DF2\u540C\u6B65\u7684\u5173\u8054 L4 \u9875\u9762\u3002\u6BCF\u4E2A\u9875\u9762\u76EE\u5F55\u90FD\u5305\u542B mdd.schema.json \u548C mdd.script.jsx\uFF1A
|
|
30787
|
+
${syncedText}${failedText}`;
|
|
30788
|
+
};
|
|
30789
|
+
const buildL4I18nPrompt = ({
|
|
30790
|
+
pageCode,
|
|
30791
|
+
workspacePath,
|
|
30792
|
+
mainProjectPath,
|
|
30793
|
+
schemaJson,
|
|
30794
|
+
scriptInfo,
|
|
30795
|
+
linkedPages,
|
|
30796
|
+
syncLinkedPages
|
|
30797
|
+
}) => {
|
|
30798
|
+
const normalizedProjectPath = trimEndSlash(mainProjectPath || "");
|
|
30799
|
+
const schemaCandidates = createI18nSchemaCandidates(schemaJson);
|
|
30800
|
+
const scriptPreview = createScriptI18nPreview(scriptInfo);
|
|
30801
|
+
const linkedWorkspaceText = formatLinkedI18nWorkspaceList({
|
|
30802
|
+
linkedPages,
|
|
30803
|
+
syncLinkedPages
|
|
30804
|
+
});
|
|
30805
|
+
return `\u4F60\u73B0\u5728\u8981\u4E3A\u4E00\u4E2A MDD L4 \u9875\u9762\u505A\u591A\u8BED\u8A00\u540C\u6B65\u3002\u8BF7\u76F4\u63A5\u4FEE\u6539\u672C\u5730\u6587\u4EF6\uFF0C\u4E0D\u8981\u53EA\u7ED9\u5EFA\u8BAE\u3002
|
|
30806
|
+
|
|
30807
|
+
\u5F53\u524D L4 \u9875\u9762\uFF1A
|
|
30808
|
+
- \u9875\u9762 Code\uFF1A${pageCode}
|
|
30809
|
+
- L4 \u5DE5\u4F5C\u533A\uFF1A${workspacePath}
|
|
30810
|
+
- Schema \u6587\u4EF6\uFF1A${workspacePath}/mdd.schema.json
|
|
30811
|
+
- Script \u6587\u4EF6\uFF1A${workspacePath}/mdd.script.jsx
|
|
30812
|
+
|
|
30813
|
+
\u9012\u5F52\u5B50\u9875\u9762\uFF1A
|
|
30814
|
+
${linkedWorkspaceText}
|
|
30815
|
+
|
|
30816
|
+
\u4E3B\u5DE5\u7A0B\uFF1A
|
|
30817
|
+
- \u5DE5\u7A0B\u6839\u76EE\u5F55\uFF1A${normalizedProjectPath}
|
|
30818
|
+
- \u82F1\u6587\u8BCD\u6761\uFF1A${normalizedProjectPath}/src/i18n/strings/en-US.json
|
|
30819
|
+
- \u8D8A\u5357\u8BED\u8BCD\u6761\uFF1A${normalizedProjectPath}/src/i18n/strings/vi-VN.json
|
|
30820
|
+
|
|
30821
|
+
\u76EE\u6807\uFF1A
|
|
30822
|
+
1. \u626B\u63CF\u5F53\u524D L4 \u9875\u9762${syncLinkedPages ? "\u4EE5\u53CA\u4E0A\u9762\u5217\u51FA\u7684\u6240\u6709\u5DF2\u540C\u6B65\u5173\u8054\u5B50 L4 \u9875\u9762" : ""}\u7684 mdd.schema.json\uFF0C\u5904\u7406\u6240\u6709\u9762\u5411\u7528\u6237\u5C55\u793A\u7684\u6587\u6848\uFF0C\u4E0D\u9650\u4E2D\u6587\uFF1B\u82F1\u6587 UI \u6587\u6848\u4E5F\u5FC5\u987B\u5904\u7406\u3002\u91CD\u70B9\u5305\u62EC label\u3001tooltip\uFF0C\u4E5F\u5305\u62EC title\u3001placeholder\u3001children\u3001text\u3001submitText\u3001resetText\u3001cancelText\u3001secondConfirmTitle\u3001secondConfirmContent \u7B49\u540C\u7C7B\u5B57\u6BB5\u3002
|
|
30823
|
+
2. \u82F1\u6587 label/tooltip \u4E5F\u5C5E\u4E8E\u9700\u8981\u540C\u6B65\u7684\u6587\u6848\uFF0C\u4F8B\u5982 ResourceId\u3001ResourceName\u3001Status\u3001id\u3001edit template\u3001enable\u3001disable\u3001edit\u3001Add template \u7B49\uFF0C\u90FD\u8981\u4F5C\u4E3A i18n key \u53BB\u68C0\u67E5 en-US.json \u548C vi-VN.json\u3002
|
|
30824
|
+
3. \u626B\u63CF\u5F53\u524D L4 \u9875\u9762${syncLinkedPages ? "\u4EE5\u53CA\u4E0A\u9762\u5217\u51FA\u7684\u6240\u6709\u5DF2\u540C\u6B65\u5173\u8054\u5B50 L4 \u9875\u9762" : ""}\u7684 mdd.script.jsx\uFF0C\u627E\u51FA JSX\u3001\u5F39\u7A97\u3001\u6309\u94AE\u3001\u6D88\u606F\u63D0\u793A\u3001\u8868\u683C\u5217\u3001\u9009\u9879\u3001\u9519\u8BEF\u63D0\u793A\u7B49\u7528\u6237\u53EF\u89C1\u786C\u7F16\u7801\u6587\u6848\u3002\u4E2D\u6587\u3001\u82F1\u6587\u3001\u82F1\u6587\u77ED\u8BED\u3001\u6570\u5B57/\u82F1\u6587\u6DF7\u5408\u77ED\u8BED\u90FD\u7B97\u7528\u6237\u53EF\u89C1\u6587\u6848\u3002
|
|
30825
|
+
4. \u5BF9 mdd.script.jsx \u4E2D\u672A\u56FD\u9645\u5316\u7684\u7528\u6237\u53EF\u89C1\u786C\u7F16\u7801\u6587\u6848\uFF0C\u5F15\u5165\u5E76\u4F7F\u7528 $i18n \u5305\u88F9\u3002\u82E5\u6587\u4EF6\u8FD8\u6CA1\u6709 import\uFF0C\u8BF7\u6DFB\u52A0\uFF1A
|
|
30826
|
+
import $i18n from '@src/i18n';
|
|
30827
|
+
\u4F7F\u7528\u65B9\u5F0F\u4E3A $i18n.get('\u6587\u6848 key')\u3002\u4E0D\u8981\u5904\u7406\u6CE8\u91CA\u3001\u65E5\u5FD7\u3001\u63A5\u53E3\u5B57\u6BB5\u540D\u3001\u5BF9\u8C61 key\u3001\u8DEF\u5F84\u3001\u57CB\u70B9 code\u3001\u975E\u7528\u6237\u53EF\u89C1\u6587\u672C\u3002
|
|
30828
|
+
5. mdd.schema.json \u4E2D\u7684 label/tooltip \u7B49 key \u901A\u5E38\u7531 MDD \u6E32\u67D3\u5F15\u64CE\u81EA\u52A8 i18n.tr \u5904\u7406\uFF0C\u539F\u5219\u4E0A\u4FDD\u7559 schema \u539F\u59CB\u6587\u6848 key\uFF0C\u4E0D\u8981\u4E3A\u4E86\u56FD\u9645\u5316\u968F\u610F\u6539 schema \u7ED3\u6784\uFF1B\u53EA\u9700\u8981\u4E3A\u8FD9\u4E9B key \u8865\u9F50\u4E3B\u5DE5\u7A0B\u7FFB\u8BD1\u8BCD\u6761\u3002
|
|
30829
|
+
6. \u5C06\u6240\u6709\u9700\u8981\u7FFB\u8BD1\u7684\u6587\u6848 key \u53BB\u91CD\u540E\uFF0C\u540C\u6B65\u5230\u4E3B\u5DE5\u7A0B\u7684 en-US.json \u548C vi-VN.json\uFF1A
|
|
30830
|
+
- JSON \u662F\u6241\u5E73 key/value \u683C\u5F0F\uFF0Ckey \u4FDD\u6301\u539F\u6587\uFF0C\u4E0D\u7BA1\u539F\u6587\u662F\u4E2D\u6587\u8FD8\u662F\u82F1\u6587\u3002
|
|
30831
|
+
- \u5982\u679C key \u5DF2\u5B58\u5728\uFF0C\u5FC5\u987B\u8DF3\u8FC7\uFF0C\u4E0D\u8986\u76D6\u5DF2\u6709\u7FFB\u8BD1\u3002
|
|
30832
|
+
- \u5982\u679C key \u4E0D\u5B58\u5728\uFF0C\u4E24\u4E2A\u6587\u4EF6\u90FD\u8981\u65B0\u589E\u3002
|
|
30833
|
+
- \u5BF9\u82F1\u6587 key\uFF1Aen-US.json \u7684 value \u53EF\u4EE5\u4F7F\u7528\u66F4\u89C4\u8303\u7684\u82F1\u6587\u5C55\u793A\u6587\u6848\uFF0C\u4F8B\u5982 ResourceId \u53EF\u5199\u4E3A Resource ID\u3001enable \u53EF\u5199\u4E3A Enable\uFF1Bvi-VN.json \u7684 value \u5FC5\u987B\u7FFB\u8BD1\u6210\u8D8A\u5357\u8BED\u3002
|
|
30834
|
+
- \u5BF9\u4E2D\u6587 key\uFF1Aen-US.json \u7FFB\u8BD1\u6210\u82F1\u6587\uFF0Cvi-VN.json \u7FFB\u8BD1\u6210\u8D8A\u5357\u8BED\u3002
|
|
30835
|
+
- \u4FDD\u6301 JSON \u5408\u6CD5\u3001\u683C\u5F0F\u7A33\u5B9A\uFF0C\u5C3D\u91CF\u7EF4\u6301\u539F\u6587\u4EF6\u7F29\u8FDB\u548C\u6392\u5E8F\u98CE\u683C\u3002
|
|
30836
|
+
7. i18n JSON \u6587\u4EF6\u53EF\u80FD\u975E\u5E38\u5927\uFF0C\u4E0D\u8981\u7528 cat\u3001sed \u5927\u6BB5\u6253\u5370\u6216\u628A\u5B8C\u6574\u6587\u4EF6\u8BFB\u8FDB\u5BF9\u8BDD\u4E0A\u4E0B\u6587\u3002\u8BF7\u4F18\u5148\u7528\u811A\u672C\u7CBE\u786E\u67E5\u91CD\u548C\u589E\u91CF\u5199\u5165\uFF0C\u4F8B\u5982\uFF1A
|
|
30837
|
+
node - <<'NODE'
|
|
30838
|
+
const fs = require('fs');
|
|
30839
|
+
const files = [
|
|
30840
|
+
'${normalizedProjectPath}/src/i18n/strings/en-US.json',
|
|
30841
|
+
'${normalizedProjectPath}/src/i18n/strings/vi-VN.json',
|
|
30842
|
+
];
|
|
30843
|
+
const keys = [
|
|
30844
|
+
// \u5728\u8FD9\u91CC\u586B\u5165\u4ECE L4 \u9875\u9762\u6536\u96C6\u5E76\u53BB\u91CD\u540E\u7684\u5019\u9009 key
|
|
30845
|
+
];
|
|
30846
|
+
for (const file of files) {
|
|
30847
|
+
const json = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
30848
|
+
const missing = keys.filter((key) => !Object.prototype.hasOwnProperty.call(json, key));
|
|
30849
|
+
console.log(file, 'missing:', missing);
|
|
30850
|
+
}
|
|
30851
|
+
NODE
|
|
30852
|
+
\u5982\u679C\u9700\u8981\u5199\u5165\uFF0C\u4E5F\u8BF7\u7528\u7C7B\u4F3C\u811A\u672C\u8BFB\u53D6 JSON \u5BF9\u8C61\u3001\u53EA\u7ED9 missing key \u8D4B\u503C\u3001\u518D JSON.stringify(data, null, 2) \u5199\u56DE\uFF1B\u5199\u5165\u524D\u540E\u53EA\u8F93\u51FA\u65B0\u589E\u6570\u91CF\u548C\u65B0\u589E key \u5217\u8868\uFF0C\u4E0D\u8981\u8F93\u51FA\u5B8C\u6574 JSON\u3002
|
|
30853
|
+
8. \u7FFB\u8BD1\u8981\u6C42\uFF1A
|
|
30854
|
+
- \u82F1\u6587\u4F7F\u7528\u7B80\u6D01\u51C6\u786E\u7684\u540E\u53F0/\u7269\u6D41\u7CFB\u7EDF UI \u6587\u6848\uFF0C\u6309\u94AE\u77ED\u8BED\u9996\u5B57\u6BCD\u5927\u5199\u5373\u53EF\uFF0C\u4E0D\u8981\u673A\u68B0\u76F4\u8BD1\u3002
|
|
30855
|
+
- \u8D8A\u5357\u8BED\u4F7F\u7528\u81EA\u7136\u7684\u8D8A\u5357\u8BED\u4E1A\u52A1\u7CFB\u7EDF\u6587\u6848\uFF0C\u4FDD\u7559\u53D8\u91CF\u5360\u4F4D\u7B26\u3001\u6570\u5B57\u3001\u6807\u70B9\u548C\u4E13\u6709\u540D\u8BCD\u3002
|
|
30856
|
+
- \u5E26 {0}\u3001{name}\u3001\${value}\u3001%s \u7B49\u5360\u4F4D\u7B26\u7684\u6587\u6848\uFF0C\u7FFB\u8BD1\u540E\u5FC5\u987B\u5B8C\u6574\u4FDD\u7559\u5360\u4F4D\u7B26\u3002
|
|
30857
|
+
9. \u5B8C\u6210\u540E\u8BF7\u81EA\u68C0\uFF1A
|
|
30858
|
+
- \u6240\u6709\u88AB\u5904\u7406\u9875\u9762\u7684 mdd.schema.json \u90FD\u662F\u5408\u6CD5 JSON\u3002
|
|
30859
|
+
- en-US.json\u3001vi-VN.json \u662F\u5408\u6CD5 JSON\u3002
|
|
30860
|
+
- \u6240\u6709\u88AB\u5904\u7406\u9875\u9762\u7684 mdd.script.jsx \u90FD\u6CA1\u6709\u7834\u574F React/JSX \u8BED\u6CD5\u3002
|
|
30861
|
+
- \u6CA1\u6709\u91CD\u590D key\uFF0C\u6CA1\u6709\u8986\u76D6\u5DF2\u6709 key\u3002
|
|
30862
|
+
|
|
30863
|
+
\u7F16\u8F91\u5668\u9884\u626B\u5230\u7684\u5F53\u524D\u9875\u9762 schema \u5019\u9009\u6587\u6848\u5982\u4E0B\uFF0C\u5305\u542B\u4E2D\u6587\u548C\u82F1\u6587\uFF1B\u8BF7\u4EE5\u5B9E\u9645\u6587\u4EF6\u4E3A\u51C6\u518D\u5B8C\u6574\u8865\u5145\uFF0C\u4E0D\u8981\u56E0\u4E3A\u6587\u6848\u662F\u82F1\u6587\u5C31\u8DF3\u8FC7\uFF1A
|
|
30864
|
+
${formatI18nCandidateList(schemaCandidates)}
|
|
30865
|
+
|
|
30866
|
+
\u7F16\u8F91\u5668\u9884\u626B\u5230\u7684\u5F53\u524D\u9875\u9762 script \u5019\u9009\u884C\u5982\u4E0B\uFF0C\u8BF7\u4EE5\u5B9E\u9645\u6587\u4EF6\u4E3A\u51C6\u8BC6\u522B\u771F\u6B63\u7684\u7528\u6237\u53EF\u89C1\u6587\u6848\uFF0C\u4E0D\u8981\u56E0\u4E3A\u6587\u6848\u662F\u82F1\u6587\u5C31\u8DF3\u8FC7\uFF1A
|
|
30867
|
+
${formatScriptPreviewList(scriptPreview)}
|
|
30868
|
+
|
|
30869
|
+
\u8BF7\u73B0\u5728\u5F00\u59CB\u4FEE\u6539\u8FD9\u4E9B\u6587\u4EF6\uFF0C\u5E76\u5728\u6700\u540E\u8F93\u51FA\uFF1A
|
|
30870
|
+
- \u6BCF\u4E2A L4 \u9875\u9762\u5206\u522B\u5305\u88F9\u4E86\u54EA\u4E9B\u6587\u6848
|
|
30871
|
+
- en-US.json \u65B0\u589E\u4E86\u591A\u5C11\u6761
|
|
30872
|
+
- vi-VN.json \u65B0\u589E\u4E86\u591A\u5C11\u6761
|
|
30873
|
+
- \u662F\u5426\u6709\u8DF3\u8FC7\u7684\u5DF2\u5B58\u5728 key`;
|
|
30874
|
+
};
|
|
30707
30875
|
const createLinkedPageExtraSources = (data = {}, prefix = "payload") => {
|
|
30708
30876
|
const sourceFields = [
|
|
30709
30877
|
"schemaInfo",
|
|
@@ -30845,6 +31013,9 @@ const normalizeLinkedPagePayload = (reference, pageData) => {
|
|
|
30845
31013
|
};
|
|
30846
31014
|
};
|
|
30847
31015
|
const buildLinkedPagePayload = async (payload, config2) => {
|
|
31016
|
+
if (!(config2 == null ? void 0 : config2.syncLinkedPages)) {
|
|
31017
|
+
return payload;
|
|
31018
|
+
}
|
|
30848
31019
|
const rootSchemaJson = parseSchema(payload.schemaInfo) || {};
|
|
30849
31020
|
const resolver = getLinkedPageResolver(config2);
|
|
30850
31021
|
let rootPageData = null;
|
|
@@ -30996,7 +31167,7 @@ const createLinkedPullSummary = (res) => {
|
|
|
30996
31167
|
return `\u68C0\u6D4B\u5230\u5173\u8054 L4 \u9875\u9762\u4E5F\u5B58\u5728\u672C\u5730\u4FEE\u6539\uFF1A${codes}\u3002\u5F53\u524D\u53EA\u540C\u6B65\u4E86\u5F53\u524D\u9875\u9762\uFF0C\u8BF7\u5206\u522B\u6253\u5F00\u8FD9\u4E9B L4 \u9875\u9762\u6267\u884C\u201C\u540C\u6B65\u672C\u5730\u4FEE\u6539\u201D\u5E76\u4FDD\u5B58\u3002`;
|
|
30997
31168
|
};
|
|
30998
31169
|
function LocalAIDrawer(props) {
|
|
30999
|
-
var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i;
|
|
31170
|
+
var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
31000
31171
|
const { schema, scriptInfo, pageMeta = {}, bridgeConfig, onApply } = props;
|
|
31001
31172
|
const config2 = React$1.useMemo(() => normalizeBridgeConfig(bridgeConfig), [bridgeConfig]);
|
|
31002
31173
|
const [baseURL, setBaseURL] = React$1.useState(config2.baseURL || DEFAULT_BRIDGE_URL);
|
|
@@ -31007,6 +31178,16 @@ function LocalAIDrawer(props) {
|
|
|
31007
31178
|
const [lastSummary, setLastSummary] = React$1.useState("");
|
|
31008
31179
|
const [pullError, setPullError] = React$1.useState(null);
|
|
31009
31180
|
const [lastDiffSummary, setLastDiffSummary] = React$1.useState(null);
|
|
31181
|
+
const [syncLinkedPages, setSyncLinkedPages] = React$1.useState(false);
|
|
31182
|
+
const [i18nDialogVisible, setI18nDialogVisible] = React$1.useState(false);
|
|
31183
|
+
const [i18nMainProjectPath, setI18nMainProjectPath] = React$1.useState(() => {
|
|
31184
|
+
var _a3;
|
|
31185
|
+
if (typeof window === "undefined")
|
|
31186
|
+
return DEFAULT_MAIN_PROJECT_PATH;
|
|
31187
|
+
return ((_a3 = window.localStorage) == null ? void 0 : _a3.getItem(MAIN_PROJECT_PATH_STORAGE_KEY)) || DEFAULT_MAIN_PROJECT_PATH;
|
|
31188
|
+
});
|
|
31189
|
+
const [i18nPrompt, setI18nPrompt] = React$1.useState("");
|
|
31190
|
+
const [i18nWorkspaceInfo, setI18nWorkspaceInfo] = React$1.useState(null);
|
|
31010
31191
|
const schemaJson = ((_a2 = schema == null ? void 0 : schema.getAllJSON) == null ? void 0 : _a2.call(schema)) || {};
|
|
31011
31192
|
const pageCode = getPageCode(schemaJson, pageMeta);
|
|
31012
31193
|
const getPayload = React$1.useCallback(() => {
|
|
@@ -31066,6 +31247,27 @@ function LocalAIDrawer(props) {
|
|
|
31066
31247
|
\u6211\u7684\u9700\u6C42\u662F\uFF1A`,
|
|
31067
31248
|
[expectedWorkspacePath, pageCode]
|
|
31068
31249
|
);
|
|
31250
|
+
const currentI18nPrompt = React$1.useMemo(
|
|
31251
|
+
() => buildL4I18nPrompt({
|
|
31252
|
+
pageCode,
|
|
31253
|
+
workspacePath: (i18nWorkspaceInfo == null ? void 0 : i18nWorkspaceInfo.dir) || workspacePath || expectedWorkspacePath,
|
|
31254
|
+
mainProjectPath: i18nMainProjectPath,
|
|
31255
|
+
schemaJson,
|
|
31256
|
+
scriptInfo: (scriptInfo == null ? void 0 : scriptInfo.script) || "",
|
|
31257
|
+
linkedPages: i18nWorkspaceInfo == null ? void 0 : i18nWorkspaceInfo.linkedPages,
|
|
31258
|
+
syncLinkedPages
|
|
31259
|
+
}),
|
|
31260
|
+
[
|
|
31261
|
+
expectedWorkspacePath,
|
|
31262
|
+
i18nMainProjectPath,
|
|
31263
|
+
i18nWorkspaceInfo,
|
|
31264
|
+
pageCode,
|
|
31265
|
+
schemaJson,
|
|
31266
|
+
scriptInfo,
|
|
31267
|
+
syncLinkedPages,
|
|
31268
|
+
workspacePath
|
|
31269
|
+
]
|
|
31270
|
+
);
|
|
31069
31271
|
const handleCopy = React$1.useCallback(async (text, successText) => {
|
|
31070
31272
|
try {
|
|
31071
31273
|
await copyText(text);
|
|
@@ -31100,7 +31302,10 @@ function LocalAIDrawer(props) {
|
|
|
31100
31302
|
setPullError(null);
|
|
31101
31303
|
setLastDiffSummary(null);
|
|
31102
31304
|
try {
|
|
31103
|
-
const payload = await buildLinkedPagePayload(getPayload(),
|
|
31305
|
+
const payload = await buildLinkedPagePayload(getPayload(), {
|
|
31306
|
+
...config2,
|
|
31307
|
+
syncLinkedPages
|
|
31308
|
+
});
|
|
31104
31309
|
const res = await pushPage(baseURL, pageCode, payload);
|
|
31105
31310
|
setWorkspacePath((res == null ? void 0 : res.dir) || "");
|
|
31106
31311
|
setBridgeInfo((prev) => {
|
|
@@ -31112,7 +31317,7 @@ function LocalAIDrawer(props) {
|
|
|
31112
31317
|
});
|
|
31113
31318
|
setStatus("\u5DF2\u540C\u6B65\u5230\u672C\u5730");
|
|
31114
31319
|
setLastSummary(createLinkedPushSummary(res, pageCode));
|
|
31115
|
-
if (((_a3 = res == null ? void 0 : res.linkedPages) == null ? void 0 : _a3.totalReferences) > 0) {
|
|
31320
|
+
if (syncLinkedPages && ((_a3 = res == null ? void 0 : res.linkedPages) == null ? void 0 : _a3.totalReferences) > 0) {
|
|
31116
31321
|
CnMessage.success(
|
|
31117
31322
|
`\u5DF2\u53D1\u9001\u5230\u672C\u5730 AI \u5DE5\u4F5C\u533A\uFF0C\u626B\u63CF\u5230\u76F4\u63A5\u5B50 L4 \u9875\u9762 ${res.linkedPages.directCount || 0} \u4E2A\uFF0C\u9012\u5F52\u5171 ${res.linkedPages.totalReferences} \u4E2A`
|
|
31118
31323
|
);
|
|
@@ -31125,6 +31330,68 @@ function LocalAIDrawer(props) {
|
|
|
31125
31330
|
setLoadingAction("");
|
|
31126
31331
|
}
|
|
31127
31332
|
};
|
|
31333
|
+
const ensureCurrentWorkspace = async () => {
|
|
31334
|
+
const statusRes = await getPageStatus(baseURL, pageCode);
|
|
31335
|
+
if ((statusRes == null ? void 0 : statusRes.exists) && !syncLinkedPages) {
|
|
31336
|
+
return {
|
|
31337
|
+
...statusRes,
|
|
31338
|
+
created: false,
|
|
31339
|
+
recursiveSynced: false
|
|
31340
|
+
};
|
|
31341
|
+
}
|
|
31342
|
+
const payload = await buildLinkedPagePayload(getPayload(), {
|
|
31343
|
+
...config2,
|
|
31344
|
+
syncLinkedPages
|
|
31345
|
+
});
|
|
31346
|
+
const pushRes = await pushPage(baseURL, pageCode, payload);
|
|
31347
|
+
return {
|
|
31348
|
+
...pushRes || {},
|
|
31349
|
+
exists: true,
|
|
31350
|
+
created: !(statusRes == null ? void 0 : statusRes.exists),
|
|
31351
|
+
recursiveSynced: syncLinkedPages,
|
|
31352
|
+
dir: pushRes == null ? void 0 : pushRes.dir
|
|
31353
|
+
};
|
|
31354
|
+
};
|
|
31355
|
+
const handleI18nConfirm = async () => {
|
|
31356
|
+
var _a3;
|
|
31357
|
+
const mainProjectPath = trimEndSlash(i18nMainProjectPath || "");
|
|
31358
|
+
if (!mainProjectPath || !mainProjectPath.startsWith("/")) {
|
|
31359
|
+
CnMessage.error("\u8BF7\u8F93\u5165\u4E3B\u5DE5\u7A0B\u672C\u5730\u7EDD\u5BF9\u8DEF\u5F84");
|
|
31360
|
+
return;
|
|
31361
|
+
}
|
|
31362
|
+
setLoadingAction("i18n");
|
|
31363
|
+
try {
|
|
31364
|
+
if (typeof window !== "undefined") {
|
|
31365
|
+
(_a3 = window.localStorage) == null ? void 0 : _a3.setItem(MAIN_PROJECT_PATH_STORAGE_KEY, mainProjectPath);
|
|
31366
|
+
}
|
|
31367
|
+
const workspaceInfo = await ensureCurrentWorkspace();
|
|
31368
|
+
setWorkspacePath((workspaceInfo == null ? void 0 : workspaceInfo.dir) || workspacePath);
|
|
31369
|
+
setI18nWorkspaceInfo(workspaceInfo);
|
|
31370
|
+
const prompt = buildL4I18nPrompt({
|
|
31371
|
+
pageCode,
|
|
31372
|
+
workspacePath: (workspaceInfo == null ? void 0 : workspaceInfo.dir) || workspacePath || expectedWorkspacePath,
|
|
31373
|
+
mainProjectPath,
|
|
31374
|
+
schemaJson,
|
|
31375
|
+
scriptInfo: (scriptInfo == null ? void 0 : scriptInfo.script) || "",
|
|
31376
|
+
linkedPages: workspaceInfo == null ? void 0 : workspaceInfo.linkedPages,
|
|
31377
|
+
syncLinkedPages
|
|
31378
|
+
});
|
|
31379
|
+
setI18nPrompt(prompt);
|
|
31380
|
+
setLastSummary(
|
|
31381
|
+
(workspaceInfo == null ? void 0 : workspaceInfo.recursiveSynced) ? `\u5DF2\u6309\u9012\u5F52\u6A21\u5F0F\u540C\u6B65\u5F53\u524D L4 \u9875\u9762\u548C\u5173\u8054\u5B50\u9875\u9762\uFF0C\u8BF7\u590D\u5236\u591A\u8BED\u8A00\u63D0\u793A\u8BCD\u4EA4\u7ED9\u672C\u5730 AI \u6267\u884C` : (workspaceInfo == null ? void 0 : workspaceInfo.created) ? "\u5DF2\u5148\u628A\u5F53\u524D L4 \u9875\u9762\u540C\u6B65\u5230\u672C\u5730\u5DE5\u4F5C\u533A\uFF0C\u8BF7\u590D\u5236\u591A\u8BED\u8A00\u63D0\u793A\u8BCD\u4EA4\u7ED9\u672C\u5730 AI \u6267\u884C" : "\u5F53\u524D L4 \u9875\u9762\u672C\u5730\u5DE5\u4F5C\u533A\u5DF2\u5B58\u5728\uFF0C\u8BF7\u590D\u5236\u591A\u8BED\u8A00\u63D0\u793A\u8BCD\u4EA4\u7ED9\u672C\u5730 AI \u6267\u884C"
|
|
31382
|
+
);
|
|
31383
|
+
CnMessage.success(
|
|
31384
|
+
(workspaceInfo == null ? void 0 : workspaceInfo.recursiveSynced) ? "\u5DF2\u9012\u5F52\u540C\u6B65 L4 \u5DE5\u4F5C\u533A\u5E76\u751F\u6210\u63D0\u793A\u8BCD" : (workspaceInfo == null ? void 0 : workspaceInfo.created) ? "\u5DF2\u540C\u6B65\u5F53\u524D L4 \u5DE5\u4F5C\u533A\u5E76\u751F\u6210\u63D0\u793A\u8BCD" : "\u5DF2\u751F\u6210 L4 \u591A\u8BED\u8A00\u63D0\u793A\u8BCD"
|
|
31385
|
+
);
|
|
31386
|
+
} catch (e) {
|
|
31387
|
+
CnMessage.error(e.message || "\u751F\u6210 L4 \u591A\u8BED\u8A00\u63D0\u793A\u8BCD\u5931\u8D25");
|
|
31388
|
+
} finally {
|
|
31389
|
+
setLoadingAction("");
|
|
31390
|
+
}
|
|
31391
|
+
};
|
|
31392
|
+
const handleCopyI18nPrompt = React$1.useCallback(() => {
|
|
31393
|
+
handleCopy(i18nPrompt || currentI18nPrompt, "\u5DF2\u590D\u5236 L4 \u591A\u8BED\u8A00\u63D0\u793A\u8BCD");
|
|
31394
|
+
}, [currentI18nPrompt, handleCopy, i18nPrompt]);
|
|
31128
31395
|
const handlePull = async () => {
|
|
31129
31396
|
setLoadingAction("pull");
|
|
31130
31397
|
setPullError(null);
|
|
@@ -31292,7 +31559,24 @@ function LocalAIDrawer(props) {
|
|
|
31292
31559
|
}, "\u6253\u5F00\u76EE\u5F55"), /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31293
31560
|
loading: loadingAction === "rollback",
|
|
31294
31561
|
onClick: handleRollback
|
|
31295
|
-
}, "\u56DE\u6EDA\u4E0A\u6B21\u66F4\u6539")
|
|
31562
|
+
}, "\u56DE\u6EDA\u4E0A\u6B21\u66F4\u6539"), /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31563
|
+
loading: loadingAction === "i18n",
|
|
31564
|
+
onClick: () => setI18nDialogVisible(true)
|
|
31565
|
+
}, "\u540C\u6B65L4\u591A\u8BED\u8A00")), /* @__PURE__ */ React$1.createElement("div", {
|
|
31566
|
+
className: "mdd-local-ai-sync-options"
|
|
31567
|
+
}, /* @__PURE__ */ React$1.createElement("button", {
|
|
31568
|
+
type: "button",
|
|
31569
|
+
className: `mdd-local-ai-switch${syncLinkedPages ? " is-checked" : ""}`,
|
|
31570
|
+
role: "switch",
|
|
31571
|
+
"aria-checked": syncLinkedPages,
|
|
31572
|
+
onClick: () => setSyncLinkedPages((value) => !value)
|
|
31573
|
+
}, /* @__PURE__ */ React$1.createElement("span", {
|
|
31574
|
+
className: "mdd-local-ai-switch-track"
|
|
31575
|
+
}, /* @__PURE__ */ React$1.createElement("span", {
|
|
31576
|
+
className: "mdd-local-ai-switch-handle"
|
|
31577
|
+
})), /* @__PURE__ */ React$1.createElement("span", {
|
|
31578
|
+
className: "mdd-local-ai-switch-text"
|
|
31579
|
+
}, /* @__PURE__ */ React$1.createElement("strong", null, "\u9012\u5F52\u540C\u6B65\u5B50\u9875\u9762"), /* @__PURE__ */ React$1.createElement("span", null, syncLinkedPages ? "\u5DF2\u5F00\u542F\uFF0C\u4F1A\u626B\u63CF\u5E76\u540C\u6B65\u5173\u8054 L4 \u9875\u9762" : "\u5DF2\u5173\u95ED\uFF0C\u53EA\u540C\u6B65\u5F53\u524D\u9875\u9762")))), /* @__PURE__ */ React$1.createElement("div", {
|
|
31296
31580
|
className: "mdd-local-ai-action-notice"
|
|
31297
31581
|
}, "\u201C\u540C\u6B65\u672C\u5730\u4FEE\u6539\u201D\u53EA\u4F1A\u540C\u6B65\u5F53\u524D\u9875\u9762\u7684\u672C\u5730\u53D8\u66F4\uFF1B\u5982\u679C\u5173\u8054\u5B50 L4 \u9875\u9762\u4E5F\u5728\u672C\u5730\u6539\u8FC7\uFF0C\u8BF7\u6253\u5F00\u5BF9\u5E94\u5B50\u9875\u9762\u7684 L4 \u5730\u5740\uFF0C\u5206\u522B\u6267\u884C\u201C\u540C\u6B65\u672C\u5730\u4FEE\u6539\u201D\u5E76\u5728\u9875\u9762\u4E0A\u70B9\u51FB\u4FDD\u5B58\u3002")), /* @__PURE__ */ React$1.createElement("div", {
|
|
31298
31582
|
className: "mdd-local-ai-section"
|
|
@@ -31383,7 +31667,68 @@ function LocalAIDrawer(props) {
|
|
|
31383
31667
|
className: "mdd-local-ai-title"
|
|
31384
31668
|
}, "\u4F7F\u7528\u65B9\u5F0F"), /* @__PURE__ */ React$1.createElement("div", {
|
|
31385
31669
|
className: "mdd-local-ai-tips"
|
|
31386
|
-
}, /* @__PURE__ */ React$1.createElement("div", null, "1. \u9996\u6B21\u4F7F\u7528\u5148\u5168\u5C40\u5B89\u88C5\uFF1Anpm i -g @cniot/mdd-ai-bridge\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "2. \u5B89\u88C5\u540E\u5728\u4EFB\u610F\u76EE\u5F55\u8FD0\u884C\uFF1Amdd-ai-bridge\u3002\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8FD0\u884C\uFF1Anpx @cniot/mdd-ai-bridge\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "3. \u70B9\u51FB\u201C\u53D1\u9001\u5230\u672C\u5730 AI\u201D\uFF0C\u5F53\u524D\u9875\u9762\u4F1A\u5199\u5165\u672C\u5730\u5DE5\u4F5C\u533A\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "4. \u7528 Cursor\u3001Qoder\u3001Codex CLI \u7B49\u5DE5\u5177\u6253\u5F00\u76EE\u5F55\u5E76\u4FEE\u6539\u6587\u4EF6\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "5. \u70B9\u51FB\u201C\u540C\u6B65\u672C\u5730\u4FEE\u6539\u201D\uFF0C\u786E\u8BA4\u9884\u89C8\u540E\u7EE7\u7EED\u4F7F\u7528\u539F\u4FDD\u5B58\u6309\u94AE\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "\u7EBF\u4E0A HTTP \u9875\u9762\u4F1A\u81EA\u52A8\u6253\u5F00\u672C\u5730 Bridge relay \u7A97\u53E3\uFF0C\u8BF7\u5141\u8BB8\u6D4F\u89C8\u5668\u5F39\u7A97\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "\u672C\u5730\u5DE5\u4F5C\u533A\u9ED8\u8BA4\u5728 ~/.mdd-ai-workspace\u3002")))
|
|
31670
|
+
}, /* @__PURE__ */ React$1.createElement("div", null, "1. \u9996\u6B21\u4F7F\u7528\u5148\u5168\u5C40\u5B89\u88C5\uFF1Anpm i -g @cniot/mdd-ai-bridge\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "2. \u5B89\u88C5\u540E\u5728\u4EFB\u610F\u76EE\u5F55\u8FD0\u884C\uFF1Amdd-ai-bridge\u3002\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8FD0\u884C\uFF1Anpx @cniot/mdd-ai-bridge\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "3. \u70B9\u51FB\u201C\u53D1\u9001\u5230\u672C\u5730 AI\u201D\uFF0C\u5F53\u524D\u9875\u9762\u4F1A\u5199\u5165\u672C\u5730\u5DE5\u4F5C\u533A\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "4. \u7528 Cursor\u3001Qoder\u3001Codex CLI \u7B49\u5DE5\u5177\u6253\u5F00\u76EE\u5F55\u5E76\u4FEE\u6539\u6587\u4EF6\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "5. \u70B9\u51FB\u201C\u540C\u6B65\u672C\u5730\u4FEE\u6539\u201D\uFF0C\u786E\u8BA4\u9884\u89C8\u540E\u7EE7\u7EED\u4F7F\u7528\u539F\u4FDD\u5B58\u6309\u94AE\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "\u7EBF\u4E0A HTTP \u9875\u9762\u4F1A\u81EA\u52A8\u6253\u5F00\u672C\u5730 Bridge relay \u7A97\u53E3\uFF0C\u8BF7\u5141\u8BB8\u6D4F\u89C8\u5668\u5F39\u7A97\u3002"), /* @__PURE__ */ React$1.createElement("div", null, "\u672C\u5730\u5DE5\u4F5C\u533A\u9ED8\u8BA4\u5728 ~/.mdd-ai-workspace\u3002"))), /* @__PURE__ */ React$1.createElement(Dialog, {
|
|
31671
|
+
v2: true,
|
|
31672
|
+
centered: true,
|
|
31673
|
+
visible: i18nDialogVisible,
|
|
31674
|
+
title: "\u540C\u6B65 L4 \u591A\u8BED\u8A00",
|
|
31675
|
+
width: "960px",
|
|
31676
|
+
footer: false,
|
|
31677
|
+
onClose: () => setI18nDialogVisible(false),
|
|
31678
|
+
onCancel: () => setI18nDialogVisible(false)
|
|
31679
|
+
}, /* @__PURE__ */ React$1.createElement("div", {
|
|
31680
|
+
className: "mdd-local-ai-i18n-dialog"
|
|
31681
|
+
}, /* @__PURE__ */ React$1.createElement("div", {
|
|
31682
|
+
className: "mdd-local-ai-i18n-hero"
|
|
31683
|
+
}, /* @__PURE__ */ React$1.createElement("div", null, /* @__PURE__ */ React$1.createElement("div", {
|
|
31684
|
+
className: "mdd-local-ai-i18n-kicker"
|
|
31685
|
+
}, "Local AI i18n task"), /* @__PURE__ */ React$1.createElement("div", {
|
|
31686
|
+
className: "mdd-local-ai-i18n-title"
|
|
31687
|
+
}, "\u751F\u6210\u672C\u5730 AI \u591A\u8BED\u8A00\u4EFB\u52A1"), /* @__PURE__ */ React$1.createElement("div", {
|
|
31688
|
+
className: "mdd-local-ai-i18n-desc"
|
|
31689
|
+
}, syncLinkedPages ? "\u5DF2\u5F00\u542F\u9012\u5F52\u5B50\u9875\u9762\uFF0C\u4F1A\u5148\u540C\u6B65\u5F53\u524D\u9875\u9762\u548C\u5173\u8054 L4 \u9875\u9762\uFF0C\u518D\u751F\u6210\u591A\u9875\u9762\u591A\u8BED\u8A00\u63D0\u793A\u8BCD\u3002" : "\u5148\u786E\u8BA4\u5F53\u524D L4 \u5DE5\u4F5C\u533A\u5DF2\u540C\u6B65\uFF0C\u518D\u8BA9\u672C\u5730 AI \u8865\u9F50\u4E3B\u5DE5\u7A0B\u82F1\u6587\u548C\u8D8A\u5357\u8BED\u8BCD\u6761\u3002"), /* @__PURE__ */ React$1.createElement("div", {
|
|
31690
|
+
className: "mdd-local-ai-i18n-langs"
|
|
31691
|
+
}, /* @__PURE__ */ React$1.createElement("span", null, "English"), /* @__PURE__ */ React$1.createElement("span", null, "Ti\u1EBFng Vi\u1EC7t"), syncLinkedPages ? /* @__PURE__ */ React$1.createElement("span", null, "\u9012\u5F52 L4") : null)), /* @__PURE__ */ React$1.createElement("span", {
|
|
31692
|
+
className: "mdd-local-ai-i18n-code"
|
|
31693
|
+
}, pageCode)), /* @__PURE__ */ React$1.createElement("div", {
|
|
31694
|
+
className: "mdd-local-ai-i18n-card"
|
|
31695
|
+
}, /* @__PURE__ */ React$1.createElement("div", {
|
|
31696
|
+
className: "mdd-local-ai-i18n-field"
|
|
31697
|
+
}, /* @__PURE__ */ React$1.createElement("div", {
|
|
31698
|
+
className: "mdd-local-ai-i18n-field-head"
|
|
31699
|
+
}, /* @__PURE__ */ React$1.createElement("label", null, "\u4E3B\u5DE5\u7A0B tms-mach36 \u672C\u5730\u7EDD\u5BF9\u8DEF\u5F84"), /* @__PURE__ */ React$1.createElement("span", null, "\u7528\u4E8E\u5B9A\u4F4D src/i18n/strings")), /* @__PURE__ */ React$1.createElement(Input$1, {
|
|
31700
|
+
value: i18nMainProjectPath,
|
|
31701
|
+
onChange: setI18nMainProjectPath,
|
|
31702
|
+
placeholder: DEFAULT_MAIN_PROJECT_PATH,
|
|
31703
|
+
className: "mdd-local-ai-i18n-input"
|
|
31704
|
+
}))), /* @__PURE__ */ React$1.createElement("div", {
|
|
31705
|
+
className: "mdd-local-ai-i18n-paths"
|
|
31706
|
+
}, /* @__PURE__ */ React$1.createElement("div", null, /* @__PURE__ */ React$1.createElement("span", null, "L4 \u5DE5\u4F5C\u533A"), /* @__PURE__ */ React$1.createElement("strong", null, (i18nWorkspaceInfo == null ? void 0 : i18nWorkspaceInfo.dir) || workspacePath || expectedWorkspacePath)), /* @__PURE__ */ React$1.createElement("div", null, /* @__PURE__ */ React$1.createElement("span", null, "\u82F1\u6587\u8BCD\u6761"), /* @__PURE__ */ React$1.createElement("strong", null, `${trimEndSlash(i18nMainProjectPath || DEFAULT_MAIN_PROJECT_PATH)}/src/i18n/strings/en-US.json`)), /* @__PURE__ */ React$1.createElement("div", null, /* @__PURE__ */ React$1.createElement("span", null, "\u8D8A\u5357\u8BED\u8BCD\u6761"), /* @__PURE__ */ React$1.createElement("strong", null, `${trimEndSlash(i18nMainProjectPath || DEFAULT_MAIN_PROJECT_PATH)}/src/i18n/strings/vi-VN.json`))), i18nWorkspaceInfo ? /* @__PURE__ */ React$1.createElement("div", {
|
|
31707
|
+
className: `mdd-local-ai-i18n-state${i18nWorkspaceInfo.created ? " is-created" : ""}`
|
|
31708
|
+
}, i18nWorkspaceInfo.recursiveSynced ? `\u5DF2\u6309\u9012\u5F52\u6A21\u5F0F\u540C\u6B65\u5F53\u524D\u9875\u9762\u548C ${((_j = i18nWorkspaceInfo.linkedPages) == null ? void 0 : _j.syncedCount) || 0} \u4E2A\u5173\u8054 L4 \u9875\u9762${((_k = i18nWorkspaceInfo.linkedPages) == null ? void 0 : _k.failedCount) ? `\uFF0C\u53E6\u6709 ${i18nWorkspaceInfo.linkedPages.failedCount} \u4E2A\u5173\u8054\u9875\u9762\u9700\u8981\u5904\u7406` : ""}\u3002` : i18nWorkspaceInfo.created ? "\u5F53\u524D L4 \u9875\u9762\u6B64\u524D\u672A\u540C\u6B65\uFF0C\u5DF2\u5148\u53D1\u9001\u5230\u672C\u5730 AI \u5DE5\u4F5C\u533A\u3002" : "\u5F53\u524D L4 \u9875\u9762\u672C\u5730\u5DE5\u4F5C\u533A\u5DF2\u5B58\u5728\uFF0C\u8BF7\u6253\u5F00\u8BE5\u76EE\u5F55\u8BA9\u672C\u5730 AI \u6267\u884C\u63D0\u793A\u8BCD\u3002") : /* @__PURE__ */ React$1.createElement("div", {
|
|
31709
|
+
className: "mdd-local-ai-i18n-checklist"
|
|
31710
|
+
}, /* @__PURE__ */ React$1.createElement("div", null, "\u68C0\u67E5\u5F53\u524D L4 \u5DE5\u4F5C\u533A\u662F\u5426\u5B58\u5728"), /* @__PURE__ */ React$1.createElement("div", null, syncLinkedPages ? "\u9012\u5F52\u540C\u6B65\u5F53\u524D\u9875\u9762\u548C\u5173\u8054 L4 \u9875\u9762" : "\u672A\u540C\u6B65\u65F6\u81EA\u52A8\u53D1\u9001\u5F53\u524D\u9875\u9762\u5230\u672C\u5730 AI"), /* @__PURE__ */ React$1.createElement("div", null, syncLinkedPages ? "\u751F\u6210\u8986\u76D6\u7236\u5B50\u9875\u9762\u7684\u63D0\u793A\u8BCD\u5E76\u53BB\u91CD\u540C\u6B65\u8BCD\u6761" : "\u751F\u6210\u63D0\u793A\u8BCD\u5E76\u8981\u6C42\u672C\u5730 AI \u53BB\u91CD\u5199\u5165 en-US.json \u548C vi-VN.json")), i18nPrompt ? /* @__PURE__ */ React$1.createElement("div", {
|
|
31711
|
+
className: "mdd-local-ai-i18n-prompt"
|
|
31712
|
+
}, /* @__PURE__ */ React$1.createElement("div", {
|
|
31713
|
+
className: "mdd-local-ai-i18n-prompt-head"
|
|
31714
|
+
}, /* @__PURE__ */ React$1.createElement("span", null, "\u7ED9\u672C\u5730 AI \u7684\u63D0\u793A\u8BCD"), /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31715
|
+
size: "small",
|
|
31716
|
+
onClick: handleCopyI18nPrompt
|
|
31717
|
+
}, "\u590D\u5236\u63D0\u793A\u8BCD")), /* @__PURE__ */ React$1.createElement("pre", null, i18nPrompt)) : null, /* @__PURE__ */ React$1.createElement("div", {
|
|
31718
|
+
className: "mdd-local-ai-i18n-footer"
|
|
31719
|
+
}, /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31720
|
+
onClick: () => setI18nDialogVisible(false)
|
|
31721
|
+
}, "\u53D6\u6D88"), /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31722
|
+
loading: loadingAction === "open",
|
|
31723
|
+
onClick: handleOpen
|
|
31724
|
+
}, "\u6253\u5F00 L4 \u5DE5\u4F5C\u533A"), /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31725
|
+
type: "primary",
|
|
31726
|
+
loading: loadingAction === "i18n",
|
|
31727
|
+
onClick: handleI18nConfirm
|
|
31728
|
+
}, i18nPrompt ? "\u91CD\u65B0\u751F\u6210\u63D0\u793A\u8BCD" : "\u786E\u5B9A\u5E76\u751F\u6210\u63D0\u793A\u8BCD"), i18nPrompt ? /* @__PURE__ */ React$1.createElement(CnButton, {
|
|
31729
|
+
type: "primary",
|
|
31730
|
+
onClick: handleCopyI18nPrompt
|
|
31731
|
+
}, "\u590D\u5236\u63D0\u793A\u8BCD") : null))));
|
|
31387
31732
|
}
|
|
31388
31733
|
var index = "";
|
|
31389
31734
|
const isDebug = ((_b = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a.search) == null ? void 0 : _b.indexOf("debug")) >= 0 || ((_c = window.localStorage) == null ? void 0 : _c.__l4_location_search_debug__) === "true";
|
|
@@ -31922,7 +32267,7 @@ function getDefaultIndexStyle() {
|
|
|
31922
32267
|
`;
|
|
31923
32268
|
}
|
|
31924
32269
|
const name = "@cniot/mdd-editor";
|
|
31925
|
-
const version = "0.3.
|
|
32270
|
+
const version = "0.3.10";
|
|
31926
32271
|
const description = "\u6A21\u578B\u9A71\u52A8\u7F16\u8F91\u5668";
|
|
31927
32272
|
const scripts = {
|
|
31928
32273
|
build: "vite build"
|