@cniot/mdd-editor 0.3.4 → 0.3.5

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/build/index.es.js CHANGED
@@ -30247,6 +30247,11 @@ function pullPage(baseURL, code) {
30247
30247
  method: "GET"
30248
30248
  });
30249
30249
  }
30250
+ function rollbackPage(baseURL, code) {
30251
+ return request(baseURL, `/pages/${encodeURIComponent(code)}/rollback`, {
30252
+ method: "POST"
30253
+ });
30254
+ }
30250
30255
  function getPageStatus(baseURL, code) {
30251
30256
  return request(baseURL, `/pages/${encodeURIComponent(code)}/status`, {
30252
30257
  method: "GET"
@@ -30486,13 +30491,90 @@ const getChangeTypeText = (type) => {
30486
30491
  return type || "\u4FEE\u6539";
30487
30492
  }
30488
30493
  };
30494
+ const TOKEN_PATTERN = /(\/\/.*|\/\*.*?\*\/|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`(?:\\.|[^`\\])*`|\b(?:async|await|break|case|catch|class|const|default|else|export|false|finally|for|from|function|if|import|let|new|null|return|switch|throw|true|try|undefined|var|while)\b|\b\d+(?:\.\d+)?\b|[#.][a-zA-Z_-][\w-]*|@[a-zA-Z-]+|[{}()[\],;:])/g;
30495
+ const getTokenClassName = (token, language) => {
30496
+ if (/^\/\//.test(token) || /^\/\*/.test(token))
30497
+ return "tok-comment";
30498
+ if (/^["'`]/.test(token))
30499
+ return language === "json" && token.endsWith('"') ? "tok-string" : "tok-string";
30500
+ if (/^\d/.test(token))
30501
+ return "tok-number";
30502
+ if (/^(#|\.|@)/.test(token))
30503
+ return "tok-selector";
30504
+ if (/^[{}()[\],;:]$/.test(token))
30505
+ return "tok-punc";
30506
+ return "tok-keyword";
30507
+ };
30508
+ const renderHighlightedCode = (line = "", language = "text") => {
30509
+ if (!line)
30510
+ return /* @__PURE__ */ React$1.createElement("span", {
30511
+ className: "tok-empty"
30512
+ }, "\xA0");
30513
+ const nodes = [];
30514
+ let lastIndex = 0;
30515
+ let match = TOKEN_PATTERN.exec(line);
30516
+ while (match) {
30517
+ if (match.index > lastIndex) {
30518
+ nodes.push(line.slice(lastIndex, match.index));
30519
+ }
30520
+ const token = match[0];
30521
+ nodes.push(
30522
+ /* @__PURE__ */ React$1.createElement("span", {
30523
+ className: getTokenClassName(token, language),
30524
+ key: `${match.index}-${token}`
30525
+ }, token)
30526
+ );
30527
+ lastIndex = match.index + token.length;
30528
+ match = TOKEN_PATTERN.exec(line);
30529
+ }
30530
+ if (lastIndex < line.length) {
30531
+ nodes.push(line.slice(lastIndex));
30532
+ }
30533
+ TOKEN_PATTERN.lastIndex = 0;
30534
+ return nodes;
30535
+ };
30536
+ function SideBySideDiff({ files = [] }) {
30537
+ if (!files.length)
30538
+ return null;
30539
+ return /* @__PURE__ */ React$1.createElement("div", {
30540
+ className: "mdd-local-ai-side-diff"
30541
+ }, files.map((file) => {
30542
+ var _a2, _b2;
30543
+ return /* @__PURE__ */ React$1.createElement("div", {
30544
+ className: "mdd-local-ai-side-file",
30545
+ key: file.fileName
30546
+ }, /* @__PURE__ */ React$1.createElement("div", {
30547
+ className: "mdd-local-ai-side-file-head"
30548
+ }, /* @__PURE__ */ React$1.createElement("span", null, file.fileName), /* @__PURE__ */ React$1.createElement("span", null, "-", ((_a2 = file.stats) == null ? void 0 : _a2.removed) || 0, " / +", ((_b2 = file.stats) == null ? void 0 : _b2.added) || 0)), /* @__PURE__ */ React$1.createElement("div", {
30549
+ className: "mdd-local-ai-side-grid"
30550
+ }, /* @__PURE__ */ React$1.createElement("div", {
30551
+ className: "mdd-local-ai-side-col-head"
30552
+ }, "\u4E0A\u6B21\u53D1\u9001"), /* @__PURE__ */ React$1.createElement("div", {
30553
+ className: "mdd-local-ai-side-col-head"
30554
+ }, "\u672C\u5730\u4FEE\u6539"), (file.rows || []).map((row, index2) => {
30555
+ var _a3, _b3, _c2, _d;
30556
+ return /* @__PURE__ */ React$1.createElement(React$1.Fragment, {
30557
+ key: `${file.fileName}-${index2}`
30558
+ }, /* @__PURE__ */ React$1.createElement("div", {
30559
+ className: `mdd-local-ai-side-cell is-before is-${row.type}`
30560
+ }, /* @__PURE__ */ React$1.createElement("span", {
30561
+ className: "mdd-local-ai-side-line"
30562
+ }, ((_a3 = row.before) == null ? void 0 : _a3.lineNumber) || ""), /* @__PURE__ */ React$1.createElement("code", null, renderHighlightedCode(((_b3 = row.before) == null ? void 0 : _b3.content) || "", file.language))), /* @__PURE__ */ React$1.createElement("div", {
30563
+ className: `mdd-local-ai-side-cell is-after is-${row.type}`
30564
+ }, /* @__PURE__ */ React$1.createElement("span", {
30565
+ className: "mdd-local-ai-side-line"
30566
+ }, ((_c2 = row.after) == null ? void 0 : _c2.lineNumber) || ""), /* @__PURE__ */ React$1.createElement("code", null, renderHighlightedCode(((_d = row.after) == null ? void 0 : _d.content) || "", file.language))));
30567
+ })));
30568
+ }));
30569
+ }
30489
30570
  function PullDiffDetail({ diffSummary }) {
30490
30571
  var _a2, _b2, _c2, _d, _e, _f, _g, _h;
30491
30572
  if (!(diffSummary == null ? void 0 : diffSummary.hasBaseline))
30492
30573
  return null;
30493
30574
  const schemaChanges = ((_a2 = diffSummary.schema) == null ? void 0 : _a2.changes) || ((_b2 = diffSummary.schema) == null ? void 0 : _b2.paths) || [];
30494
30575
  const diffText = diffSummary.diffText || "";
30495
- const hasDetail = schemaChanges.length > 0 || ((_c2 = diffSummary.script) == null ? void 0 : _c2.changed) || ((_d = diffSummary.style) == null ? void 0 : _d.changed) || diffText;
30576
+ const diffFiles = diffSummary.diffFiles || [];
30577
+ const hasDetail = schemaChanges.length > 0 || ((_c2 = diffSummary.script) == null ? void 0 : _c2.changed) || ((_d = diffSummary.style) == null ? void 0 : _d.changed) || diffText || diffFiles.length;
30496
30578
  if (!hasDetail)
30497
30579
  return null;
30498
30580
  return /* @__PURE__ */ React$1.createElement("details", {
@@ -30519,7 +30601,9 @@ function PullDiffDetail({ diffSummary }) {
30519
30601
  className: "mdd-local-ai-diff-section"
30520
30602
  }, /* @__PURE__ */ React$1.createElement("div", {
30521
30603
  className: "mdd-local-ai-diff-title"
30522
- }, "Style \u6539\u52A8"), /* @__PURE__ */ React$1.createElement("div", null, diffSummary.style.message)) : null, diffText ? /* @__PURE__ */ React$1.createElement("pre", {
30604
+ }, "Style \u6539\u52A8"), /* @__PURE__ */ React$1.createElement("div", null, diffSummary.style.message)) : null, diffFiles.length ? /* @__PURE__ */ React$1.createElement(SideBySideDiff, {
30605
+ files: diffFiles
30606
+ }) : null, !diffFiles.length && diffText ? /* @__PURE__ */ React$1.createElement("pre", {
30523
30607
  className: "mdd-local-ai-diff-pre"
30524
30608
  }, diffText) : null));
30525
30609
  }
@@ -30665,6 +30749,37 @@ function LocalAIDrawer(props) {
30665
30749
  setLoadingAction("");
30666
30750
  }
30667
30751
  };
30752
+ const handleRollback = async () => {
30753
+ const confirmed = window.confirm(
30754
+ "\u786E\u8BA4\u56DE\u6EDA\u5230\u4E0A\u6B21\u201C\u53D1\u9001\u5230\u672C\u5730 AI\u201D\u65F6\u7684\u7EBF\u4E0A\u57FA\u7EBF\u5417\uFF1F\u56DE\u6EDA\u4F1A\u5148\u66F4\u65B0\u5F53\u524D\u7F16\u8F91\u5668\u5185\u5BB9\uFF0C\u786E\u8BA4\u9884\u89C8\u540E\u8FD8\u9700\u8981\u4F7F\u7528\u539F\u4FDD\u5B58\u6309\u94AE\u63D0\u4EA4\u5230\u7EBF\u4E0A\u3002"
30755
+ );
30756
+ if (!confirmed)
30757
+ return;
30758
+ setLoadingAction("rollback");
30759
+ setPullError(null);
30760
+ try {
30761
+ const res = await rollbackPage(baseURL, pageCode);
30762
+ const nextSchema = parseSchema(res == null ? void 0 : res.schemaInfo);
30763
+ const nextScriptInfo = {
30764
+ script: (res == null ? void 0 : res.scriptInfo) || "",
30765
+ style: (res == null ? void 0 : res.style) || ""
30766
+ };
30767
+ applySchemaToEditor(schema, nextSchema);
30768
+ schema.emit(EVENT_KEY.SCRIPT_UPDATE, nextScriptInfo);
30769
+ onApply == null ? void 0 : onApply({
30770
+ schemaJson: nextSchema,
30771
+ scriptInfo: nextScriptInfo,
30772
+ raw: res
30773
+ });
30774
+ setLastSummary((res == null ? void 0 : res.summary) || "\u5DF2\u56DE\u6EDA\u5230\u4E0A\u6B21\u53D1\u9001\u5230\u672C\u5730 AI \u65F6\u7684\u57FA\u7EBF");
30775
+ setLastDiffSummary(null);
30776
+ CnMessage.success("\u5DF2\u56DE\u6EDA\u4E0A\u6B21 AI \u4FEE\u6539\uFF0C\u8BF7\u9884\u89C8\u540E\u4FDD\u5B58");
30777
+ } catch (e) {
30778
+ CnMessage.error(e.message || "\u56DE\u6EDA\u4E0A\u6B21\u66F4\u6539\u5931\u8D25");
30779
+ } finally {
30780
+ setLoadingAction("");
30781
+ }
30782
+ };
30668
30783
  const handleStatus = async () => {
30669
30784
  setLoadingAction("status");
30670
30785
  try {
@@ -30759,7 +30874,10 @@ function LocalAIDrawer(props) {
30759
30874
  }, "\u67E5\u770B\u72B6\u6001"), /* @__PURE__ */ React$1.createElement(CnButton, {
30760
30875
  loading: loadingAction === "open",
30761
30876
  onClick: handleOpen
30762
- }, "\u6253\u5F00\u76EE\u5F55"))), /* @__PURE__ */ React$1.createElement("div", {
30877
+ }, "\u6253\u5F00\u76EE\u5F55"), /* @__PURE__ */ React$1.createElement(CnButton, {
30878
+ loading: loadingAction === "rollback",
30879
+ onClick: handleRollback
30880
+ }, "\u56DE\u6EDA\u4E0A\u6B21\u66F4\u6539"))), /* @__PURE__ */ React$1.createElement("div", {
30763
30881
  className: "mdd-local-ai-section"
30764
30882
  }, /* @__PURE__ */ React$1.createElement("div", {
30765
30883
  className: "mdd-local-ai-section-title"
@@ -31331,7 +31449,7 @@ function getDefaultIndexStyle() {
31331
31449
  `;
31332
31450
  }
31333
31451
  const name = "@cniot/mdd-editor";
31334
- const version = "0.3.3";
31452
+ const version = "0.3.5";
31335
31453
  const description = "\u6A21\u578B\u9A71\u52A8\u7F16\u8F91\u5668";
31336
31454
  const scripts = {
31337
31455
  build: "vite build"
package/build/style.css CHANGED
@@ -1 +1 @@
1
- .monaco-clone-btn{position:absolute;right:10px;top:10px;z-index:101;display:none}.monaco-container{min-height:400px}.form-item-exart-abs{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;position:absolute;top:0;right:0;font-size:12px}.help-link{margin-left:20px}.handle-by-source-code{color:#00f;margin-left:5px}.handle-by-source-code-tip{color:#aaa;margin-left:5px}.ajax-schema-form-container{display:flex}.data-source-item{margin:0 0 15px;padding:3px;border:1px solid #000;border-radius:4px;border-color:#49cc90;background-color:#49cc9033;display:flex;align-items:center;cursor:pointer}.data-source-item:hover{box-shadow:0 0 5px #49cc90}.data-source-item .method{font-size:14px;font-weight:700;padding:3px 5px;text-align:center;border-radius:3px;background:#000;font-family:sans-serif;color:#fff;background:#1cce75}.data-source-item .host{font-weight:700;margin-left:5px}.data-source-item .url{font-weight:700;margin-left:10px;overflow:hidden;text-overflow:ellipsis}.data-source-item .description{margin-left:10px}.kv-table .table-operation-row{font-size:12px;margin-top:5px;display:flex;justify-content:space-between}.kv-table .table-operation-row .fast-select{width:200px}._dsType_mxilv_1{margin-bottom:10px}._dsJSONContent_mxilv_5{margin-top:10px}._dsJSONContent_mxilv_5 ._dsJSONContentTip_mxilv_8{margin-top:6px;font-weight:700}._dsAjaxContent_mxilv_13{margin-top:10px}._dsTitle_mxilv_17{font-weight:700;margin-top:10px}._actionButton_mxilv_22{margin-bottom:8px}._watchContainer_mxilv_26{display:flex;align-items:center;margin-top:10px}._dsTitleWatch_mxilv_32{margin-right:8px;font-weight:700}._staticValueOkBtn_mxilv_37{margin-left:4px}._tableDeleteBtn_mxilv_41{margin-left:8px}._secondConfirm_mxilv_45{margin-top:10px}._dsType_1islj_1{margin-bottom:10px}._dsJSONContent_1islj_5{margin-top:10px}._dsJSONContent_1islj_5 ._dsJSONContentTip_1islj_8{margin-top:6px;font-weight:700}._dsTitle_1islj_13{font-weight:700;margin-top:10px}._actionButton_1islj_18{margin-bottom:8px}._watchContainer_1islj_22{display:flex;align-items:center;margin-top:10px}._dsTitleWatch_1islj_28{margin-right:8px;font-weight:700}._staticValueOkBtn_1islj_33{margin-left:4px}._tableDeleteBtn_1islj_37{margin-left:8px}._secondConfirm_1islj_41{margin-top:10px}@charset "UTF-8";.next-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;top:0;margin:-1px}.next-select{box-sizing:border-box}.next-select *,.next-select *:before,.next-select *:after{box-sizing:border-box}.next-select{display:inline-block;position:relative;font-size:0;vertical-align:middle}.next-select-trigger{min-width:100px;outline:0;transition:all .1s linear}.next-select-trigger .next-input-label{flex:0 0 auto;width:auto}.next-select-trigger .next-select-values{display:block;width:100%;flex:1 1 0;overflow:hidden}.next-select-trigger .next-select-values>em{font-style:inherit}.next-select-trigger .next-select-values input{padding-left:0;padding-right:0}.next-select-trigger .next-input-control{flex:0 0 auto;width:auto}.next-select-trigger .next-input-control>*{display:inline-block;width:auto}.next-select-trigger .next-input-control>.next-select-arrow{padding-right:0}.next-select-trigger .next-input.next-disabled em{color:#ccc}.next-select-trigger .next-input.next-disabled .next-select-arrow{cursor:not-allowed}.next-select-trigger .next-select-clear{display:none}.next-select-trigger.next-has-clear:hover .next-select-clear{display:inline-block}.next-select-trigger.next-has-clear:hover .next-select-arrow{display:none}.next-select .next-select-inner{display:inline-flex;align-items:center;width:100%;min-width:100px;outline:0;color:#333}.next-select .next-select-inner .next-tag{line-height:1;margin-right:4px;margin-bottom:3px;padding-left:0;padding-right:0}.next-select .next-select-inner .next-input-inner{width:auto}.next-select-trigger-search{position:relative;display:inline-block;vertical-align:top;overflow:hidden;width:100%;max-width:100%}.next-select-trigger-search>input,.next-select-trigger-search>span{display:block;font-size:inherit;font-family:inherit;letter-spacing:inherit;white-space:nowrap;overflow:hidden}.next-select-trigger-search input{position:absolute;background-color:transparent;width:100%;height:100%!important;z-index:1;left:0;border:0;outline:0;margin:0;padding:0;cursor:inherit}.next-select-trigger-search>span{position:relative;visibility:hidden;white-space:pre;max-width:100%;z-index:-1}.next-select-single.next-no-search{cursor:pointer}.next-select-single.next-has-search.next-active .next-select-values>em{display:none}.next-select-single.next-no-search .next-select-values>em+.next-select-trigger-search,.next-select-single.next-inactive .next-select-values>em+.next-select-trigger-search{width:1px;opacity:0;filter:alpha(opacity=0)}.next-select-single .next-select-values{display:inline-flex;align-items:center}.next-select-single .next-select-values>em{vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-select-multiple .next-select-compact{position:relative;white-space:nowrap}.next-select-multiple .next-select-compact .next-select-trigger-search{width:auto}.next-select-multiple .next-select-compact .next-select-tag-compact{position:absolute;top:0;right:0;z-index:1;padding:0 4px 0 16px;color:#333;background:linear-gradient(90deg,transparent,#FFFFFF 10px)}.next-select-multiple .next-disabled .next-select-tag-compact{background:linear-gradient(90deg,transparent,#F7F8FA 10px)}.next-select-multiple .next-select-values,.next-select-tag .next-select-values{margin-bottom:-3px;height:auto!important}.next-select-multiple .next-select-trigger-search,.next-select-tag .next-select-trigger-search{margin-bottom:3px}.next-select-multiple .next-tag+.next-select-trigger-search,.next-select-tag .next-tag+.next-select-trigger-search{width:auto;min-width:1px}.next-select-multiple .next-input,.next-select-tag .next-input{height:auto;align-items:start}.next-select-multiple.next-small .next-select-values,.next-select-tag.next-small .next-select-values{min-height:18px;padding-top:2px;padding-bottom:2px;line-height:14px}.next-select-multiple.next-small .next-select-values-compact,.next-select-tag.next-small .next-select-values-compact{height:20px!important}.next-select-multiple.next-small .next-tag,.next-select-tag.next-small .next-tag{border:0;padding-top:0;padding-bottom:0;height:14px}.next-select-multiple.next-small .next-tag .next-tag-body,.next-select-multiple.next-small .next-tag .next-tag-close-btn,.next-select-tag.next-small .next-tag .next-tag-body,.next-select-tag.next-small .next-tag .next-tag-close-btn,.next-select-multiple.next-small .next-tag-body,.next-select-tag.next-small .next-tag-body{line-height:14px}.next-select-multiple.next-small .next-input-label,.next-select-multiple.next-small .next-input-inner,.next-select-multiple.next-small .next-input-control,.next-select-multiple.next-small .next-select-tag-compact,.next-select-tag.next-small .next-input-label,.next-select-tag.next-small .next-input-inner,.next-select-tag.next-small .next-input-control,.next-select-tag.next-small .next-select-tag-compact{line-height:18px}.next-select-multiple.next-medium .next-select-values,.next-select-tag.next-medium .next-select-values{min-height:26px;padding-top:3px;padding-bottom:3px;line-height:20px}.next-select-multiple.next-medium .next-select-values-compact,.next-select-tag.next-medium .next-select-values-compact{height:28px!important}.next-select-multiple.next-medium .next-tag,.next-select-tag.next-medium .next-tag{padding-top:1px;padding-bottom:1px;height:20px}.next-select-multiple.next-medium .next-tag .next-tag-body,.next-select-multiple.next-medium .next-tag .next-tag-close-btn,.next-select-tag.next-medium .next-tag .next-tag-body,.next-select-tag.next-medium .next-tag .next-tag-close-btn{line-height:18px}.next-select-multiple.next-medium .next-input-label,.next-select-multiple.next-medium .next-input-inner,.next-select-multiple.next-medium .next-input-control,.next-select-multiple.next-medium .next-select-tag-compact,.next-select-tag.next-medium .next-input-label,.next-select-tag.next-medium .next-input-inner,.next-select-tag.next-medium .next-input-control,.next-select-tag.next-medium .next-select-tag-compact{line-height:26px}.next-select-multiple.next-large .next-select-values,.next-select-tag.next-large .next-select-values{min-height:38px;padding-top:7px;padding-bottom:7px;line-height:24px}.next-select-multiple.next-large .next-select-values-compact,.next-select-tag.next-large .next-select-values-compact{height:40px!important}.next-select-multiple.next-large .next-tag,.next-select-tag.next-large .next-tag{padding-top:3px;padding-bottom:3px;height:24px}.next-select-multiple.next-large .next-tag .next-tag-body,.next-select-multiple.next-large .next-tag .next-tag-close-btn,.next-select-tag.next-large .next-tag .next-tag-body,.next-select-tag.next-large .next-tag .next-tag-close-btn{line-height:18px}.next-select-multiple.next-large .next-input-label,.next-select-multiple.next-large .next-input-inner,.next-select-multiple.next-large .next-input-control,.next-select-multiple.next-large .next-select-tag-compact,.next-select-tag.next-large .next-input-label,.next-select-tag.next-large .next-input-inner,.next-select-tag.next-large .next-input-control,.next-select-tag.next-large .next-select-tag-compact{line-height:38px}.next-select-auto-complete{width:160px}.next-select-auto-complete .next-input{width:100%}.next-select-auto-complete .next-input .next-input-hint-wrap{padding-right:1px}.next-select-auto-complete .next-input .next-select-arrow{padding-left:0}.next-select.next-active .next-select-arrow .next-icon-arrow-down{transform:rotate(180deg)}.next-select .next-select-unfold-icon:before{content:""}.next-select-symbol-fold:before{content:"\e63d"}.next-select-arrow{cursor:pointer;width:auto!important;text-align:center;transition:all .1s linear}.next-select-popup-wrap{animation-duration:.3s;animation-timing-function:ease;padding:0}.next-select-spacing-tb{padding:0}.next-select-menu-wrapper{max-height:260px;overflow:auto;border:1px solid #DCDEE3;border-radius:3px;box-shadow:none}.next-select-menu-wrapper .next-select-menu{max-height:none;border:none}.next-select-menu{max-height:260px;overflow:auto}.next-select-menu .next-select-menu-empty-content{padding-left:8px;padding-right:8px;color:#999}.next-select-menu.next-select-auto-complete-menu.next-select-menu-empty{display:none}.next-select-menu .next-menu-item-text .next-icon{vertical-align:middle}.next-select-all{display:block;cursor:pointer;padding:0 8px;margin:0 12px 8px;border-bottom:1px solid #DCDEE3}.next-select-all:hover{color:#3e71f7}.next-select-all .next-menu-icon-selected.next-icon{display:inline-block!important;top:initial;color:#5584ff}.next-select-highlight{color:#5584ff;font-size:12px}.next-select-in-ie.next-select-trigger .next-select-values{overflow:visible}.next-select-in-ie.next-select-trigger .next-input-control,.next-select-in-ie.next-select-trigger .next-input-label{width:1px}.next-select-in-ie.next-select-trigger .next-input-control>*{display:table-cell;width:1%}.next-select-in-ie.next-select-trigger .next-select-arrow{display:table-cell}.next-select-in-ie.next-select-trigger .next-select-clear{display:none}.next-select-in-ie.next-select-trigger.next-select-multiple .next-select-inner,.next-select-in-ie.next-select-trigger.next-select-tag .next-select-inner{vertical-align:top}.next-select-in-ie.next-select-trigger .next-select-inner,.next-select-in-ie.next-select-trigger.next-select-single .next-select-values{display:inline-table}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-small .next-select-values{line-height:20px}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-medium .next-select-values{line-height:28px}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-large .next-select-values{line-height:40px}.next-select-in-ie.next-select-trigger .next-select-trigger-search>span{max-width:100px}.next-select-in-ie.next-select-trigger.next-select-single.next-select-in-ie-fixwidth .next-select-values{position:relative}.next-select-in-ie.next-select-trigger.next-select-single.next-select-in-ie-fixwidth .next-select-values>em{position:absolute;display:inline-block;height:100%;line-height:1;vertical-align:middle;overflow:hidden;left:4px;right:0;top:30%}.next-select-in-ie.next-select-trigger.next-select-single.next-no-search .next-select-values>em+.next-select-trigger-search,.next-select-in-ie.next-select-trigger.next-select-single.next-inactive .next-select-values>em+.next-select-trigger-search{filter:alpha(opacity=0);font-size:0}.next-select-in-ie.next-select-trigger.next-no-search .next-select-trigger-search input{color:inherit}@media screen and (-webkit-min-device-pixel-ratio: 0){.next-select-multiple .next-select-compact .next-select-tag-compact{background:linear-gradient(90deg,rgba(255,255,255,0),#FFFFFF 10px)}.next-select-multiple .next-disabled .next-select-tag-compact{background:linear-gradient(90deg,rgba(255,255,255,0),#F7F8FA 10px)}}.next-select.next-select-multiple[dir=rtl] .next-select-compact .next-select-tag-compact{left:0;right:auto;padding:0 16px 0 4px;background:linear-gradient(270deg,rgba(255,255,255,0),#FFFFFF 10px)}.next-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;top:0;margin:-1px}.next-menu[dir=rtl] .next-menu-item-helper{float:left}.next-menu[dir=rtl] .next-menu-item .next-checkbox,.next-menu[dir=rtl] .next-menu-item .next-radio{margin-left:4px;margin-right:0}.next-menu[dir=rtl] .next-menu-hoz-right{float:left}.next-menu[dir=rtl] .next-menu-hoz-icon-arrow.next-icon{left:6px;right:auto}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon{margin-left:0;margin-right:-16px}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon:before,.next-menu[dir=rtl] .next-menu-icon-selected.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon.next-menu-icon-right{right:auto;left:4px}.next-menu[dir=rtl] .next-menu-icon-arrow.next-icon{left:10px;right:auto}.next-menu{box-sizing:border-box}.next-menu *,.next-menu *:before,.next-menu *:after{box-sizing:border-box}.next-menu:focus,.next-menu *:focus{outline:0}.next-menu{position:relative;min-width:100px;margin:0;list-style:none;border:1px solid #DCDEE3;border-radius:3px;box-shadow:none;background:#FFFFFF;line-height:32px;font-size:12px;animation-duration:.3s;animation-timing-function:ease}.next-menu-spacing-lr{padding:0}.next-menu-spacing-lr.next-menu-outside>.next-menu{height:100%;overflow-y:auto}.next-menu-spacing-tb{padding:0}.next-menu.next-ver{padding:8px 0}.next-menu.next-ver .next-menu-item{padding:0 20px}.next-menu.next-hoz{padding:8px 0}.next-menu.next-hoz .next-menu-item{padding:0 20px}.next-menu-embeddable,.next-menu-embeddable .next-menu-item.next-disabled,.next-menu-embeddable .next-menu-item.next-disabled .next-menu-item-text>a{background:transparent;border:none}.next-menu-embeddable{box-shadow:none}.next-menu-embeddable .next-menu-item-inner{height:100%}.next-menu-content{position:relative;padding:0;margin:0;list-style:none}.next-menu-sub-menu{padding:0;margin:0;list-style:none}.next-menu-sub-menu.next-expand-enter{overflow:hidden}.next-menu-sub-menu.next-expand-enter-active{transition:height .3s ease}.next-menu-sub-menu.next-expand-leave{overflow:hidden}.next-menu-sub-menu.next-expand-leave-active{transition:height .3s ease}.next-menu-item{position:relative;transition:background .1s linear;color:#333;cursor:pointer}.next-menu-item-helper{float:right;color:#999;font-style:normal;font-size:12px}.next-menu-item .next-checkbox,.next-menu-item .next-radio{margin-right:4px}.next-menu-item.next-selected{color:#333;background-color:#fff}.next-menu-item.next-selected .next-menu-icon-arrow{color:#666}.next-menu-item.next-selected .next-menu-icon-selected{color:#5584ff}.next-menu-item.next-disabled,.next-menu-item.next-disabled .next-menu-item-text>a{color:#ccc;background-color:#fff}.next-menu-item.next-disabled .next-menu-icon-arrow,.next-menu-item.next-disabled .next-menu-item-text>a .next-menu-icon-arrow{color:#ccc}.next-menu-item.next-disabled .next-menu-icon-selected,.next-menu-item.next-disabled .next-menu-item-text>a .next-menu-icon-selected{color:#ccc}.next-menu-item.next-disabled,.next-menu-item.next-disabled .next-menu-item-text>a{cursor:not-allowed}.next-menu-item:not(.next-disabled):hover,.next-menu-item:not(.next-disabled).next-selected:hover,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover,.next-menu-item:not(.next-disabled).next-selected:focus:hover,.next-menu-item:not(.next-disabled).next-focused,.next-menu-item:not(.next-disabled).next-selected.next-focused,.next-menu-item:not(.next-disabled).next-selected:focus{color:#333;background-color:#f2f3f7}.next-menu-item:not(.next-disabled):hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:focus:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-focused .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected.next-focused .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:focus .next-menu-icon-arrow{color:#333}.next-menu-item:not(.next-disabled):hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:focus:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-focused .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected.next-focused .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:focus .next-menu-icon-selected{color:#5584ff}.next-menu-item-inner{height:32px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.next-menu-item .next-menu-item-text{vertical-align:middle}.next-menu-item .next-menu-item-text>a{display:inline-block;text-decoration:none;color:#333}.next-menu-item .next-menu-item-text>a:before{position:absolute;background-color:transparent;top:0;left:0;bottom:0;right:0;content:""}.next-menu.next-hoz{padding:0}.next-menu.next-hoz.next-menu-nowrap{overflow:hidden;white-space:nowrap}.next-menu.next-hoz.next-menu-nowrap .next-menu-more{text-align:center}.next-menu.next-hoz>.next-menu-item,.next-menu.next-hoz>.next-menu-sub-menu-wrapper,.next-menu.next-hoz .next-menu-content>.next-menu-item{display:inline-block;vertical-align:top}.next-menu.next-hoz .next-menu-header,.next-menu.next-hoz .next-menu-content,.next-menu.next-hoz .next-menu-footer{display:inline-block}.next-menu-hoz-right{float:right}.next-menu-group-label{padding:0 12px;color:#999}.next-menu-divider{margin:8px 12px;border-bottom:1px solid #E6E7EB}.next-menu .next-menu-icon-selected.next-icon{position:absolute;top:0;margin-left:-16px}.next-menu .next-menu-icon-selected.next-icon:before,.next-menu .next-menu-icon-selected.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu .next-menu-icon-selected.next-icon.next-menu-icon-right{right:4px}.next-menu .next-menu-symbol-icon-selected.next-menu-icon-selected:before{content:"\e632"}.next-menu .next-menu-icon-arrow.next-icon{position:absolute;top:0;right:10px}.next-menu .next-menu-icon-arrow.next-icon:before,.next-menu .next-menu-icon-arrow.next-icon .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow.next-icon{transform:scale(.5);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow.next-icon:before{width:16px;font-size:16px}}.next-menu .next-menu-icon-arrow.next-icon{color:#666;transition:all .1s linear}.next-menu .next-menu-icon-arrow-down:before{content:"\e63d"}.next-menu .next-menu-icon-arrow-down.next-open{transform:rotate(180deg)}.next-menu .next-menu-icon-arrow-down.next-open:before,.next-menu .next-menu-icon-arrow-down.next-open .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow-down.next-open{transform:scale(.5) rotate(180deg);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow-down.next-open:before{width:16px;font-size:16px}}.next-menu .next-menu-symbol-popupfold:before{content:"\e619"}.next-menu .next-menu-icon-arrow-right.next-open{transform:rotate(-90deg)}.next-menu .next-menu-icon-arrow-right.next-open:before,.next-menu .next-menu-icon-arrow-right.next-open .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow-right.next-open{transform:scale(.5) rotate(-90deg);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow-right.next-open:before{width:16px;font-size:16px}}.next-menu .next-menu-hoz-icon-arrow.next-icon{position:absolute;top:0;right:6px}.next-menu .next-menu-hoz-icon-arrow.next-icon:before,.next-menu .next-menu-hoz-icon-arrow.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu .next-menu-hoz-icon-arrow.next-icon{color:#666;transition:all .1s linear}.next-menu .next-menu-hoz-icon-arrow.next-icon:before{content:"\e63d"}.next-menu-unfold-icon:before{content:""}.next-menu .next-menu-hoz-icon-arrow.next-open{transform:rotate(180deg)}.next-menu .next-menu-hoz-icon-arrow.next-open:before,.next-menu .next-menu-hoz-icon-arrow.next-open .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu.next-context{line-height:24px}.next-menu.next-context .next-menu-item-inner{height:24px}.cn-address{min-width:160px}.cn-address-popup .cn-address-list,.cn-address-popup .cn-address-item{width:184px}.cn-address-popup .cn-address-footer{display:flex;border-top:1px solid #dcdee3;background-color:#fff}.cn-address-popup .cn-address-footer .cn-address-footer-item{display:flex;flex:1}.cn-address-popup .cn-address-footer .cn-address-footer-item .cn-address-footer-btn{display:flex;flex:1;justify-content:center;align-items:center;font-size:12px;color:#333;margin:0;border-radius:0;border:0;border-right:1px solid #dcdee3}.cn-address-popup .cn-address--mark-deletion{text-decoration:line-through;font-style:oblique}.cn-address-header-search{width:100%;padding:10px 0;background-color:#fff}.cn-address-header-search .cn-address-header-search-inner{width:164px;margin:0 10px}.cn-address--search-loading-container{padding:16px 40px;font-size:12px}.cn-address-search-text{background-color:#fff;color:#999;text-align:center}.cn-address-suffix-icon{margin-top:2px;margin-right:4px;color:#999}.next-cascader-select{box-sizing:border-box}.next-cascader-select *,.next-cascader-select *:before,.next-cascader-select *:after{box-sizing:border-box}.next-cascader-select-dropdown{box-sizing:border-box}.next-cascader-select-dropdown *,.next-cascader-select-dropdown *:before,.next-cascader-select-dropdown *:after{box-sizing:border-box}.next-cascader-select-dropdown{border:1px solid #DCDEE3;border-radius:3px;box-shadow:none}.next-cascader-select-dropdown .next-cascader{display:block;border:none;box-shadow:none}.next-cascader-select-not-found{padding:0;border:none;box-shadow:none;overflow:auto;color:#999}.next-cascader-select-not-found .next-menu-item:hover{color:#999;background:#FFFFFF;cursor:default}.mdd-formily-select .next-select-values{width:0!important}._container_t9q14_1 .next-formily-item-feedback-layout-loose{margin-bottom:10px}._container_t9q14_1 .next-formily-item-label,._container_t9q14_1 .cn-ui-form-item .cn-ui-form-item-label{line-height:24px}._container_t9q14_1 ._footer_t9q14_8{display:flex;justify-content:flex-end}._mddTableForm_tl8oe_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableForm_tl8oe_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableForm_tl8oe_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableFormTitle_tl8oe_14{padding-bottom:8px;display:flex;justify-content:space-between}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableFormBottom_tl8oe_34{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_tl8oe_41{display:flex;align-items:center;padding:4px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium{height:24px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_tl8oe_62{border-bottom:2px dashed #3080fe!important}._drop-over-upward_tl8oe_66{border-top:2px dashed #3080fe!important}._itemComponent_tl8oe_70{display:flex;align-items:center;padding:0 12px}._itemLabel_tl8oe_76{padding-right:12px;font-size:12px}._collapseContent_tl8oe_81{padding:0 12px}._itemClose_tl8oe_85{position:absolute;right:12px;top:0;height:48px;line-height:48px}._mddForm_1e2nn_1{display:flex;flex-direction:column;padding:12px}._mddForm_1e2nn_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddForm_1e2nn_1 .cn-next-number-picker .cn-next-input.cn-next-small{height:24px;display:flex}._mddForm_1e2nn_1 .cn-next-number-picker-normal .cn-next-input .cn-next-input-control{width:22px}._mddForm_1e2nn_1 .cn-next-form-item-label{color:#000000d9}._FormTitle_1e2nn_20{padding-bottom:8px}._FormTitleHelp_1e2nn_24{font-size:12px;color:#999;padding-bottom:8px}._FormContent_1e2nn_30{padding:28px;background:#f9f9f9}._content_1e2nn_35{padding:12px}._mddTableArray_16ght_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableArray_16ght_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableArray_16ght_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableArrayTitle_16ght_14{padding-bottom:8px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableArrayBottom_16ght_32{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_16ght_39{display:flex;align-items:center;padding:4px;position:relative}._itemTitle_16ght_39 .cn-next-input.cn-next-medium{height:24px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_16ght_61{border-bottom:2px dashed #3080fe!important}._drop-over-upward_16ght_65{border-top:2px dashed #3080fe!important}._collapseContent_16ght_69{padding:0 12px}._itemClose_16ght_73{position:absolute;right:12px;top:0;height:48px;line-height:48px}._middleBox_119xt_20{margin-left:"10px";margin-bottom:8px;display:flex}._middleBoxLeft_119xt_26{width:100px;text-align:right}._middleBoxRight_119xt_31{flex:1}._customTabItem_119xt_1{padding:8px}._tabTitle_119xt_5{font-size:14px}._tabLabel_119xt_9{display:inline-block;padding:0 2px}._middleBox_119xt_20{margin-left:"10px";margin-bottom:8px;display:flex}._middleBoxLeft_119xt_26{width:100px;text-align:right}._middleBoxRight_119xt_31{flex:1}._mddTableArray_16ght_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableArray_16ght_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableArray_16ght_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableArrayTitle_16ght_14{padding-bottom:8px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableArrayBottom_16ght_32{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_16ght_39{display:flex;align-items:center;padding:4px;position:relative}._itemTitle_16ght_39 .cn-next-input.cn-next-medium{height:24px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_16ght_61{border-bottom:2px dashed #3080fe!important}._drop-over-upward_16ght_65{border-top:2px dashed #3080fe!important}._collapseContent_16ght_69{padding:0 12px}._itemClose_16ght_73{position:absolute;right:12px;top:0;height:48px;line-height:48px}._title_10adh_1{width:100%;display:flex;gap:12px}._titleItem_10adh_7{display:flex;align-items:center}._titleItemLabel_10adh_12{padding-right:12px}._titleItemLabel_10adh_12:first-of-type{padding-left:0}._customTabItem_1lh1l_1{padding:8px}._tabTitle_1lh1l_5{font-size:14px}._tabLabel_1lh1l_9{display:inline-block;padding:0 2px}._mddDetailItems_1lh1l_14 ._itemComponent_1lh1l_14{display:flex;align-items:center;padding:0 12px}._mddDetailItems_1lh1l_14 ._itemLabel_1lh1l_19{padding-right:12px;font-size:12px}.build-page-tab-detail-help{font-size:13px;color:#999;padding:0 12px 12px}._customTabItem_ac2i9_1{padding:8px}._tabTitle_ac2i9_5{font-size:14px}._tabLabel_ac2i9_9{display:inline-block;padding:0 2px}.formily-form-v2-kv{padding:0 12px;display:flex;flex-direction:column;margin-bottom:12px}.formily-form-v2-kv .formily-form-v2-title-wrapper{margin-bottom:8px;line-height:1}.formily-form-v2-kv .formily-form-v2-title-wrapper .title{margin-right:8px}.formily-form-v2-kv .formily-form-v2-title-wrapper .subTitle{color:#585d66;font-size:12px}._kvContainer_rfbib_1{padding:0 12px;display:flex;flex-direction:column;margin-bottom:12px}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7{margin-bottom:8px;line-height:1}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7 ._kvTitle_rfbib_11{margin-right:8px}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7 ._kvSubTitle_rfbib_14{color:#585d66;font-size:12px}.mdd-editor-build-content{flex:1;position:relative}.mdd-editor-build-content .mdd-editor-toolbar{cursor:zoom-in;position:absolute;z-index:100;text-align:right;top:0;right:0;padding:4px 18px;display:flex;align-items:center;gap:8px}.mdd-editor-build-content .mdd-editor-ai-button{cursor:pointer;font-weight:600;box-shadow:0 2px 8px #3080fe47}.mdd-editor-build-content .preview-tool-full>i{cursor:pointer}.mdd-editor-build-content .preview-tool-full .icon-box{position:absolute;right:12px;top:4px;padding:4px;width:1.5em;height:1.5em;display:flex;justify-content:center;align-items:center;background-color:#00000052;border-radius:2px;cursor:pointer;z-index:19}.mdd-editor-build-content .preview-tool-full .icon-box img{display:inline-block;width:14px;height:14px}.mdd-script-card{position:relative}.mdd-script-card .mdd-script-top-buttons{position:absolute;right:22px;top:12px;display:flex;gap:12px;z-index:10}.mdd-local-ai{display:flex;flex-direction:column;gap:14px;padding:2px 2px 10px;color:#1f2937}.mdd-local-ai .mdd-local-ai-card{border-radius:8px}.mdd-local-ai .mdd-local-ai-hero{overflow:hidden;border:1px solid #dbe5f5;box-shadow:0 8px 24px #1c4e9e14}.mdd-local-ai .mdd-local-ai-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid #eef3fb}.mdd-local-ai .mdd-local-ai-heading{color:#111827;font-size:17px;font-weight:700;line-height:24px}.mdd-local-ai .mdd-local-ai-subtitle{margin-top:4px;color:#64748b;font-size:13px;line-height:20px}.mdd-local-ai .mdd-local-ai-status{flex-shrink:0;padding:4px 10px;color:#64748b;font-size:12px;line-height:18px;background:#f1f5f9;border:1px solid #dbe3ef;border-radius:999px}.mdd-local-ai .mdd-local-ai-status.is-ready{color:#0f7a3f;background:#ecfdf3;border-color:#b7ebc6}.mdd-local-ai .mdd-local-ai-bridge-row{display:flex;align-items:flex-end;gap:10px;padding-top:14px}.mdd-local-ai .mdd-local-ai-field{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.mdd-local-ai .mdd-local-ai-label{color:#64748b;font-size:12px;line-height:18px}.mdd-local-ai .mdd-local-ai-input{width:100%}.mdd-local-ai .mdd-local-ai-meta{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.mdd-local-ai .mdd-local-ai-meta-item{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px 12px;background:#f8fafc;border:1px solid #e5edf7;border-radius:6px}.mdd-local-ai .mdd-local-ai-meta-item span{display:block;color:#64748b;font-size:12px;line-height:18px}.mdd-local-ai .mdd-local-ai-meta-item strong{display:block;overflow:hidden;color:#1f2937;font-size:13px;font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.mdd-local-ai .mdd-local-ai-meta-path strong{white-space:normal}.mdd-local-ai .mdd-local-ai-section{padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.mdd-local-ai .mdd-local-ai-section-title{margin-bottom:10px;color:#374151;font-size:13px;font-weight:700;line-height:20px}.mdd-local-ai .mdd-local-ai-actions,.mdd-local-ai .mdd-local-ai-copy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mdd-local-ai .mdd-local-ai-actions>*,.mdd-local-ai .mdd-local-ai-copy-actions>*{width:100%}.mdd-local-ai .mdd-local-ai-actions .cn-ui-btn,.mdd-local-ai .mdd-local-ai-copy-actions .cn-ui-btn,.mdd-local-ai .mdd-local-ai-actions button,.mdd-local-ai .mdd-local-ai-copy-actions button{min-width:0}.mdd-local-ai .mdd-local-ai-copy-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.mdd-local-ai .mdd-local-ai-summary{padding:10px 12px;color:#164e63;background:#ecfeff;border:1px solid #bae6fd;border-radius:8px;word-break:break-all}.mdd-local-ai .mdd-local-ai-diff{color:#333;background:#fff;border:1px solid #d8dde8;border-radius:8px}.mdd-local-ai .mdd-local-ai-diff summary{padding:10px 12px;font-weight:600;cursor:pointer;user-select:none}.mdd-local-ai .mdd-local-ai-diff-content{padding:0 12px 12px;border-top:1px solid #eef0f4}.mdd-local-ai .mdd-local-ai-diff-section{margin-top:10px;color:#555;font-size:13px;line-height:22px}.mdd-local-ai .mdd-local-ai-diff-title{margin-bottom:4px;color:#1f2937;font-weight:600}.mdd-local-ai .mdd-local-ai-diff-list{max-height:160px;margin:0;padding-left:18px;overflow:auto}.mdd-local-ai .mdd-local-ai-diff-list li{margin-bottom:4px}.mdd-local-ai .mdd-local-ai-diff-list code{margin-right:8px;padding:1px 4px;color:#1d4ed8;background:#eff6ff;border-radius:3px;word-break:break-all}.mdd-local-ai .mdd-local-ai-diff-pre{max-height:260px;margin:10px 0 0;padding:10px;overflow:auto;color:#1f2937;font-size:12px;line-height:18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:4px;white-space:pre-wrap}.mdd-local-ai .mdd-local-ai-error{padding:10px 12px;color:#7a2e0e;background:#fff7e8;border:1px solid #ffd591;border-radius:6px}.mdd-local-ai .mdd-local-ai-error-title{margin-bottom:6px;font-weight:600}.mdd-local-ai .mdd-local-ai-error-message{line-height:20px;white-space:pre-wrap;word-break:break-word}.mdd-local-ai .mdd-local-ai-error-snippet{max-height:180px;margin:8px 0 0;padding:8px;overflow:auto;color:#3d3328;font-size:12px;line-height:18px;background:#fff;border:1px solid #ffe7ba;border-radius:4px;white-space:pre-wrap}.mdd-local-ai .mdd-local-ai-title{margin-bottom:8px;color:#1f2937;font-weight:600}.mdd-local-ai .mdd-local-ai-tips{line-height:24px;color:#555}@media (max-width: 560px){.mdd-local-ai .mdd-local-ai-bridge-row{align-items:stretch;flex-direction:column}.mdd-local-ai .mdd-local-ai-meta,.mdd-local-ai .mdd-local-ai-actions,.mdd-local-ai .mdd-local-ai-copy-actions{grid-template-columns:1fr}}._customTabItem_1y6va_1{padding:8px}._tabTitle_1y6va_5{font-size:14px}._tabLabel_1y6va_9{display:inline-block;padding:0 2px}.mdd-tip{color:#999;display:inline;padding-left:20px}
1
+ .monaco-clone-btn{position:absolute;right:10px;top:10px;z-index:101;display:none}.monaco-container{min-height:400px}.form-item-exart-abs{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;position:absolute;top:0;right:0;font-size:12px}.help-link{margin-left:20px}.handle-by-source-code{color:#00f;margin-left:5px}.handle-by-source-code-tip{color:#aaa;margin-left:5px}.ajax-schema-form-container{display:flex}.data-source-item{margin:0 0 15px;padding:3px;border:1px solid #000;border-radius:4px;border-color:#49cc90;background-color:#49cc9033;display:flex;align-items:center;cursor:pointer}.data-source-item:hover{box-shadow:0 0 5px #49cc90}.data-source-item .method{font-size:14px;font-weight:700;padding:3px 5px;text-align:center;border-radius:3px;background:#000;font-family:sans-serif;color:#fff;background:#1cce75}.data-source-item .host{font-weight:700;margin-left:5px}.data-source-item .url{font-weight:700;margin-left:10px;overflow:hidden;text-overflow:ellipsis}.data-source-item .description{margin-left:10px}.kv-table .table-operation-row{font-size:12px;margin-top:5px;display:flex;justify-content:space-between}.kv-table .table-operation-row .fast-select{width:200px}._dsType_mxilv_1{margin-bottom:10px}._dsJSONContent_mxilv_5{margin-top:10px}._dsJSONContent_mxilv_5 ._dsJSONContentTip_mxilv_8{margin-top:6px;font-weight:700}._dsAjaxContent_mxilv_13{margin-top:10px}._dsTitle_mxilv_17{font-weight:700;margin-top:10px}._actionButton_mxilv_22{margin-bottom:8px}._watchContainer_mxilv_26{display:flex;align-items:center;margin-top:10px}._dsTitleWatch_mxilv_32{margin-right:8px;font-weight:700}._staticValueOkBtn_mxilv_37{margin-left:4px}._tableDeleteBtn_mxilv_41{margin-left:8px}._secondConfirm_mxilv_45{margin-top:10px}._dsType_1islj_1{margin-bottom:10px}._dsJSONContent_1islj_5{margin-top:10px}._dsJSONContent_1islj_5 ._dsJSONContentTip_1islj_8{margin-top:6px;font-weight:700}._dsTitle_1islj_13{font-weight:700;margin-top:10px}._actionButton_1islj_18{margin-bottom:8px}._watchContainer_1islj_22{display:flex;align-items:center;margin-top:10px}._dsTitleWatch_1islj_28{margin-right:8px;font-weight:700}._staticValueOkBtn_1islj_33{margin-left:4px}._tableDeleteBtn_1islj_37{margin-left:8px}._secondConfirm_1islj_41{margin-top:10px}@charset "UTF-8";.next-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;top:0;margin:-1px}.next-select{box-sizing:border-box}.next-select *,.next-select *:before,.next-select *:after{box-sizing:border-box}.next-select{display:inline-block;position:relative;font-size:0;vertical-align:middle}.next-select-trigger{min-width:100px;outline:0;transition:all .1s linear}.next-select-trigger .next-input-label{flex:0 0 auto;width:auto}.next-select-trigger .next-select-values{display:block;width:100%;flex:1 1 0;overflow:hidden}.next-select-trigger .next-select-values>em{font-style:inherit}.next-select-trigger .next-select-values input{padding-left:0;padding-right:0}.next-select-trigger .next-input-control{flex:0 0 auto;width:auto}.next-select-trigger .next-input-control>*{display:inline-block;width:auto}.next-select-trigger .next-input-control>.next-select-arrow{padding-right:0}.next-select-trigger .next-input.next-disabled em{color:#ccc}.next-select-trigger .next-input.next-disabled .next-select-arrow{cursor:not-allowed}.next-select-trigger .next-select-clear{display:none}.next-select-trigger.next-has-clear:hover .next-select-clear{display:inline-block}.next-select-trigger.next-has-clear:hover .next-select-arrow{display:none}.next-select .next-select-inner{display:inline-flex;align-items:center;width:100%;min-width:100px;outline:0;color:#333}.next-select .next-select-inner .next-tag{line-height:1;margin-right:4px;margin-bottom:3px;padding-left:0;padding-right:0}.next-select .next-select-inner .next-input-inner{width:auto}.next-select-trigger-search{position:relative;display:inline-block;vertical-align:top;overflow:hidden;width:100%;max-width:100%}.next-select-trigger-search>input,.next-select-trigger-search>span{display:block;font-size:inherit;font-family:inherit;letter-spacing:inherit;white-space:nowrap;overflow:hidden}.next-select-trigger-search input{position:absolute;background-color:transparent;width:100%;height:100%!important;z-index:1;left:0;border:0;outline:0;margin:0;padding:0;cursor:inherit}.next-select-trigger-search>span{position:relative;visibility:hidden;white-space:pre;max-width:100%;z-index:-1}.next-select-single.next-no-search{cursor:pointer}.next-select-single.next-has-search.next-active .next-select-values>em{display:none}.next-select-single.next-no-search .next-select-values>em+.next-select-trigger-search,.next-select-single.next-inactive .next-select-values>em+.next-select-trigger-search{width:1px;opacity:0;filter:alpha(opacity=0)}.next-select-single .next-select-values{display:inline-flex;align-items:center}.next-select-single .next-select-values>em{vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-select-multiple .next-select-compact{position:relative;white-space:nowrap}.next-select-multiple .next-select-compact .next-select-trigger-search{width:auto}.next-select-multiple .next-select-compact .next-select-tag-compact{position:absolute;top:0;right:0;z-index:1;padding:0 4px 0 16px;color:#333;background:linear-gradient(90deg,transparent,#FFFFFF 10px)}.next-select-multiple .next-disabled .next-select-tag-compact{background:linear-gradient(90deg,transparent,#F7F8FA 10px)}.next-select-multiple .next-select-values,.next-select-tag .next-select-values{margin-bottom:-3px;height:auto!important}.next-select-multiple .next-select-trigger-search,.next-select-tag .next-select-trigger-search{margin-bottom:3px}.next-select-multiple .next-tag+.next-select-trigger-search,.next-select-tag .next-tag+.next-select-trigger-search{width:auto;min-width:1px}.next-select-multiple .next-input,.next-select-tag .next-input{height:auto;align-items:start}.next-select-multiple.next-small .next-select-values,.next-select-tag.next-small .next-select-values{min-height:18px;padding-top:2px;padding-bottom:2px;line-height:14px}.next-select-multiple.next-small .next-select-values-compact,.next-select-tag.next-small .next-select-values-compact{height:20px!important}.next-select-multiple.next-small .next-tag,.next-select-tag.next-small .next-tag{border:0;padding-top:0;padding-bottom:0;height:14px}.next-select-multiple.next-small .next-tag .next-tag-body,.next-select-multiple.next-small .next-tag .next-tag-close-btn,.next-select-tag.next-small .next-tag .next-tag-body,.next-select-tag.next-small .next-tag .next-tag-close-btn,.next-select-multiple.next-small .next-tag-body,.next-select-tag.next-small .next-tag-body{line-height:14px}.next-select-multiple.next-small .next-input-label,.next-select-multiple.next-small .next-input-inner,.next-select-multiple.next-small .next-input-control,.next-select-multiple.next-small .next-select-tag-compact,.next-select-tag.next-small .next-input-label,.next-select-tag.next-small .next-input-inner,.next-select-tag.next-small .next-input-control,.next-select-tag.next-small .next-select-tag-compact{line-height:18px}.next-select-multiple.next-medium .next-select-values,.next-select-tag.next-medium .next-select-values{min-height:26px;padding-top:3px;padding-bottom:3px;line-height:20px}.next-select-multiple.next-medium .next-select-values-compact,.next-select-tag.next-medium .next-select-values-compact{height:28px!important}.next-select-multiple.next-medium .next-tag,.next-select-tag.next-medium .next-tag{padding-top:1px;padding-bottom:1px;height:20px}.next-select-multiple.next-medium .next-tag .next-tag-body,.next-select-multiple.next-medium .next-tag .next-tag-close-btn,.next-select-tag.next-medium .next-tag .next-tag-body,.next-select-tag.next-medium .next-tag .next-tag-close-btn{line-height:18px}.next-select-multiple.next-medium .next-input-label,.next-select-multiple.next-medium .next-input-inner,.next-select-multiple.next-medium .next-input-control,.next-select-multiple.next-medium .next-select-tag-compact,.next-select-tag.next-medium .next-input-label,.next-select-tag.next-medium .next-input-inner,.next-select-tag.next-medium .next-input-control,.next-select-tag.next-medium .next-select-tag-compact{line-height:26px}.next-select-multiple.next-large .next-select-values,.next-select-tag.next-large .next-select-values{min-height:38px;padding-top:7px;padding-bottom:7px;line-height:24px}.next-select-multiple.next-large .next-select-values-compact,.next-select-tag.next-large .next-select-values-compact{height:40px!important}.next-select-multiple.next-large .next-tag,.next-select-tag.next-large .next-tag{padding-top:3px;padding-bottom:3px;height:24px}.next-select-multiple.next-large .next-tag .next-tag-body,.next-select-multiple.next-large .next-tag .next-tag-close-btn,.next-select-tag.next-large .next-tag .next-tag-body,.next-select-tag.next-large .next-tag .next-tag-close-btn{line-height:18px}.next-select-multiple.next-large .next-input-label,.next-select-multiple.next-large .next-input-inner,.next-select-multiple.next-large .next-input-control,.next-select-multiple.next-large .next-select-tag-compact,.next-select-tag.next-large .next-input-label,.next-select-tag.next-large .next-input-inner,.next-select-tag.next-large .next-input-control,.next-select-tag.next-large .next-select-tag-compact{line-height:38px}.next-select-auto-complete{width:160px}.next-select-auto-complete .next-input{width:100%}.next-select-auto-complete .next-input .next-input-hint-wrap{padding-right:1px}.next-select-auto-complete .next-input .next-select-arrow{padding-left:0}.next-select.next-active .next-select-arrow .next-icon-arrow-down{transform:rotate(180deg)}.next-select .next-select-unfold-icon:before{content:""}.next-select-symbol-fold:before{content:"\e63d"}.next-select-arrow{cursor:pointer;width:auto!important;text-align:center;transition:all .1s linear}.next-select-popup-wrap{animation-duration:.3s;animation-timing-function:ease;padding:0}.next-select-spacing-tb{padding:0}.next-select-menu-wrapper{max-height:260px;overflow:auto;border:1px solid #DCDEE3;border-radius:3px;box-shadow:none}.next-select-menu-wrapper .next-select-menu{max-height:none;border:none}.next-select-menu{max-height:260px;overflow:auto}.next-select-menu .next-select-menu-empty-content{padding-left:8px;padding-right:8px;color:#999}.next-select-menu.next-select-auto-complete-menu.next-select-menu-empty{display:none}.next-select-menu .next-menu-item-text .next-icon{vertical-align:middle}.next-select-all{display:block;cursor:pointer;padding:0 8px;margin:0 12px 8px;border-bottom:1px solid #DCDEE3}.next-select-all:hover{color:#3e71f7}.next-select-all .next-menu-icon-selected.next-icon{display:inline-block!important;top:initial;color:#5584ff}.next-select-highlight{color:#5584ff;font-size:12px}.next-select-in-ie.next-select-trigger .next-select-values{overflow:visible}.next-select-in-ie.next-select-trigger .next-input-control,.next-select-in-ie.next-select-trigger .next-input-label{width:1px}.next-select-in-ie.next-select-trigger .next-input-control>*{display:table-cell;width:1%}.next-select-in-ie.next-select-trigger .next-select-arrow{display:table-cell}.next-select-in-ie.next-select-trigger .next-select-clear{display:none}.next-select-in-ie.next-select-trigger.next-select-multiple .next-select-inner,.next-select-in-ie.next-select-trigger.next-select-tag .next-select-inner{vertical-align:top}.next-select-in-ie.next-select-trigger .next-select-inner,.next-select-in-ie.next-select-trigger.next-select-single .next-select-values{display:inline-table}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-small .next-select-values{line-height:20px}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-medium .next-select-values{line-height:28px}.next-select-in-ie.next-select-trigger.next-select-single .next-input.next-large .next-select-values{line-height:40px}.next-select-in-ie.next-select-trigger .next-select-trigger-search>span{max-width:100px}.next-select-in-ie.next-select-trigger.next-select-single.next-select-in-ie-fixwidth .next-select-values{position:relative}.next-select-in-ie.next-select-trigger.next-select-single.next-select-in-ie-fixwidth .next-select-values>em{position:absolute;display:inline-block;height:100%;line-height:1;vertical-align:middle;overflow:hidden;left:4px;right:0;top:30%}.next-select-in-ie.next-select-trigger.next-select-single.next-no-search .next-select-values>em+.next-select-trigger-search,.next-select-in-ie.next-select-trigger.next-select-single.next-inactive .next-select-values>em+.next-select-trigger-search{filter:alpha(opacity=0);font-size:0}.next-select-in-ie.next-select-trigger.next-no-search .next-select-trigger-search input{color:inherit}@media screen and (-webkit-min-device-pixel-ratio: 0){.next-select-multiple .next-select-compact .next-select-tag-compact{background:linear-gradient(90deg,rgba(255,255,255,0),#FFFFFF 10px)}.next-select-multiple .next-disabled .next-select-tag-compact{background:linear-gradient(90deg,rgba(255,255,255,0),#F7F8FA 10px)}}.next-select.next-select-multiple[dir=rtl] .next-select-compact .next-select-tag-compact{left:0;right:auto;padding:0 16px 0 4px;background:linear-gradient(270deg,rgba(255,255,255,0),#FFFFFF 10px)}.next-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;top:0;margin:-1px}.next-menu[dir=rtl] .next-menu-item-helper{float:left}.next-menu[dir=rtl] .next-menu-item .next-checkbox,.next-menu[dir=rtl] .next-menu-item .next-radio{margin-left:4px;margin-right:0}.next-menu[dir=rtl] .next-menu-hoz-right{float:left}.next-menu[dir=rtl] .next-menu-hoz-icon-arrow.next-icon{left:6px;right:auto}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon{margin-left:0;margin-right:-16px}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon:before,.next-menu[dir=rtl] .next-menu-icon-selected.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu[dir=rtl] .next-menu-icon-selected.next-icon.next-menu-icon-right{right:auto;left:4px}.next-menu[dir=rtl] .next-menu-icon-arrow.next-icon{left:10px;right:auto}.next-menu{box-sizing:border-box}.next-menu *,.next-menu *:before,.next-menu *:after{box-sizing:border-box}.next-menu:focus,.next-menu *:focus{outline:0}.next-menu{position:relative;min-width:100px;margin:0;list-style:none;border:1px solid #DCDEE3;border-radius:3px;box-shadow:none;background:#FFFFFF;line-height:32px;font-size:12px;animation-duration:.3s;animation-timing-function:ease}.next-menu-spacing-lr{padding:0}.next-menu-spacing-lr.next-menu-outside>.next-menu{height:100%;overflow-y:auto}.next-menu-spacing-tb{padding:0}.next-menu.next-ver{padding:8px 0}.next-menu.next-ver .next-menu-item{padding:0 20px}.next-menu.next-hoz{padding:8px 0}.next-menu.next-hoz .next-menu-item{padding:0 20px}.next-menu-embeddable,.next-menu-embeddable .next-menu-item.next-disabled,.next-menu-embeddable .next-menu-item.next-disabled .next-menu-item-text>a{background:transparent;border:none}.next-menu-embeddable{box-shadow:none}.next-menu-embeddable .next-menu-item-inner{height:100%}.next-menu-content{position:relative;padding:0;margin:0;list-style:none}.next-menu-sub-menu{padding:0;margin:0;list-style:none}.next-menu-sub-menu.next-expand-enter{overflow:hidden}.next-menu-sub-menu.next-expand-enter-active{transition:height .3s ease}.next-menu-sub-menu.next-expand-leave{overflow:hidden}.next-menu-sub-menu.next-expand-leave-active{transition:height .3s ease}.next-menu-item{position:relative;transition:background .1s linear;color:#333;cursor:pointer}.next-menu-item-helper{float:right;color:#999;font-style:normal;font-size:12px}.next-menu-item .next-checkbox,.next-menu-item .next-radio{margin-right:4px}.next-menu-item.next-selected{color:#333;background-color:#fff}.next-menu-item.next-selected .next-menu-icon-arrow{color:#666}.next-menu-item.next-selected .next-menu-icon-selected{color:#5584ff}.next-menu-item.next-disabled,.next-menu-item.next-disabled .next-menu-item-text>a{color:#ccc;background-color:#fff}.next-menu-item.next-disabled .next-menu-icon-arrow,.next-menu-item.next-disabled .next-menu-item-text>a .next-menu-icon-arrow{color:#ccc}.next-menu-item.next-disabled .next-menu-icon-selected,.next-menu-item.next-disabled .next-menu-item-text>a .next-menu-icon-selected{color:#ccc}.next-menu-item.next-disabled,.next-menu-item.next-disabled .next-menu-item-text>a{cursor:not-allowed}.next-menu-item:not(.next-disabled):hover,.next-menu-item:not(.next-disabled).next-selected:hover,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover,.next-menu-item:not(.next-disabled).next-selected:focus:hover,.next-menu-item:not(.next-disabled).next-focused,.next-menu-item:not(.next-disabled).next-selected.next-focused,.next-menu-item:not(.next-disabled).next-selected:focus{color:#333;background-color:#f2f3f7}.next-menu-item:not(.next-disabled):hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:focus:hover .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-focused .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected.next-focused .next-menu-icon-arrow,.next-menu-item:not(.next-disabled).next-selected:focus .next-menu-icon-arrow{color:#333}.next-menu-item:not(.next-disabled):hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected.next-focused:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:focus:hover .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-focused .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected.next-focused .next-menu-icon-selected,.next-menu-item:not(.next-disabled).next-selected:focus .next-menu-icon-selected{color:#5584ff}.next-menu-item-inner{height:32px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.next-menu-item .next-menu-item-text{vertical-align:middle}.next-menu-item .next-menu-item-text>a{display:inline-block;text-decoration:none;color:#333}.next-menu-item .next-menu-item-text>a:before{position:absolute;background-color:transparent;top:0;left:0;bottom:0;right:0;content:""}.next-menu.next-hoz{padding:0}.next-menu.next-hoz.next-menu-nowrap{overflow:hidden;white-space:nowrap}.next-menu.next-hoz.next-menu-nowrap .next-menu-more{text-align:center}.next-menu.next-hoz>.next-menu-item,.next-menu.next-hoz>.next-menu-sub-menu-wrapper,.next-menu.next-hoz .next-menu-content>.next-menu-item{display:inline-block;vertical-align:top}.next-menu.next-hoz .next-menu-header,.next-menu.next-hoz .next-menu-content,.next-menu.next-hoz .next-menu-footer{display:inline-block}.next-menu-hoz-right{float:right}.next-menu-group-label{padding:0 12px;color:#999}.next-menu-divider{margin:8px 12px;border-bottom:1px solid #E6E7EB}.next-menu .next-menu-icon-selected.next-icon{position:absolute;top:0;margin-left:-16px}.next-menu .next-menu-icon-selected.next-icon:before,.next-menu .next-menu-icon-selected.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu .next-menu-icon-selected.next-icon.next-menu-icon-right{right:4px}.next-menu .next-menu-symbol-icon-selected.next-menu-icon-selected:before{content:"\e632"}.next-menu .next-menu-icon-arrow.next-icon{position:absolute;top:0;right:10px}.next-menu .next-menu-icon-arrow.next-icon:before,.next-menu .next-menu-icon-arrow.next-icon .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow.next-icon{transform:scale(.5);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow.next-icon:before{width:16px;font-size:16px}}.next-menu .next-menu-icon-arrow.next-icon{color:#666;transition:all .1s linear}.next-menu .next-menu-icon-arrow-down:before{content:"\e63d"}.next-menu .next-menu-icon-arrow-down.next-open{transform:rotate(180deg)}.next-menu .next-menu-icon-arrow-down.next-open:before,.next-menu .next-menu-icon-arrow-down.next-open .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow-down.next-open{transform:scale(.5) rotate(180deg);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow-down.next-open:before{width:16px;font-size:16px}}.next-menu .next-menu-symbol-popupfold:before{content:"\e619"}.next-menu .next-menu-icon-arrow-right.next-open{transform:rotate(-90deg)}.next-menu .next-menu-icon-arrow-right.next-open:before,.next-menu .next-menu-icon-arrow-right.next-open .next-icon-remote{width:8px;font-size:8px;line-height:inherit}@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.next-menu .next-menu-icon-arrow-right.next-open{transform:scale(.5) rotate(-90deg);margin-left:-4px;margin-right:-4px}.next-menu .next-menu-icon-arrow-right.next-open:before{width:16px;font-size:16px}}.next-menu .next-menu-hoz-icon-arrow.next-icon{position:absolute;top:0;right:6px}.next-menu .next-menu-hoz-icon-arrow.next-icon:before,.next-menu .next-menu-hoz-icon-arrow.next-icon .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu .next-menu-hoz-icon-arrow.next-icon{color:#666;transition:all .1s linear}.next-menu .next-menu-hoz-icon-arrow.next-icon:before{content:"\e63d"}.next-menu-unfold-icon:before{content:""}.next-menu .next-menu-hoz-icon-arrow.next-open{transform:rotate(180deg)}.next-menu .next-menu-hoz-icon-arrow.next-open:before,.next-menu .next-menu-hoz-icon-arrow.next-open .next-icon-remote{width:12px;font-size:12px;line-height:inherit}.next-menu.next-context{line-height:24px}.next-menu.next-context .next-menu-item-inner{height:24px}.cn-address{min-width:160px}.cn-address-popup .cn-address-list,.cn-address-popup .cn-address-item{width:184px}.cn-address-popup .cn-address-footer{display:flex;border-top:1px solid #dcdee3;background-color:#fff}.cn-address-popup .cn-address-footer .cn-address-footer-item{display:flex;flex:1}.cn-address-popup .cn-address-footer .cn-address-footer-item .cn-address-footer-btn{display:flex;flex:1;justify-content:center;align-items:center;font-size:12px;color:#333;margin:0;border-radius:0;border:0;border-right:1px solid #dcdee3}.cn-address-popup .cn-address--mark-deletion{text-decoration:line-through;font-style:oblique}.cn-address-header-search{width:100%;padding:10px 0;background-color:#fff}.cn-address-header-search .cn-address-header-search-inner{width:164px;margin:0 10px}.cn-address--search-loading-container{padding:16px 40px;font-size:12px}.cn-address-search-text{background-color:#fff;color:#999;text-align:center}.cn-address-suffix-icon{margin-top:2px;margin-right:4px;color:#999}.next-cascader-select{box-sizing:border-box}.next-cascader-select *,.next-cascader-select *:before,.next-cascader-select *:after{box-sizing:border-box}.next-cascader-select-dropdown{box-sizing:border-box}.next-cascader-select-dropdown *,.next-cascader-select-dropdown *:before,.next-cascader-select-dropdown *:after{box-sizing:border-box}.next-cascader-select-dropdown{border:1px solid #DCDEE3;border-radius:3px;box-shadow:none}.next-cascader-select-dropdown .next-cascader{display:block;border:none;box-shadow:none}.next-cascader-select-not-found{padding:0;border:none;box-shadow:none;overflow:auto;color:#999}.next-cascader-select-not-found .next-menu-item:hover{color:#999;background:#FFFFFF;cursor:default}.mdd-formily-select .next-select-values{width:0!important}._container_t9q14_1 .next-formily-item-feedback-layout-loose{margin-bottom:10px}._container_t9q14_1 .next-formily-item-label,._container_t9q14_1 .cn-ui-form-item .cn-ui-form-item-label{line-height:24px}._container_t9q14_1 ._footer_t9q14_8{display:flex;justify-content:flex-end}._mddTableForm_tl8oe_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableForm_tl8oe_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableForm_tl8oe_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableFormTitle_tl8oe_14{padding-bottom:8px;display:flex;justify-content:space-between}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableFormContent_tl8oe_20 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableFormBottom_tl8oe_34{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_tl8oe_41{display:flex;align-items:center;padding:4px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium{height:24px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_tl8oe_41 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_tl8oe_62{border-bottom:2px dashed #3080fe!important}._drop-over-upward_tl8oe_66{border-top:2px dashed #3080fe!important}._itemComponent_tl8oe_70{display:flex;align-items:center;padding:0 12px}._itemLabel_tl8oe_76{padding-right:12px;font-size:12px}._collapseContent_tl8oe_81{padding:0 12px}._itemClose_tl8oe_85{position:absolute;right:12px;top:0;height:48px;line-height:48px}._mddForm_1e2nn_1{display:flex;flex-direction:column;padding:12px}._mddForm_1e2nn_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddForm_1e2nn_1 .cn-next-number-picker .cn-next-input.cn-next-small{height:24px;display:flex}._mddForm_1e2nn_1 .cn-next-number-picker-normal .cn-next-input .cn-next-input-control{width:22px}._mddForm_1e2nn_1 .cn-next-form-item-label{color:#000000d9}._FormTitle_1e2nn_20{padding-bottom:8px}._FormTitleHelp_1e2nn_24{font-size:12px;color:#999;padding-bottom:8px}._FormContent_1e2nn_30{padding:28px;background:#f9f9f9}._content_1e2nn_35{padding:12px}._mddTableArray_16ght_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableArray_16ght_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableArray_16ght_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableArrayTitle_16ght_14{padding-bottom:8px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableArrayBottom_16ght_32{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_16ght_39{display:flex;align-items:center;padding:4px;position:relative}._itemTitle_16ght_39 .cn-next-input.cn-next-medium{height:24px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_16ght_61{border-bottom:2px dashed #3080fe!important}._drop-over-upward_16ght_65{border-top:2px dashed #3080fe!important}._collapseContent_16ght_69{padding:0 12px}._itemClose_16ght_73{position:absolute;right:12px;top:0;height:48px;line-height:48px}._middleBox_119xt_20{margin-left:"10px";margin-bottom:8px;display:flex}._middleBoxLeft_119xt_26{width:100px;text-align:right}._middleBoxRight_119xt_31{flex:1}._customTabItem_119xt_1{padding:8px}._tabTitle_119xt_5{font-size:14px}._tabLabel_119xt_9{display:inline-block;padding:0 2px}._middleBox_119xt_20{margin-left:"10px";margin-bottom:8px;display:flex}._middleBoxLeft_119xt_26{width:100px;text-align:right}._middleBoxRight_119xt_31{flex:1}._mddTableArray_16ght_1{display:flex;flex-direction:column;padding:0 12px 12px}._mddTableArray_16ght_1 .cn-next-collapse .cn-next-collapse-panel-icon{line-height:38px}._mddTableArray_16ght_1 .cn-next-radio-group .cn-next-radio-label{font-size:12px}._tableArrayTitle_16ght_14{padding-bottom:8px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title{padding:0 0 0 36px}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon{height:100%;line-height:1;display:flex;align-items:center}._tableArrayContent_16ght_18 .cn-next-collapse>.cn-next-collapse-panel .cn-next-collapse-panel-title .cn-next-icon.cn-next-icon-close{padding:0 6px;cursor:pointer}._tableArrayBottom_16ght_32{padding-top:12px;display:flex;justify-content:center;align-items:center}._itemTitle_16ght_39{display:flex;align-items:center;padding:4px;position:relative}._itemTitle_16ght_39 .cn-next-input.cn-next-medium{height:24px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium input{height:24px;line-height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-select-values{height:24px;font-size:12px}._itemTitle_16ght_39 .cn-next-input.cn-next-medium .cn-next-input-inner i{margin:0 4px!important}._drop-over-downward_16ght_61{border-bottom:2px dashed #3080fe!important}._drop-over-upward_16ght_65{border-top:2px dashed #3080fe!important}._collapseContent_16ght_69{padding:0 12px}._itemClose_16ght_73{position:absolute;right:12px;top:0;height:48px;line-height:48px}._title_10adh_1{width:100%;display:flex;gap:12px}._titleItem_10adh_7{display:flex;align-items:center}._titleItemLabel_10adh_12{padding-right:12px}._titleItemLabel_10adh_12:first-of-type{padding-left:0}._customTabItem_1lh1l_1{padding:8px}._tabTitle_1lh1l_5{font-size:14px}._tabLabel_1lh1l_9{display:inline-block;padding:0 2px}._mddDetailItems_1lh1l_14 ._itemComponent_1lh1l_14{display:flex;align-items:center;padding:0 12px}._mddDetailItems_1lh1l_14 ._itemLabel_1lh1l_19{padding-right:12px;font-size:12px}.build-page-tab-detail-help{font-size:13px;color:#999;padding:0 12px 12px}._customTabItem_ac2i9_1{padding:8px}._tabTitle_ac2i9_5{font-size:14px}._tabLabel_ac2i9_9{display:inline-block;padding:0 2px}.formily-form-v2-kv{padding:0 12px;display:flex;flex-direction:column;margin-bottom:12px}.formily-form-v2-kv .formily-form-v2-title-wrapper{margin-bottom:8px;line-height:1}.formily-form-v2-kv .formily-form-v2-title-wrapper .title{margin-right:8px}.formily-form-v2-kv .formily-form-v2-title-wrapper .subTitle{color:#585d66;font-size:12px}._kvContainer_rfbib_1{padding:0 12px;display:flex;flex-direction:column;margin-bottom:12px}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7{margin-bottom:8px;line-height:1}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7 ._kvTitle_rfbib_11{margin-right:8px}._kvContainer_rfbib_1 ._kvWrapper_rfbib_7 ._kvSubTitle_rfbib_14{color:#585d66;font-size:12px}.mdd-editor-build-content{flex:1;position:relative}.mdd-editor-build-content .mdd-editor-toolbar{cursor:zoom-in;position:absolute;z-index:100;text-align:right;top:0;right:0;padding:4px 18px;display:flex;align-items:center;gap:8px}.mdd-editor-build-content .mdd-editor-ai-button{cursor:pointer;font-weight:600;box-shadow:0 2px 8px #3080fe47}.mdd-editor-build-content .preview-tool-full>i{cursor:pointer}.mdd-editor-build-content .preview-tool-full .icon-box{position:absolute;right:12px;top:4px;padding:4px;width:1.5em;height:1.5em;display:flex;justify-content:center;align-items:center;background-color:#00000052;border-radius:2px;cursor:pointer;z-index:19}.mdd-editor-build-content .preview-tool-full .icon-box img{display:inline-block;width:14px;height:14px}.mdd-script-card{position:relative}.mdd-script-card .mdd-script-top-buttons{position:absolute;right:22px;top:12px;display:flex;gap:12px;z-index:10}.mdd-local-ai{display:flex;flex-direction:column;gap:14px;padding:2px 2px 10px;color:#1f2937}.mdd-local-ai .mdd-local-ai-card{border-radius:8px}.mdd-local-ai .mdd-local-ai-hero{overflow:hidden;border:1px solid #dbe5f5;box-shadow:0 8px 24px #1c4e9e14}.mdd-local-ai .mdd-local-ai-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid #eef3fb}.mdd-local-ai .mdd-local-ai-heading{color:#111827;font-size:17px;font-weight:700;line-height:24px}.mdd-local-ai .mdd-local-ai-subtitle{margin-top:4px;color:#64748b;font-size:13px;line-height:20px}.mdd-local-ai .mdd-local-ai-status{flex-shrink:0;padding:4px 10px;color:#64748b;font-size:12px;line-height:18px;background:#f1f5f9;border:1px solid #dbe3ef;border-radius:999px}.mdd-local-ai .mdd-local-ai-status.is-ready{color:#0f7a3f;background:#ecfdf3;border-color:#b7ebc6}.mdd-local-ai .mdd-local-ai-bridge-row{display:flex;align-items:flex-end;gap:10px;padding-top:14px}.mdd-local-ai .mdd-local-ai-field{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.mdd-local-ai .mdd-local-ai-label{color:#64748b;font-size:12px;line-height:18px}.mdd-local-ai .mdd-local-ai-input{width:100%}.mdd-local-ai .mdd-local-ai-meta{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.mdd-local-ai .mdd-local-ai-meta-item{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px 12px;background:#f8fafc;border:1px solid #e5edf7;border-radius:6px}.mdd-local-ai .mdd-local-ai-meta-item span{display:block;color:#64748b;font-size:12px;line-height:18px}.mdd-local-ai .mdd-local-ai-meta-item strong{display:block;overflow:hidden;color:#1f2937;font-size:13px;font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.mdd-local-ai .mdd-local-ai-meta-path strong{white-space:normal}.mdd-local-ai .mdd-local-ai-section{padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.mdd-local-ai .mdd-local-ai-section-title{margin-bottom:10px;color:#374151;font-size:13px;font-weight:700;line-height:20px}.mdd-local-ai .mdd-local-ai-actions,.mdd-local-ai .mdd-local-ai-copy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mdd-local-ai .mdd-local-ai-actions>*,.mdd-local-ai .mdd-local-ai-copy-actions>*{width:100%}.mdd-local-ai .mdd-local-ai-actions .cn-ui-btn,.mdd-local-ai .mdd-local-ai-copy-actions .cn-ui-btn,.mdd-local-ai .mdd-local-ai-actions button,.mdd-local-ai .mdd-local-ai-copy-actions button{min-width:0}.mdd-local-ai .mdd-local-ai-copy-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.mdd-local-ai .mdd-local-ai-summary{padding:10px 12px;color:#164e63;background:#ecfeff;border:1px solid #bae6fd;border-radius:8px;word-break:break-all}.mdd-local-ai .mdd-local-ai-diff{color:#333;background:#fff;border:1px solid #d8dde8;border-radius:8px}.mdd-local-ai .mdd-local-ai-diff summary{padding:10px 12px;font-weight:600;cursor:pointer;user-select:none}.mdd-local-ai .mdd-local-ai-diff-content{padding:0 12px 12px;border-top:1px solid #eef0f4}.mdd-local-ai .mdd-local-ai-diff-section{margin-top:10px;color:#555;font-size:13px;line-height:22px}.mdd-local-ai .mdd-local-ai-diff-title{margin-bottom:4px;color:#1f2937;font-weight:600}.mdd-local-ai .mdd-local-ai-diff-list{max-height:160px;margin:0;padding-left:18px;overflow:auto}.mdd-local-ai .mdd-local-ai-diff-list li{margin-bottom:4px}.mdd-local-ai .mdd-local-ai-diff-list code{margin-right:8px;padding:1px 4px;color:#1d4ed8;background:#eff6ff;border-radius:3px;word-break:break-all}.mdd-local-ai .mdd-local-ai-diff-pre{max-height:260px;margin:10px 0 0;padding:10px;overflow:auto;color:#1f2937;font-size:12px;line-height:18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:4px;white-space:pre-wrap}.mdd-local-ai .mdd-local-ai-side-diff{display:flex;flex-direction:column;gap:12px;margin-top:12px}.mdd-local-ai .mdd-local-ai-side-file{overflow:hidden;background:#f8fafc;border:1px solid #dce5f2;border-radius:8px}.mdd-local-ai .mdd-local-ai-side-file-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;color:#334155;font-size:12px;font-weight:700;background:#eef4ff;border-bottom:1px solid #dce5f2}.mdd-local-ai .mdd-local-ai-side-grid{display:grid;grid-template-columns:minmax(340px,1fr) minmax(340px,1fr);max-height:420px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:18px}.mdd-local-ai .mdd-local-ai-side-col-head{position:sticky;top:0;z-index:2;padding:7px 10px;color:#475569;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-weight:700;background:#f8fafc;border-bottom:1px solid #e2e8f0}.mdd-local-ai .mdd-local-ai-side-col-head:first-child{border-right:1px solid #e2e8f0}.mdd-local-ai .mdd-local-ai-side-cell{display:grid;grid-template-columns:44px minmax(0,1fr);min-height:22px;border-bottom:1px solid #edf2f7}.mdd-local-ai .mdd-local-ai-side-cell.is-before{border-right:1px solid #e2e8f0}.mdd-local-ai .mdd-local-ai-side-cell.is-context{background:#fff}.mdd-local-ai .mdd-local-ai-side-cell.is-changed{background:#fff8db}.mdd-local-ai .mdd-local-ai-side-cell.is-before.is-removed,.mdd-local-ai .mdd-local-ai-side-cell.is-before.is-changed{background:#fff1f2}.mdd-local-ai .mdd-local-ai-side-cell.is-after.is-added,.mdd-local-ai .mdd-local-ai-side-cell.is-after.is-changed{background:#ecfdf3}.mdd-local-ai .mdd-local-ai-side-cell.is-omitted{color:#64748b;font-style:italic;background:#f1f5f9}.mdd-local-ai .mdd-local-ai-side-cell code{display:block;min-width:0;padding:2px 10px 2px 8px;overflow-wrap:anywhere;white-space:pre-wrap}.mdd-local-ai .mdd-local-ai-side-line{padding:2px 8px;color:#94a3b8;text-align:right;background:rgba(241,245,249,.75);border-right:1px solid #e2e8f0;user-select:none}.mdd-local-ai .tok-comment{color:#64748b;font-style:italic}.mdd-local-ai .tok-string{color:#047857}.mdd-local-ai .tok-number{color:#b45309}.mdd-local-ai .tok-keyword{color:#7c3aed;font-weight:600}.mdd-local-ai .tok-selector{color:#0369a1}.mdd-local-ai .tok-punc{color:#475569}.mdd-local-ai .tok-empty{color:transparent}.mdd-local-ai .mdd-local-ai-error{padding:10px 12px;color:#7a2e0e;background:#fff7e8;border:1px solid #ffd591;border-radius:6px}.mdd-local-ai .mdd-local-ai-error-title{margin-bottom:6px;font-weight:600}.mdd-local-ai .mdd-local-ai-error-message{line-height:20px;white-space:pre-wrap;word-break:break-word}.mdd-local-ai .mdd-local-ai-error-snippet{max-height:180px;margin:8px 0 0;padding:8px;overflow:auto;color:#3d3328;font-size:12px;line-height:18px;background:#fff;border:1px solid #ffe7ba;border-radius:4px;white-space:pre-wrap}.mdd-local-ai .mdd-local-ai-title{margin-bottom:8px;color:#1f2937;font-weight:600}.mdd-local-ai .mdd-local-ai-tips{line-height:24px;color:#555}@media (max-width: 560px){.mdd-local-ai .mdd-local-ai-bridge-row{align-items:stretch;flex-direction:column}.mdd-local-ai .mdd-local-ai-meta,.mdd-local-ai .mdd-local-ai-actions,.mdd-local-ai .mdd-local-ai-copy-actions{grid-template-columns:1fr}}._customTabItem_1y6va_1{padding:8px}._tabTitle_1y6va_5{font-size:14px}._tabLabel_1y6va_9{display:inline-block;padding:0 2px}.mdd-tip{color:#999;display:inline;padding-left:20px}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cniot/mdd-editor",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "模型驱动编辑器",
5
5
  "scripts": {
6
6
  "build": "vite build"
@@ -8,6 +8,7 @@ import {
8
8
  openPageWorkspace,
9
9
  pullPage,
10
10
  pushPage,
11
+ rollbackPage,
11
12
  shouldUseBridgeRelay,
12
13
  } from './bridgeClient';
13
14
  import { buildPageIR, getPageCode } from './pageIR';
@@ -101,11 +102,84 @@ const getChangeTypeText = (type) => {
101
102
  }
102
103
  };
103
104
 
105
+ const TOKEN_PATTERN =
106
+ /(\/\/.*|\/\*.*?\*\/|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`(?:\\.|[^`\\])*`|\b(?:async|await|break|case|catch|class|const|default|else|export|false|finally|for|from|function|if|import|let|new|null|return|switch|throw|true|try|undefined|var|while)\b|\b\d+(?:\.\d+)?\b|[#.][a-zA-Z_-][\w-]*|@[a-zA-Z-]+|[{}()[\],;:])/g;
107
+
108
+ const getTokenClassName = (token, language) => {
109
+ if (/^\/\//.test(token) || /^\/\*/.test(token)) return 'tok-comment';
110
+ if (/^["'`]/.test(token)) return language === 'json' && token.endsWith('"') ? 'tok-string' : 'tok-string';
111
+ if (/^\d/.test(token)) return 'tok-number';
112
+ if (/^(#|\.|@)/.test(token)) return 'tok-selector';
113
+ if (/^[{}()[\],;:]$/.test(token)) return 'tok-punc';
114
+ return 'tok-keyword';
115
+ };
116
+
117
+ const renderHighlightedCode = (line = '', language = 'text') => {
118
+ if (!line) return <span className="tok-empty">&nbsp;</span>;
119
+ const nodes = [];
120
+ let lastIndex = 0;
121
+ let match = TOKEN_PATTERN.exec(line);
122
+ while (match) {
123
+ if (match.index > lastIndex) {
124
+ nodes.push(line.slice(lastIndex, match.index));
125
+ }
126
+ const token = match[0];
127
+ nodes.push(
128
+ <span className={getTokenClassName(token, language)} key={`${match.index}-${token}`}>
129
+ {token}
130
+ </span>,
131
+ );
132
+ lastIndex = match.index + token.length;
133
+ match = TOKEN_PATTERN.exec(line);
134
+ }
135
+ if (lastIndex < line.length) {
136
+ nodes.push(line.slice(lastIndex));
137
+ }
138
+ TOKEN_PATTERN.lastIndex = 0;
139
+ return nodes;
140
+ };
141
+
142
+ function SideBySideDiff({ files = [] }) {
143
+ if (!files.length) return null;
144
+ return (
145
+ <div className="mdd-local-ai-side-diff">
146
+ {files.map((file) => (
147
+ <div className="mdd-local-ai-side-file" key={file.fileName}>
148
+ <div className="mdd-local-ai-side-file-head">
149
+ <span>{file.fileName}</span>
150
+ <span>
151
+ -{file.stats?.removed || 0} / +{file.stats?.added || 0}
152
+ </span>
153
+ </div>
154
+ <div className="mdd-local-ai-side-grid">
155
+ <div className="mdd-local-ai-side-col-head">上次发送</div>
156
+ <div className="mdd-local-ai-side-col-head">本地修改</div>
157
+ {(file.rows || []).map((row, index) => (
158
+ <React.Fragment key={`${file.fileName}-${index}`}>
159
+ <div className={`mdd-local-ai-side-cell is-before is-${row.type}`}>
160
+ <span className="mdd-local-ai-side-line">{row.before?.lineNumber || ''}</span>
161
+ <code>{renderHighlightedCode(row.before?.content || '', file.language)}</code>
162
+ </div>
163
+ <div className={`mdd-local-ai-side-cell is-after is-${row.type}`}>
164
+ <span className="mdd-local-ai-side-line">{row.after?.lineNumber || ''}</span>
165
+ <code>{renderHighlightedCode(row.after?.content || '', file.language)}</code>
166
+ </div>
167
+ </React.Fragment>
168
+ ))}
169
+ </div>
170
+ </div>
171
+ ))}
172
+ </div>
173
+ );
174
+ }
175
+
104
176
  function PullDiffDetail({ diffSummary }) {
105
177
  if (!diffSummary?.hasBaseline) return null;
106
178
  const schemaChanges = diffSummary.schema?.changes || diffSummary.schema?.paths || [];
107
179
  const diffText = diffSummary.diffText || '';
108
- const hasDetail = schemaChanges.length > 0 || diffSummary.script?.changed || diffSummary.style?.changed || diffText;
180
+ const diffFiles = diffSummary.diffFiles || [];
181
+ const hasDetail =
182
+ schemaChanges.length > 0 || diffSummary.script?.changed || diffSummary.style?.changed || diffText || diffFiles.length;
109
183
  if (!hasDetail) return null;
110
184
 
111
185
  return (
@@ -150,7 +224,8 @@ function PullDiffDetail({ diffSummary }) {
150
224
  </div>
151
225
  ) : null}
152
226
 
153
- {diffText ? <pre className="mdd-local-ai-diff-pre">{diffText}</pre> : null}
227
+ {diffFiles.length ? <SideBySideDiff files={diffFiles} /> : null}
228
+ {!diffFiles.length && diffText ? <pre className="mdd-local-ai-diff-pre">{diffText}</pre> : null}
154
229
  </div>
155
230
  </details>
156
231
  );
@@ -302,6 +377,38 @@ export default function LocalAIDrawer(props) {
302
377
  }
303
378
  };
304
379
 
380
+ const handleRollback = async () => {
381
+ const confirmed = window.confirm(
382
+ '确认回滚到上次“发送到本地 AI”时的线上基线吗?回滚会先更新当前编辑器内容,确认预览后还需要使用原保存按钮提交到线上。',
383
+ );
384
+ if (!confirmed) return;
385
+
386
+ setLoadingAction('rollback');
387
+ setPullError(null);
388
+ try {
389
+ const res = await rollbackPage(baseURL, pageCode);
390
+ const nextSchema = parseSchema(res?.schemaInfo);
391
+ const nextScriptInfo = {
392
+ script: res?.scriptInfo || '',
393
+ style: res?.style || '',
394
+ };
395
+ applySchemaToEditor(schema, nextSchema);
396
+ schema.emit(EVENT_KEY.SCRIPT_UPDATE, nextScriptInfo);
397
+ onApply?.({
398
+ schemaJson: nextSchema,
399
+ scriptInfo: nextScriptInfo,
400
+ raw: res,
401
+ });
402
+ setLastSummary(res?.summary || '已回滚到上次发送到本地 AI 时的基线');
403
+ setLastDiffSummary(null);
404
+ Message.success('已回滚上次 AI 修改,请预览后保存');
405
+ } catch (e) {
406
+ Message.error(e.message || '回滚上次更改失败');
407
+ } finally {
408
+ setLoadingAction('');
409
+ }
410
+ };
411
+
305
412
  const handleStatus = async () => {
306
413
  setLoadingAction('status');
307
414
  try {
@@ -405,6 +512,9 @@ export default function LocalAIDrawer(props) {
405
512
  <CnButton loading={loadingAction === 'open'} onClick={handleOpen}>
406
513
  打开目录
407
514
  </CnButton>
515
+ <CnButton loading={loadingAction === 'rollback'} onClick={handleRollback}>
516
+ 回滚上次更改
517
+ </CnButton>
408
518
  </div>
409
519
  </div>
410
520
 
@@ -207,6 +207,12 @@ export function pullPage(baseURL, code) {
207
207
  });
208
208
  }
209
209
 
210
+ export function rollbackPage(baseURL, code) {
211
+ return request(baseURL, `/pages/${encodeURIComponent(code)}/rollback`, {
212
+ method: 'POST',
213
+ });
214
+ }
215
+
210
216
  export function getPageStatus(baseURL, code) {
211
217
  return request(baseURL, `/pages/${encodeURIComponent(code)}/status`, {
212
218
  method: 'GET',