whistle.mock-plugins 1.3.1 → 1.4.0-beta.2

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.
Files changed (70) hide show
  1. package/VERSION.md +29 -0
  2. package/app/cgi-bin/interfaces.js +2 -0
  3. package/app/cgi-bin/settings.js +1 -0
  4. package/app/cgi-bin/stats.js +22 -12
  5. package/app/cgi-bin/webdav.js +56 -0
  6. package/app/public/index.html +1 -1
  7. package/app/public/js/11.index.js +2 -0
  8. package/app/public/js/11.index.js.LICENSE.txt +5 -0
  9. package/app/public/js/704.index.js +2 -0
  10. package/app/public/js/704.index.js.LICENSE.txt +1 -0
  11. package/app/public/js/798.index.js +2 -0
  12. package/app/public/js/798.index.js.LICENSE.txt +53 -0
  13. package/app/public/js/807.index.js +2 -0
  14. package/app/public/js/807.index.js.LICENSE.txt +1 -0
  15. package/app/public/js/968.index.js +2 -0
  16. package/app/public/js/968.index.js.LICENSE.txt +12 -0
  17. package/app/public/js/index.js +1 -1
  18. package/app/public/js/index.js.LICENSE.txt +0 -173
  19. package/lib/routes/settings.js +1 -0
  20. package/lib/webdav-sync.js +806 -0
  21. package/package.json +9 -2
  22. package/API.md +0 -247
  23. package/COLUMN_RESIZE_IMPLEMENTATION.md +0 -162
  24. package/FEATURE_ENHANCEMENT.md +0 -157
  25. package/TEST_GUIDE.md +0 -156
  26. package/data/features.json +0 -1
  27. package/data/interfaces.json +0 -1
  28. package/index.html +0 -52
  29. package/initialize.js +0 -32
  30. package/public/bundle.js +0 -2
  31. package/public/bundle.js.LICENSE.txt +0 -38
  32. package/public/index.html +0 -1
  33. package/public/plugin.mock-plugin.html +0 -14
  34. package/rules.txt +0 -22
  35. package/ui/src/App.css +0 -173
  36. package/ui/src/components/AppLayout.js +0 -407
  37. package/ui/src/components/FeatureCard.js +0 -58
  38. package/ui/src/components/KeyboardShortcutsHelp.js +0 -58
  39. package/ui/src/components/Layout.js +0 -94
  40. package/ui/src/components/MainNav.js +0 -42
  41. package/ui/src/components/PageContainer.js +0 -16
  42. package/ui/src/components/VersionModal.js +0 -99
  43. package/ui/src/components/interface-management/DataManagementDrawer.js +0 -115
  44. package/ui/src/components/interface-management/DataManagementModal.js +0 -110
  45. package/ui/src/components/interface-management/InterfaceTestModal.js +0 -313
  46. package/ui/src/components/interface-management/PreviewModal.js +0 -48
  47. package/ui/src/components/interface-management/README.md +0 -184
  48. package/ui/src/components/interface-management/RealResponseRecorder.js +0 -165
  49. package/ui/src/components/interface-management/ResponseContentEditor.js +0 -645
  50. package/ui/src/components/interface-management/constants.js +0 -36
  51. package/ui/src/components/interface-management/index.js +0 -7
  52. package/ui/src/components/interface-management/utils.js +0 -103
  53. package/ui/src/hooks/useKeyboardShortcuts.js +0 -99
  54. package/ui/src/index.html +0 -14
  55. package/ui/src/index.js +0 -50
  56. package/ui/src/pages/InterfaceManagementV2.js +0 -2351
  57. package/ui/src/pages/MockDataV2.js +0 -1089
  58. package/ui/src/pages/Settings.js +0 -299
  59. package/ui/src/pages/Sniffer.js +0 -521
  60. package/ui/src/pages/Stats.js +0 -288
  61. package/ui/src/services/del_api.js +0 -192
  62. package/ui/src/styles/app-layout.css +0 -373
  63. package/ui/src/styles/cyber-theme.css +0 -1234
  64. package/ui/src/styles/earth-theme.css +0 -618
  65. package/ui/src/styles/global.css +0 -224
  66. package/ui/src/styles/interface-management.css +0 -1321
  67. package/ui/src/styles/mock-data.css +0 -1185
  68. package/ui/src/styles/settings.css +0 -252
  69. package/ui/src/styles/version-modal.css +0 -116
  70. package/webpack.config.js +0 -54
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 704.index.js.LICENSE.txt */
2
+ (self.webpackChunkwhistle_mock_plugins=self.webpackChunkwhistle_mock_plugins||[]).push([[704],{704:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Cr});var r=n(6540),a=n(2941),o=n(1372),i=n(3740),c=n(462),l=n(845),u=n(8602),s=n(3200),m=n(8937),p=n(1348),f=n(4180),d=n(4625),h=n(9222),y=n(4716),v=n(7260),g=n(5095),b=n(5072),w=n.n(b),x=n(7825),E=n.n(x),A=n(7659),k=n.n(A),S=n(5056),O=n.n(S),j=n(540),L=n.n(j),N=n(1113),C=n.n(N),I=n(7827),P={};function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function M(){M=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==T(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(T(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function D(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function R(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){D(o,r,a,i,c,"next",e)}function c(e){D(o,r,a,i,c,"throw",e)}i(void 0)}))}}P.styleTagTransform=C(),P.setAttributes=O(),P.insert=k().bind(null,"head"),P.domAPI=E(),P.insertStyleElement=L(),w()(I.A,P),I.A&&I.A.locals&&I.A.locals;var F=function(){var e=R(M().mark((function e(){var t,n;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/cgi-bin/version",{headers:{"Content-Type":"application/json"}});case 2:return t=e.sent,e.next=5,t.json();case 5:if(n=e.sent,t.ok){e.next=8;break}throw new Error(n.message||"请求失败");case 8:return e.abrupt("return",n);case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();const G=function(e){var t=e.visible,n=e.onCancel,a=_((0,r.useState)(""),2),o=a[0],i=a[1],c=_((0,r.useState)(!1),2),l=c[0],u=c[1],s=_((0,r.useState)(null),2),m=s[0],p=s[1];(0,r.useEffect)((function(){t&&f()}),[t]);var f=function(){var e=R(M().mark((function e(){var t;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u(!0),p(null),e.prev=2,e.next=5,F();case 5:0===(t=e.sent).code?i(t.data.content):p(t.message),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),p("获取版本信息失败: ".concat(e.t0.message));case 12:return e.prev=12,u(!1),e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[2,9,12,15]])})));return function(){return e.apply(this,arguments)}}();return r.createElement(h.A,{title:"版本更新记录",open:t,onCancel:n,footer:null,width:800,className:"version-modal"},r.createElement("div",{className:"version-modal-content"},l&&r.createElement("div",{className:"version-modal-loading"},r.createElement(y.A,{size:"large"}),r.createElement("p",null,"正在加载版本信息...")),m&&r.createElement(v.A,{message:"加载失败",description:m,type:"error",showIcon:!0}),!l&&!m&&o&&r.createElement("div",{className:"version-markdown-content"},r.createElement(g.$,null,o.replace(/^#\s*🔄?\s*版本更新记录\s*\n+/,"")))))};var J=n(9924),U=n(7959),q=[{key:"Esc",desc:"关闭弹窗/抽屉"},{key:"Ctrl + S",desc:"保存表单"},{key:"Ctrl + 1",desc:"功能模块"},{key:"Ctrl + 2",desc:"接口管理"},{key:"Ctrl + 3",desc:"系统设置"},{key:"Ctrl + 4",desc:"请求统计"},{key:"Ctrl + 5",desc:"接口嗅探"},{key:"Ctrl + Shift + N",desc:"新建接口"},{key:"Ctrl + K",desc:"聚焦搜索"},{key:"Shift + ?",desc:"快捷键帮助"}];function V(e){return V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V(e)}function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e,t,n){return(t=function(e){var t=function(e){if("object"!=V(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=V(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==V(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Y=function(e){var t=e.visible,n=e.onClose,a=q,o=[{title:"快捷键",dataIndex:"key",key:"key",width:180,render:function(e){return r.createElement("kbd",{style:{display:"inline-block",padding:"4px 8px",fontSize:"12px",fontFamily:"monospace",lineHeight:1,color:"#333",background:"#f5f5f5",border:"1px solid #d9d9d9",borderRadius:"4px",boxShadow:"0 1px 0 rgba(0,0,0,0.1)"}},e)}},{title:"功能",dataIndex:"desc",key:"desc"}];return r.createElement(h.A,{title:"⌨️ 键盘快捷键",open:t,onCancel:n,footer:null,width:480},r.createElement(J.A,{dataSource:a.map((function(e,t){return H(H({},e),{},{id:t})})),columns:o,rowKey:"id",pagination:!1,size:"small",showHeader:!1}))};var K=n(5131),$=n(867),Q=n(3217);function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ee=(0,r.createContext)(null),te=["light","dark","cyber","earth"],ne=function(){var e=localStorage.getItem("theme");return te.includes(e)?e:"true"===localStorage.getItem("cyberTheme")?"cyber":"light"},re={light:{primary:"#4263eb",bg:"#f6f7fb",surface:"#ffffff",text:"#202637",muted:"#667085",border:"#e4e7ee",subtle:"#eef2ff"},dark:{primary:"#91a7ff",bg:"#13161d",surface:"#1c2029",text:"#edf0f7",muted:"#a7b0c0",border:"#333a49",subtle:"#28324c"},cyber:{primary:"#00d9e6",bg:"#0a0d16",surface:"#111624",text:"#e4edf7",muted:"#9caec4",border:"#27354b",subtle:"#12343e"},earth:{primary:"#a36635",bg:"#f3efe8",surface:"#fffcf7",text:"#3d3630",muted:"#756a5e",border:"#ded5ca",subtle:"#f3e7d7"}},ae=function(){return(0,r.useContext)(ee)};function oe(e){var t=e.children,n=X((0,r.useState)(ne),2),a=n[0],o=n[1];(0,r.useEffect)((function(){var e=function(){return o(ne())};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}),[]);var i=re[a];(0,r.useEffect)((function(){document.body.dataset.theme=a,document.body.classList.remove("cyber-theme","earth-theme");var e={primary:i.primary,bg:i.bg,surface:i.surface,text:i.text,muted:i.muted,border:i.border,subtle:i.subtle};Object.entries(e).forEach((function(e){var t=X(e,2),n=t[0],r=t[1];return document.documentElement.style.setProperty("--mm-".concat(n),r)})),document.documentElement.style.colorScheme=["dark","cyber"].includes(a)?"dark":"light"}),[a,i]);var c=(0,r.useMemo)((function(){return{algorithm:["dark","cyber"].includes(a)?K.A.darkAlgorithm:K.A.defaultAlgorithm,token:{colorPrimary:i.primary,colorBgLayout:i.bg,colorBgContainer:i.surface,colorBgElevated:i.surface,colorText:i.text,colorTextSecondary:i.muted,colorBorder:i.border,colorBorderSecondary:i.border,borderRadius:8,fontSize:13,controlHeight:34,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", sans-serif',fontFamilyCode:'"SFMono-Regular", Consolas, monospace'},components:{Table:{headerBg:i.bg,rowSelectedBg:i.subtle},Card:{headerFontSize:14},Menu:{itemSelectedBg:i.subtle}}}}),[a,i]);return(0,r.useEffect)((function(){$.Ay.config({holderRender:function(e){return r.createElement($.Ay,{theme:c},e)}})}),[c]),r.createElement(ee.Provider,{value:{currentTheme:a,setTheme:function(e){te.includes(e)&&(localStorage.setItem("theme",e),localStorage.setItem("cyberTheme",String("cyber"===e)),o(e),window.dispatchEvent(new Event("storage")))}}},r.createElement($.Ay,{theme:c},r.createElement(Q.A,null,t)))}var ie=n(9875),ce={};function le(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ue(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ue(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}ce.styleTagTransform=C(),ce.setAttributes=O(),ce.insert=k().bind(null,"head"),ce.domAPI=E(),ce.insertStyleElement=L(),w()(ie.A,ce),ie.A&&ie.A.locals&&ie.A.locals;var se=[["/","功能模块",o.A],["/interface","接口工作台",i.A],["/sniffer","接口嗅探",c.A],["/stats","请求统计",l.A],["/settings","系统设置",u.A]];function me(e){var t,n,o=e.children,i=le((0,r.useState)(!1),2),c=i[0],l=i[1],u=le((0,r.useState)(!1),2),h=u[0],y=u[1],v=ae(),g=v.currentTheme,b=v.setTheme,w=(0,f.zy)();return t=(0,f.W6)(),n=(0,r.useCallback)((function(e){var n,r,a=navigator.platform.toUpperCase().indexOf("MAC")>=0?e.metaKey:e.ctrlKey,o=null===(n=e.target)||void 0===n||null===(n=n.tagName)||void 0===n?void 0:n.toLowerCase(),i="input"===o||"textarea"===o||(null===(r=e.target)||void 0===r?void 0:r.isContentEditable);if(e.shiftKey&&"?"===e.key&&!i)return e.preventDefault(),void window.dispatchEvent(new CustomEvent("keyboard-shortcuts-help"));if("Escape"!==e.key){if(!e.isComposing&&!e.altKey&&(!i||a&&"s"===e.key.toLowerCase()&&!e.shiftKey)){if(a&&!e.shiftKey&&/^[1-5]$/.test(e.key)){e.preventDefault();var c=parseInt(e.key,10)-1;return t.push(["/","/interface","/settings","/stats","/sniffer"][c]),void U.Ay.success("已切换到".concat(["功能模块","接口管理","系统设置","请求统计","接口嗅探"][c]))}return a&&"s"===e.key.toLowerCase()&&!e.shiftKey?(e.preventDefault(),void window.dispatchEvent(new CustomEvent("shortcut-save"))):a&&e.shiftKey&&"n"===e.key.toLowerCase()?(e.preventDefault(),void window.dispatchEvent(new CustomEvent("shortcut-new-interface"))):a&&"k"===e.key.toLowerCase()&&!e.shiftKey?(e.preventDefault(),void window.dispatchEvent(new CustomEvent("shortcut-focus-search"))):void 0}}else window.dispatchEvent(new CustomEvent("shortcut-esc"))}),[t]),(0,r.useEffect)((function(){return document.addEventListener("keydown",n),function(){return document.removeEventListener("keydown",n)}}),[n]),(0,r.useEffect)((function(){var e=function(){return y(!0)};return window.addEventListener("keyboard-shortcuts-help",e),function(){return window.removeEventListener("keyboard-shortcuts-help",e)}}),[]),r.createElement("div",{className:"mm-app ".concat(w.pathname.startsWith("/interface")?"mm-app-workbench":"")},r.createElement("header",{className:"mm-app-header"},r.createElement(d.k2,{exact:!0,to:"/",className:"mm-brand"},r.createElement("span",{className:"mm-brand-mark"},r.createElement(s.A,null)),r.createElement("span",null,"MockMaster",r.createElement("small",null,"API WORKSPACE"))),r.createElement("nav",{className:"mm-navigation","aria-label":"主导航"},se.map((function(e){var t=le(e,3),n=t[0],a=t[1],o=t[2];return r.createElement(d.k2,{key:n,exact:"/"===n,to:n,activeClassName:"is-active"},r.createElement(o,null),r.createElement("span",null,a))}))),r.createElement("div",{className:"mm-header-actions"},r.createElement(a.Ay,{type:"text","aria-label":"切换浅色 / 深色",icon:r.createElement(m.A,null),onClick:function(){return b("light"===g?"dark":"light")}}),r.createElement(a.Ay,{type:"text","aria-label":"快捷键帮助",icon:r.createElement(p.A,null),onClick:function(){return y(!0)}}),r.createElement(a.Ay,{type:"text",size:"small",onClick:function(){return l(!0)}},"v","1.4.0-beta.2"))),r.createElement("main",{className:"mm-app-main ".concat(w.pathname.startsWith("/interface")?"mm-app-main-workbench":"")},o),r.createElement(G,{visible:c,onCancel:function(){return l(!1)}}),r.createElement(Y,{visible:h,onCancel:function(){return y(!1)},onClose:function(){return y(!1)}}))}n(6940);var pe=n(2625),fe={};fe.styleTagTransform=C(),fe.setAttributes=O(),fe.insert=k().bind(null,"head"),fe.domAPI=E(),fe.insertStyleElement=L(),w()(pe.A,fe),pe.A&&pe.A.locals&&pe.A.locals;var de=n(6027),he={};he.styleTagTransform=C(),he.setAttributes=O(),he.insert=k().bind(null,"head"),he.domAPI=E(),he.insertStyleElement=L(),w()(de.A,he),de.A&&de.A.locals&&de.A.locals;var ye=n(1847),ve=n(677),ge=n(1196),be=n(7308),we=n(5895),xe=n(6914),Ee=n(9957),Ae=n(2702),ke=n(5957),Se=n(6044),Oe=n(138),je=n(385),Le=n(7025),Ne=n(1617),Ce=n(7028),Ie=n(756),Pe=n(581),Te=n(1083),_e=n(6286),ze={};function Me(e){return Me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(e)}function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?De(Object(n),!0).forEach((function(t){Fe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Fe(e,t,n){return(t=function(e){var t=function(e){if("object"!=Me(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Me(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Me(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ge(){Ge=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Me(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(Me(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function Je(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function Ue(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Je(o,r,a,i,c,"next",e)}function c(e){Je(o,r,a,i,c,"throw",e)}i(void 0)}))}}function qe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ve(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ve(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}ze.styleTagTransform=C(),ze.setAttributes=O(),ze.insert=k().bind(null,"head"),ze.domAPI=E(),ze.insertStyleElement=L(),w()(_e.A,ze),_e.A&&_e.A.locals&&_e.A.locals;var We=n(7166).getApiError,He=ye.A.Paragraph,Be=ye.A.Text,Ye=ye.A.Title,Ke=function(e){var t=e.title,n=e.eyebrow,o=e.modules,i=e.selectedIds,c=e.onChange,l=e.emptyText,u=e.action,s=e.actionIcon,m=e.actionClassName,p=e.actionLoading,f=e.disabled,d=e.onAction,h=e.extra,y=o.map((function(e){return e.id})),v=y.filter((function(e){return i.includes(e)})).length,g=o.length>0&&v==o.length,b=v>0&&!g;return r.createElement(ve.A,{className:"webdav-sync-module-card",bordered:!1},r.createElement("div",{className:"webdav-sync-module-header"},r.createElement("div",null,r.createElement(Be,{type:"secondary",className:"webdav-sync-module-eyebrow"},n),r.createElement(Ye,{level:5},t)),h),r.createElement("div",{className:"webdav-sync-select-all"},r.createElement(ge.A,{checked:g,indeterminate:b,disabled:!o.length||f,onChange:function(e){return c(e.target.checked?y:[])}},"全选"),r.createElement(Be,{type:"secondary"},"已选择 ",v," / ",o.length)),r.createElement("div",{className:"webdav-sync-module-list"},o.length?r.createElement(ge.A.Group,{value:i,onChange:c,disabled:f},o.map((function(e){return r.createElement(ge.A,{key:e.id,value:e.id,className:"webdav-sync-module-option"},r.createElement("span",{className:"webdav-sync-module-name"},e.name),r.createElement("span",{className:"webdav-sync-module-count"},e.interfaceCount||0," 个接口"))}))):r.createElement(be.A,{image:be.A.PRESENTED_IMAGE_SIMPLE,description:l})),r.createElement(a.Ay,{block:!0,type:"primary",className:m,icon:s,loading:p,disabled:f||!v,onClick:d},u,"(",v,")"))};const $e=function(e){var t=e.open,n=e.onClose,o=e.onPulled,i=qe(we.A.useForm(),1)[0],c=qe((0,r.useState)(null),2),l=c[0],u=c[1],s=qe((0,r.useState)(!1),2),m=s[0],p=s[1],f=qe((0,r.useState)(""),2),d=f[0],g=f[1],b=qe((0,r.useState)(""),2),w=b[0],x=b[1],E=qe((0,r.useState)([]),2),A=E[0],k=E[1],S=qe((0,r.useState)([]),2),O=S[0],j=S[1],L=function(e,t){var n=We(e,t);return x(n.message),U.Ay.error(n.message),n},N=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};u(e),t.push&&k((e.localModules||[]).map((function(e){return e.id}))),t.pull&&j((e.remoteModules||[]).map((function(e){return e.id})))},C=function(){var e=Ue(Ge().mark((function e(){var t,n,r;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p(!0),x(""),e.prev=2,e.next=5,Te.A.get("/cgi-bin/webdav");case 5:if(t=e.sent,n=t.data.data,N(n,{push:!0,pull:!0}),i.setFieldsValue({endpoint:n.endpoint,username:n.username,password:""}),!n.configured){e.next=20;break}return e.prev=10,e.next=13,Te.A.post("/cgi-bin/webdav",{action:"refresh"});case 13:r=e.sent,N(r.data.data,{pull:!0}),e.next=20;break;case 17:e.prev=17,e.t0=e.catch(10),L(e.t0,"连接配置已读取,但刷新远端模块失败");case 20:e.next=25;break;case 22:e.prev=22,e.t1=e.catch(2),L(e.t1,"读取 WebDAV 配置失败");case 25:return e.prev=25,p(!1),e.finish(25);case 28:case"end":return e.stop()}}),e,null,[[2,22,25,28],[10,17]])})));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){t&&C()}),[t]);var I,P=function(){var e=Ue(Ge().mark((function e(t){var n,r,a,o=arguments;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},e.next=4,Te.A.post("/cgi-bin/webdav",Re({action:t},n));case 4:return(a=e.sent).data&&a.data.data&&N(a.data.data,r),e.abrupt("return",a.data);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=function(){var e=Ue(Ge().mark((function e(){var t;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.validateFields();case 3:t=e.sent,e.next=9;break;case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return");case 9:return g("test"),x(""),e.prev=11,e.next=14,P("test",t);case 14:U.Ay.success("WebDAV 连接测试成功"),e.next=20;break;case 17:e.prev=17,e.t1=e.catch(11),L(e.t1,"WebDAV 连接测试失败");case 20:return e.prev=20,g(""),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[0,6],[11,17,20,23]])})));return function(){return e.apply(this,arguments)}}(),_=function(){var e=Ue(Ge().mark((function e(){var t,n;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.validateFields();case 3:t=e.sent,e.next=9;break;case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return");case 9:return g("connect"),x(""),e.prev=11,e.next=14,P("connect",t,{push:!0,pull:!0});case 14:return i.setFieldValue("password",""),U.Ay.success("WebDAV 连接已保存"),e.prev=16,e.next=19,Te.A.post("/cgi-bin/webdav",{action:"refresh"});case 19:n=e.sent,N(n.data.data,{pull:!0}),e.next=26;break;case 23:e.prev=23,e.t1=e.catch(16),L(e.t1,"连接已保存,但刷新远端模块失败");case 26:e.next=31;break;case 28:e.prev=28,e.t2=e.catch(11),L(e.t2,"保存 WebDAV 连接失败");case 31:return e.prev=31,g(""),e.finish(31);case 34:case"end":return e.stop()}}),e,null,[[0,6],[11,28,31,34],[16,23]])})));return function(){return e.apply(this,arguments)}}(),z=function(){var e=Ue(Ge().mark((function e(){return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g("refresh"),x(""),e.prev=2,e.next=5,P("refresh",{},{pull:!0});case 5:U.Ay.success("远端状态已刷新"),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(2),L(e.t0,"刷新远端状态失败");case 11:return e.prev=11,g(""),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])})));return function(){return e.apply(this,arguments)}}(),M=function(){var e=Ue(Ge().mark((function e(){var t,n,r,a=arguments;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>0&&void 0!==a[0]&&a[0],(n=a.length>1&&void 0!==a[1]?a[1]:A).length){e.next=5;break}return U.Ay.warning("请至少选择一个要推送的功能模块"),e.abrupt("return");case 5:return g("push"),x(""),e.prev=7,e.next=10,P("push",{force:t,featureIds:n},{push:!0,pull:!0});case 10:U.Ay.success("已推送 ".concat(n.length," 个功能模块")),e.next=17;break;case 13:e.prev=13,e.t0=e.catch(7),r=We(e.t0,"推送失败"),e.t0.response&&409==e.t0.response.status&&"REMOTE_NEWER"==r.conflict&&!t?h.A.confirm({title:"远端模块存在差异",content:"已选择模块的远端内容与本地不同,继续推送会覆盖远端版本。确定继续吗?",okText:"继续推送",cancelText:"取消",onOk:function(){return M(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"REMOTE_UNVERIFIABLE"==r.conflict&&!t?h.A.confirm({title:"远端服务不支持并发校验",content:"WebDAV 没有返回 ETag 或 Last-Modified,无法确认模块清单期间是否被其他设备修改。仍要覆盖吗?",okText:"强制推送",okType:"danger",cancelText:"取消",onOk:function(){return M(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"REMOTE_INVALID"==r.conflict&&!t?h.A.confirm({title:"远端模块清单已损坏",content:"继续推送会用已选择的 ".concat(n.length," 个模块创建新清单。确定继续吗?"),okText:"推送已选模块",okType:"danger",cancelText:"取消",onOk:function(){return M(!0,n)}}):L(e.t0,"推送失败");case 17:return e.prev=17,g(""),e.finish(17);case 20:case"end":return e.stop()}}),e,null,[[7,13,17,20]])})));return function(){return e.apply(this,arguments)}}(),D=function(){var e=Ue(Ge().mark((function e(){var t,n,r,a=arguments;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>0&&void 0!==a[0]&&a[0],(n=a.length>1&&void 0!==a[1]?a[1]:O).length){e.next=5;break}return U.Ay.warning("请至少选择一个要拉取的功能模块"),e.abrupt("return");case 5:return g("pull"),x(""),e.prev=7,e.next=10,P("pull",{force:t,featureIds:n},{push:!0,pull:!0});case 10:if(U.Ay.success("已拉取 ".concat(n.length," 个功能模块")),!o){e.next=14;break}return e.next=14,o();case 14:e.next=20;break;case 16:e.prev=16,e.t0=e.catch(7),r=We(e.t0,"拉取失败"),e.t0.response&&409==e.t0.response.status&&"LOCAL_NEWER"==r.conflict&&!t?h.A.confirm({title:"本地模块存在差异",content:"已选择模块的本地内容与远端不同,继续拉取会覆盖其中 ".concat(n.length," 个本地模块及其接口。确定继续吗?"),okText:"覆盖本地",okType:"danger",cancelText:"取消",onOk:function(){return D(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"LOCAL_CHANGED"==r.conflict?h.A.warning({title:"本地模块发生变化",content:"拉取过程中检测到本地模块被修改,本次没有覆盖任何本地数据。请检查修改后重新拉取。",okText:"知道了"}):L(e.t0,"拉取失败");case 20:return e.prev=20,g(""),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[7,16,20,23]])})));return function(){return e.apply(this,arguments)}}(),R=function(){var e=Ue(Ge().mark((function e(){return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g("disconnect"),x(""),e.prev=2,e.next=5,P("disconnect");case 5:U.Ay.success("已断开 WebDAV,同步文件未删除"),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(2),L(e.t0,"断开连接失败");case 11:return e.prev=11,g(""),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])})));return function(){return e.apply(this,arguments)}}(),F=l&&l.configured,G=!!d;return r.createElement(h.A,{title:null,open:t,onCancel:function(){G?U.Ay.warning("WebDAV 操作正在进行,请等待完成后再关闭"):n()},footer:null,width:1e3,maskClosable:!G,keyboard:!G,destroyOnClose:!0,className:"webdav-sync-modal",wrapClassName:"webdav-sync-modal-wrap"},r.createElement("div",{className:"webdav-sync-hero"},r.createElement("div",{className:"webdav-sync-hero-icon"},r.createElement(Oe.A,null)),r.createElement("div",{className:"webdav-sync-hero-copy"},r.createElement(Be,{className:"webdav-sync-kicker"},"WEBDAV SYNC"),r.createElement(Ye,{level:3},"功能模块同步"),r.createElement(He,null,"按模块手动推送或拉取,每个模块独立压缩保存。")),r.createElement(xe.A,{color:F?"success":"default"},F?"已连接":"尚未配置")),w&&r.createElement(v.A,{className:"webdav-sync-error",type:"error",showIcon:!0,closable:!0,message:"WebDAV 操作失败",description:w,onClose:function(){return x("")}}),r.createElement(y.A,{spinning:m},F?r.createElement("div",{className:"webdav-sync-connected"},r.createElement(ve.A,{className:"webdav-sync-connection-card",bordered:!1},r.createElement(ke.A,{title:"连接信息",column:{xs:1,sm:2},size:"small"},r.createElement(ke.A.Item,{label:"目录地址",span:2},r.createElement(Be,{className:"webdav-sync-break-all",code:!0},l.endpoint)),r.createElement(ke.A.Item,{label:"用户名"},l.username),r.createElement(ke.A.Item,{label:"模块清单"},l.remoteFileName)),r.createElement(Se.A,{title:"确定断开 WebDAV?",description:"只会清除本机连接信息,不会删除远端同步文件。",okText:"断开",cancelText:"取消",onConfirm:R},r.createElement(a.Ay,{type:"link",danger:!0,className:"webdav-sync-disconnect",icon:r.createElement(Ne.A,null),loading:"disconnect"==d,disabled:G&&"disconnect"!=d},"断开连接"))),r.createElement("div",{className:"webdav-sync-module-grid"},r.createElement(Ke,{eyebrow:"LOCAL MODULES",title:"本地模块",modules:l.localModules||[],selectedIds:A,onChange:k,emptyText:"暂无可推送的功能模块",action:"推送已选模块",actionIcon:r.createElement(Ce.A,null),actionLoading:"push"==d,disabled:G,onAction:function(){return M(!1)}}),r.createElement(Ke,{eyebrow:"REMOTE MODULES",title:"远端模块",modules:l.remoteModules||[],selectedIds:O,onChange:j,emptyText:l.remoteFileInvalid?"远端模块清单已损坏":"远端暂无模块,请先推送或刷新",action:"拉取已选模块",actionIcon:r.createElement(Ie.A,null),actionClassName:"webdav-sync-pull-button",actionLoading:"pull"==d,disabled:G,onAction:function(){return D(!1)},extra:r.createElement(a.Ay,{shape:"circle",icon:r.createElement(Pe.A,null),loading:"refresh"==d,disabled:G&&"refresh"!=d,onClick:z,"aria-label":"刷新远端模块"})})),r.createElement(v.A,{className:"webdav-sync-manual-note",type:"info",showIcon:!0,message:"只同步已选择的模块",description:"远端清单更新时间:".concat((I=l.remoteUpdatedAt,I?new Date(I).toLocaleString("zh-CN",{hour12:!1}):"未获取"),"。拉取只替换同 ID 的已选模块及其接口,未选择的本地模块保持不变。")})):r.createElement("div",{className:"webdav-sync-grid"},r.createElement(ve.A,{className:"webdav-sync-card",bordered:!1},r.createElement(we.A,{form:i,layout:"vertical",requiredMark:!1},r.createElement(we.A.Item,{name:"endpoint",label:"WebDAV 专用目录",rules:[{required:!0,message:"请输入 WebDAV 目录地址"}],extra:"只填写目录,不包含 JSON 文件名;末尾斜杠会自动补齐。"},r.createElement(Ee.A,{prefix:r.createElement(je.A,null),placeholder:"https://webdav.example.com/webdav/whistle-mock-plugin-sync/"})),r.createElement("div",{className:"webdav-sync-form-row"},r.createElement(we.A.Item,{name:"username",label:"用户名",rules:[{required:!0,message:"请输入 WebDAV 用户名"}]},r.createElement(Ee.A,{autoComplete:"username"})),r.createElement(we.A.Item,{name:"password",label:"密码",rules:[{required:!0,message:"请输入 WebDAV 密码"}]},r.createElement(Ee.A.Password,{autoComplete:"current-password"}))),r.createElement(Ae.A,{className:"webdav-sync-form-actions"},r.createElement(a.Ay,{icon:r.createElement(Le.A,null),loading:"test"==d,disabled:G&&"test"!=d,onClick:T},"测试连接"),r.createElement(a.Ay,{type:"primary",icon:r.createElement(Oe.A,null),loading:"connect"==d,disabled:G&&"connect"!=d,onClick:_},"保存连接")))),r.createElement(ve.A,{className:"webdav-sync-note",bordered:!1},r.createElement(Le.A,{className:"webdav-sync-note-icon"}),r.createElement(Ye,{level:5},"凭据只留在本机"),r.createElement(He,null,"账号密码保存在 Whistle 插件数据目录,页面不会读取明文密码,也不会写入远端同步文件。"),r.createElement("div",{className:"webdav-sync-file-tree"},r.createElement("div",null,"专用 WebDAV 目录"),r.createElement("div",null,"├─ ",l?l.remoteFileName:"whistle-mock-plugin-manifest.json"),r.createElement("div",null,"└─ 每个功能模块一个 .json.gz"))))))};var Qe=n(6370),Xe=n(2609),Ze=n(2120),et=n(7977),tt=n(5739),nt=n(7152),rt=n(6729),at=n(261),ot=n(1952),it=n(3598),ct=n(9237),lt=n(3146),ut=n(6704),st=n(8940),mt={};function pt(e){var t=e.title,n=e.description,a=e.kicker,o=e.actions;return r.createElement("div",{className:"mm-page-header"},r.createElement("div",null,a&&r.createElement("div",{className:"mm-page-kicker"},a),r.createElement("h1",null,t),n&&r.createElement("p",null,n)),o&&r.createElement("div",{className:"page-actions"},o))}function ft(e){return ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ft(e)}function dt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=bt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw o}}}}function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){vt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function vt(e,t,n){return(t=function(e){var t=function(e){if("object"!=ft(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ft(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ft(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||bt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bt(e,t){if(e){if("string"==typeof e)return wt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wt(e,t):void 0}}function wt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function xt(){xt=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==ft(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(ft(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function Et(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function At(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Et(o,r,a,i,c,"next",e)}function c(e){Et(o,r,a,i,c,"throw",e)}i(void 0)}))}}mt.styleTagTransform=C(),mt.setAttributes=O(),mt.insert=k().bind(null,"head"),mt.domAPI=E(),mt.insertStyleElement=L(),w()(st.A,mt),st.A&&st.A.locals&&st.A.locals;var kt=ye.A.Text,St=(ye.A.Title,ye.A.Paragraph),Ot=Ee.A.TextArea,jt=function(){var e=At(xt().mark((function e(){var t;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Te.A.get("/_flush_cache");case 3:return t=e.sent,e.abrupt("return",t.data);case 7:throw e.prev=7,e.t0=e.catch(0),console.error("刷新缓存失败:",e.t0),e.t0;case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();const Lt=function(){var e=(0,f.W6)(),t=gt((0,r.useState)([]),2),n=t[0],c=t[1],l=gt((0,r.useState)(!1),2),u=l[0],s=l[1],m=gt((0,r.useState)(null),2),p=m[0],d=m[1],v=gt((0,r.useState)(!1),2),g=v[0],b=v[1],w=gt((0,r.useState)([]),2),x=w[0],E=w[1],A=gt((0,r.useState)(!1),2),k=A[0],S=A[1],O=gt((0,r.useState)(""),2),j=O[0],L=O[1],N=gt((0,r.useState)(""),2),C=N[0],I=N[1],P=gt((0,r.useState)(!1),2),T=P[0],_=P[1],z=gt((0,r.useState)(!1),2),M=z[0],D=z[1],R=gt((0,r.useState)(!0),2),F=R[0],G=R[1],q=gt(we.A.useForm(),1)[0],V=gt((0,r.useState)((function(){var e=localStorage.getItem("feature-list-config");return e?JSON.parse(e):{sortBy:"name",sortOrder:"ascend",pageSize:12,current:1,viewMode:"card"}})),2),W=V[0],H=V[1],B=function(e){var t=yt(yt({},W),e);H(t),localStorage.setItem("feature-list-config",JSON.stringify(t))};(0,r.useEffect)((function(){$(),Y()}),[]);var Y=function(){var e=At(xt().mark((function e(){var t;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Te.A.get("/cgi-bin/settings");case 3:t=e.sent,_(1==t.data.webDavSyncEnabled),e.next=11;break;case 7:e.prev=7,e.t0=e.catch(0),console.error("读取 WebDAV 同步设置失败:",e.t0),_(!1);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){var e=function(){u&&ee()},t=function(){Q()};return window.addEventListener("shortcut-save",e),window.addEventListener("shortcut-new-interface",t),function(){window.removeEventListener("shortcut-save",e),window.removeEventListener("shortcut-new-interface",t)}}),[u]);var K,$=function(){var e=At(xt().mark((function e(){var t,n;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,G(!0),I(""),e.next=5,fetch("/cgi-bin/features");case 5:return t=e.sent,e.next=8,t.json();case 8:0===(n=e.sent).code?c(n.data||[]):(console.error("获取功能模块失败:",n.message),I(n.message||"获取模块失败")),e.next=16;break;case 12:e.prev=12,e.t0=e.catch(0),console.error("获取功能模块错误:",e.t0),I("获取功能模块失败,请检查网络连接");case 16:return e.prev=16,G(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[0,12,16,19]])})));return function(){return e.apply(this,arguments)}}(),Q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e?(d(e),q.setFieldsValue({name:e.name,description:e.description,active:!1!==e.active})):(d(null),q.resetFields(),q.setFieldsValue({active:!0})),s(!0)},X=function(){s(!1)},Z=function(){var e=At(xt().mark((function e(){return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,jt();case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.error("刷新缓存失败,可能需要等待缓存自动过期:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})));return function(){return e.apply(this,arguments)}}(),ee=function(){var e=At(xt().mark((function e(t){var n,r,a;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=yt({},t),p&&(n.id=p.id),G(!0),e.next=6,fetch("/cgi-bin/features",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});case 6:return r=e.sent,e.next=9,r.json();case 9:0===(a=e.sent).code?(U.Ay.success(p?"功能模块更新成功":"功能模块创建成功"),$(),X(),Z()):U.Ay.error("操作失败: "+a.message),e.next=17;break;case 13:e.prev=13,e.t0=e.catch(0),console.error("保存功能模块错误:",e.t0),U.Ay.error("保存失败: "+e.t0.message);case 17:return e.prev=17,G(!1),e.finish(17);case 20:case"end":return e.stop()}}),e,null,[[0,13,17,20]])})));return function(t){return e.apply(this,arguments)}}(),te=function(){var e=At(xt().mark((function e(t,r){var a,o;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/cgi-bin/features?id=".concat(t),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({active:!r})});case 3:return a=e.sent,e.next=6,a.json();case 6:0===(o=e.sent).code?(U.Ay.success("".concat(r?"禁用":"启用","功能模块成功")),c(n.map((function(e){return e.id===t?yt(yt({},e),{},{active:!r}):e}))),Z()):U.Ay.error("".concat(r?"禁用":"启用","功能模块失败: ").concat(o.message)),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(0),console.error("".concat(r?"禁用":"启用","功能模块错误:"),e.t0),U.Ay.error("操作失败: ".concat(e.t0.message));case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(t,n){return e.apply(this,arguments)}}(),ne=function(){var e=At(xt().mark((function e(t){return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:h.A.confirm({title:"确定要删除此功能吗?",content:"这将删除所有相关的接口和模拟数据,此操作无法恢复。",okText:"删除",okType:"danger",cancelText:"取消",onOk:function(){var e=At(xt().mark((function e(){var r,a;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,G(!0),e.next=4,fetch("/cgi-bin/features?id=".concat(t),{method:"DELETE"});case 4:return r=e.sent,e.next=7,r.json();case 7:0===(a=e.sent).code?(U.Ay.success("功能模块已成功删除"),c(n.filter((function(e){return e.id!==t}))),Z()):U.Ay.error("删除失败: "+a.message),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(0),console.error("删除功能错误:",e.t0),U.Ay.error("操作失败: "+e.t0.message);case 15:return e.prev=15,G(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[0,11,15,18]])})));return function(){return e.apply(this,arguments)}}()});case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),re=function(t){localStorage.setItem("selectedFeatureId",t.id),e.push("/interface/".concat(t.id))},ae=function(){var e=At(xt().mark((function e(t){var n,r,a,o,i,c,l;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/cgi-bin/interfaces?featureId=".concat(t.id));case 3:return n=e.sent,e.next=6,n.json();case 6:r=e.sent,a=yt(yt({},t),{},{interfaces:0===r.code?r.data:[]}),o=JSON.stringify(a,null,2),i="data:application/json;charset=utf-8,"+encodeURIComponent(o),c="whistle-mock-feature-".concat(t.id,".json"),(l=document.createElement("a")).setAttribute("href",i),l.setAttribute("download",c),l.click(),U.Ay.success("配置导出成功"),e.next=22;break;case 18:e.prev=18,e.t0=e.catch(0),console.error("导出配置错误:",e.t0),U.Ay.error("导出失败: "+e.t0.message);case 22:case"end":return e.stop()}}),e,null,[[0,18]])})));return function(t){return e.apply(this,arguments)}}(),oe=function(){var e=At(xt().mark((function e(){var t,r,a,o,i,c,l,u,s,m,p,f,d;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==x.length){e.next=3;break}return U.Ay.warning("请至少选择一个功能模块"),e.abrupt("return");case 3:e.prev=3,S(!0),t=n.filter((function(e){return x.includes(e.id)})),r=[],a=dt(t),e.prev=8,a.s();case 10:if((o=a.n()).done){e.next=21;break}return i=o.value,e.next=14,fetch("/cgi-bin/interfaces?featureId=".concat(i.id));case 14:return c=e.sent,e.next=17,c.json();case 17:l=e.sent,r.push(yt(yt({},i),{},{interfaces:0===l.code?l.data:[]}));case 19:e.next=10;break;case 21:e.next=26;break;case 23:e.prev=23,e.t0=e.catch(8),a.e(e.t0);case 26:return e.prev=26,a.f(),e.finish(26);case 29:u=1===r.length?r[0]:r,s=JSON.stringify(u,null,2),m=new Blob([s],{type:"application/json;charset=utf-8"}),p=URL.createObjectURL(m),f=1===r.length?"whistle-mock-feature-".concat(r[0].id,".json"):"whistle-mock-features-".concat(r.length,".json"),(d=document.createElement("a")).href=p,d.download=f,d.click(),URL.revokeObjectURL(p),U.Ay.success("成功导出 ".concat(r.length," 个功能模块")),b(!1),e.next=47;break;case 43:e.prev=43,e.t1=e.catch(3),console.error("导出配置错误:",e.t1),U.Ay.error("导出失败: "+e.t1.message);case 47:return e.prev=47,S(!1),e.finish(47);case 50:case"end":return e.stop()}}),e,null,[[3,43,47,50],[8,23,26,29]])})));return function(){return e.apply(this,arguments)}}(),ie=function(){var e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=function(){var e=At(xt().mark((function e(t){var n,r;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.target.files[0]){e.next=3;break}return e.abrupt("return");case 3:(r=new FileReader).onload=function(){var e=At(xt().mark((function e(t){var n,r,a,o,i,c,l,u,s,m,p,f,d,h,y,v,g,b,w;return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n=JSON.parse(t.target.result),r=Array.isArray(n)?n:[n],a=r.filter((function(e){return e&&e.name})),0!==a.length){e.next=7;break}return U.Ay.error("无效的配置文件: 缺少功能名称"),e.abrupt("return");case 7:U.Ay.loading({content:"正在导入功能配置...",key:"importInfo"}),o=0,i=0,c=0,l=0,u=dt(a),e.prev=13,u.s();case 15:if((s=u.n()).done){e.next=67;break}return m=s.value,e.prev=17,p={name:m.name,description:m.description||"",active:!1!==m.active},e.next=21,fetch("/cgi-bin/features",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)});case 21:return f=e.sent,e.next=24,f.json();case 24:if(0!==(d=e.sent).code){e.next=57;break}if(o++,h=d.data,!(Array.isArray(m.interfaces)&&m.interfaces.length>0)){e.next=55;break}y=dt(m.interfaces),e.prev=30,y.s();case 32:if((v=y.n()).done){e.next=47;break}return g=v.value,e.prev=34,b=yt(yt({},g),{},{featureId:h.id,id:void 0}),e.next=38,fetch("/cgi-bin/interfaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});case 38:c++,e.next=45;break;case 41:e.prev=41,e.t0=e.catch(34),console.error("导入接口配置失败:",e.t0),l++;case 45:e.next=32;break;case 47:e.next=52;break;case 49:e.prev=49,e.t1=e.catch(30),y.e(e.t1);case 52:return e.prev=52,y.f(),e.finish(52);case 55:e.next=59;break;case 57:i++,console.error("导入功能失败:",d.message);case 59:e.next=65;break;case 61:e.prev=61,e.t2=e.catch(17),i++,console.error("导入功能错误:",e.t2);case 65:e.next=15;break;case 67:e.next=72;break;case 69:e.prev=69,e.t3=e.catch(13),u.e(e.t3);case 72:return e.prev=72,u.f(),e.finish(72);case 75:w=c>0||l>0?",共导入 ".concat(c," 个接口").concat(l>0?"(".concat(l," 个失败)"):""):"",U.Ay.success({content:"导入完成:成功 ".concat(o," 个功能").concat(i>0?",失败 ".concat(i," 个功能"):"").concat(w),key:"importInfo",duration:3}),$(),e.next=84;break;case 80:e.prev=80,e.t4=e.catch(0),console.error("导入配置错误:",e.t4),U.Ay.error("导入失败: "+e.t4.message);case 84:case"end":return e.stop()}}),e,null,[[0,80],[13,69,72,75],[17,61],[30,49,52,55],[34,41]])})));return function(t){return e.apply(this,arguments)}}(),r.readAsText(n);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),e.click()},ce=function(e){B({viewMode:e,current:1})},le=function(){return n.filter((function(e){return"".concat(e.name," ").concat(e.description||"").toLowerCase().includes(j.toLowerCase())})).sort((function(e,t){var n,r;switch(W.sortBy){case"name":return n=e.name||"",r=t.name||"","ascend"===W.sortOrder?n.localeCompare(r,"zh-CN"):r.localeCompare(n,"zh-CN");case"createdAt":return n=new Date(e.createdAt||0).getTime(),r=new Date(t.createdAt||0).getTime(),"ascend"===W.sortOrder?n-r:r-n;case"interfaceCount":return n=e.interfaceCount||0,r=t.interfaceCount||0,"ascend"===W.sortOrder?n-r:r-n;case"active":return n=e.active?1:0,r=t.active?1:0,"ascend"===W.sortOrder?n-r:r-n;default:return 0}}))},ue=function(){var e=le(),t=(W.current-1)*W.pageSize,n=t+W.pageSize;return e.slice(t,n)};return r.createElement(r.Fragment,null,r.createElement("div",{className:"page-container"},r.createElement(pt,{kicker:"MODULES",title:"功能模块",description:"按业务组织接口,集中管理配置与启用状态。",actions:r.createElement("div",{className:"page-actions"},r.createElement(a.Ay,{type:"primary",icon:r.createElement(ct.A,null),onClick:function(){return Q()}},"新建功能"),r.createElement(a.Ay,{type:"default",icon:r.createElement(lt.A,null),onClick:ie},"导入功能"),r.createElement(a.Ay,{type:"default",icon:r.createElement(ot.A,null),onClick:function(){0!==n.length?(E(n.map((function(e){return e.id}))),b(!0)):U.Ay.warning("暂无可导出的功能模块")},disabled:0===n.length},"导出功能"),T&&r.createElement(a.Ay,{type:"default",icon:r.createElement(Oe.A,null),onClick:function(){return D(!0)}},"WebDAV"))}),r.createElement("div",{className:"mm-module-search"},r.createElement(Ee.A.Search,{placeholder:"搜索模块名称或说明",value:j,allowClear:!0,onChange:function(e){L(e.target.value),B({current:1})},style:{maxWidth:360}})),C&&r.createElement("div",{role:"alert",className:"mm-error"},r.createElement("span",null,C)," ",r.createElement(a.Ay,{onClick:$},"重试")),r.createElement("div",{className:"mm-module-toolbar"},r.createElement(Ae.A,{wrap:!0},r.createElement("span",null,n.length," 个模块"),r.createElement("span",null,n.filter((function(e){return!1!==e.active})).length," 个已启用"),r.createElement("span",null,n.reduce((function(e,t){return e+(t.interfaceCount||0)}),0)," 个接口")),r.createElement(Ae.A,{wrap:!0},r.createElement(tt.A,{"aria-label":"模块排序",value:W.sortBy,onChange:function(e){B({sortBy:e,current:1})},style:{width:120},options:[{value:"name",label:"按名称"},{value:"createdAt",label:"按创建时间"},{value:"interfaceCount",label:"按接口数"},{value:"active",label:"按状态"}]}),r.createElement(tt.A,{"aria-label":"排序方向",value:W.sortOrder,onChange:function(e){B({sortOrder:e,current:1})},style:{width:85},options:[{value:"ascend",label:"升序"},{value:"descend",label:"降序"}]}),r.createElement(a.Ay,{"aria-label":"卡片视图",type:"card"===W.viewMode?"primary":"default",icon:r.createElement(o.A,null),onClick:function(){return ce("card")}}),r.createElement(a.Ay,{"aria-label":"列表视图",type:"list"===W.viewMode?"primary":"default",icon:r.createElement(ut.A,null),onClick:function(){return ce("list")}}))),r.createElement(ve.A,{className:"feature-list-card"},F?r.createElement("div",{className:"loading-state"},r.createElement(y.A,{size:"large"}),r.createElement("div",{className:"loading-text"},"正在加载功能模块...")):le().length>0?r.createElement(r.Fragment,null,"card"===W.viewMode?r.createElement(nt.A,{gutter:[20,20],className:"feature-grid"},ue().map((function(e){return function(e){return r.createElement(Qe.A,{xs:24,sm:12,xl:8,key:e.id},r.createElement(ve.A,{className:"mm-module-card"},r.createElement("div",{className:"mm-module-card-header"},r.createElement(a.Ay,{type:"link",onClick:function(){return re(e)}},e.name),r.createElement(Xe.A,{"aria-label":"启用模块 ".concat(e.name),checked:!1!==e.active,onChange:function(){return te(e.id,e.active)},size:"small"})),r.createElement(St,{ellipsis:{rows:2,tooltip:e.description},className:"mm-module-card-description"},e.description||"暂无模块说明"),r.createElement("div",{className:"mm-module-card-footer"},r.createElement("span",null,e.interfaceCount||0," 个接口 · ",!1!==e.active?"已启用":"已禁用"),r.createElement(Ae.A,null,r.createElement(a.Ay,{type:"text",size:"small","aria-label":"编辑 ".concat(e.name),icon:r.createElement(at.A,null),onClick:function(){return Q(e)}}),r.createElement(a.Ay,{type:"text",size:"small","aria-label":"导出 ".concat(e.name),icon:r.createElement(ot.A,null),onClick:function(){return ae(e)}}),r.createElement(a.Ay,{type:"text",size:"small",danger:!0,"aria-label":"删除 ".concat(e.name),icon:r.createElement(it.A,null),onClick:function(){return ne(e.id)}})))))}(e)}))):(K=[{title:"状态",dataIndex:"active",key:"active",width:100,render:function(e,t){return r.createElement(Xe.A,{checked:e,onChange:function(n,r){r.stopPropagation(),te(t.id,e)},checkedChildren:"启用",unCheckedChildren:"禁用"})}},{title:"功能名称",dataIndex:"name",key:"name",ellipsis:{tooltip:!0},render:function(e){return r.createElement(kt,{strong:!0,style:{fontSize:"14px"}},e)}},{title:"功能描述",dataIndex:"description",key:"description",ellipsis:{tooltip:!0},render:function(e){return r.createElement(kt,{type:"secondary"},e||"无描述")}},{title:"接口数量",dataIndex:"interfaceCount",key:"interfaceCount",width:100,align:"center",render:function(e){return r.createElement(Ze.A,{count:e||0,showZero:!0,style:{backgroundColor:"#1677ff"}})}},{title:"创建时间",dataIndex:"createdAt",key:"createdAt",width:120,render:function(e){return r.createElement(kt,{type:"secondary"},e?new Date(e).toLocaleDateString():"未知日期")}},{title:"操作",key:"action",width:200,fixed:"right",render:function(e,t){return r.createElement(Ae.A,{size:"small"},r.createElement(et.A,{title:"管理接口"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement(i.A,null),onClick:function(e){e.stopPropagation(),re(t)}},"接口")),r.createElement(et.A,{title:"编辑"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement(at.A,null),onClick:function(e){e.stopPropagation(),Q(t)}})),r.createElement(et.A,{title:"导出"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement(ot.A,null),onClick:function(e){e.stopPropagation(),ae(t)}})),r.createElement(et.A,{title:"删除"},r.createElement(a.Ay,{type:"link",size:"small",danger:!0,icon:r.createElement(it.A,null),onClick:function(e){e.stopPropagation(),ne(t.id)}})))}}],r.createElement(J.A,{columns:K,dataSource:ue(),scroll:{x:760},rowKey:"id",pagination:!1,onRow:function(e){return{onClick:function(t){t.target.closest("button, a, input")||re(e)},style:{cursor:"pointer"}}},rowClassName:function(e){return e.active?"":"inactive-row"}})),le().length>0&&r.createElement("div",{className:"pagination-wrapper"},r.createElement(rt.A,{current:W.current,pageSize:W.pageSize,total:le().length,onChange:function(e,t){B({current:e,pageSize:t})},onShowSizeChange:function(e,t){B({pageSize:t,current:1})},showSizeChanger:!0,pageSizeOptions:["8","12","16","24"],showQuickJumper:!0,showTotal:function(e,t){return"第 ".concat(t[0],"-").concat(t[1]," 条,共 ").concat(e," 个功能模块")},size:"default",className:"custom-pagination"}))):r.createElement(be.A,{className:"custom-empty",image:r.createElement("div",{className:"empty-image"},r.createElement(i.A,{style:{fontSize:64,color:"#d9d9d9"}})),description:r.createElement("div",{className:"empty-description"},r.createElement("div",{className:"empty-title"},"暂无功能模块或没有匹配结果"),r.createElement("div",{className:"empty-subtitle"},"创建您的第一个功能模块,开始管理接口"))},r.createElement("div",{className:"empty-actions"},r.createElement(a.Ay,{type:"primary",icon:r.createElement(ct.A,null),onClick:function(){return Q()}},"创建新功能"),r.createElement(a.Ay,{icon:r.createElement(ot.A,null),onClick:ie},"导入功能"))))),r.createElement(h.A,{title:p?"编辑功能":"新建功能",open:u,onCancel:X,footer:null,destroyOnClose:!0,width:500},r.createElement(we.A,{form:q,layout:"vertical",onFinish:ee,initialValues:{name:"",description:"",active:!0}},r.createElement(we.A.Item,{name:"name",label:"功能名称",rules:[{required:!0,message:"请输入功能名称"}]},r.createElement(Ee.A,{placeholder:"请输入功能名称"})),r.createElement(we.A.Item,{name:"description",label:"功能描述"},r.createElement(Ot,{placeholder:"请输入功能描述(可选)",autoSize:{minRows:3,maxRows:6}})),r.createElement("div",{className:"form-actions"},r.createElement(a.Ay,{onClick:X},"取消"),r.createElement(a.Ay,{type:"primary",htmlType:"submit",loading:F},"确定")))),r.createElement(h.A,{title:"导出功能",open:g,onCancel:function(){return b(!1)},footer:null,destroyOnClose:!0,width:520},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12}},r.createElement(ge.A,{indeterminate:x.length>0&&x.length<n.length,checked:n.length>0&&x.length===n.length,onChange:function(e){return E(e.target.checked?n.map((function(e){return e.id})):[])}},"全选"),r.createElement(kt,{type:"secondary"},"已选择 ",x.length," / ",n.length)),r.createElement("div",{style:{maxHeight:360,overflowY:"auto",border:"1px solid #f0f0f0",borderRadius:8,padding:"4px 12px"}},r.createElement(ge.A.Group,{value:x,onChange:function(e){return E(e)},style:{width:"100%"}},n.map((function(e){return r.createElement("div",{key:e.id,style:{padding:"8px 0",borderBottom:"1px solid #fafafa"}},r.createElement(ge.A,{value:e.id,style:{width:"100%"}},r.createElement("span",{style:{fontWeight:500}},e.name),r.createElement("span",{style:{color:"#999",marginLeft:8,fontSize:12}},e.interfaceCount||0," 个接口")))})))),r.createElement("div",{className:"form-actions",style:{marginTop:16}},r.createElement(a.Ay,{onClick:function(){return b(!1)}},"取消"),r.createElement(a.Ay,{type:"primary",loading:k,disabled:0===x.length,onClick:oe},"导出 (",x.length,")"))),r.createElement($e,{open:M,onClose:function(){return D(!1)},onPulled:At(xt().mark((function e(){return xt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,$();case 2:return e.next=4,Z();case 4:case"end":return e.stop()}}),e)})))}))};var Nt=n(7745),Ct=n(8073),It=n(277),Pt=n(6157),Tt=n(1201),_t=n(3341),zt=n(6207),Mt=n(7046),Dt=n(1656),Rt=n(5163),Ft=n(763),Gt=n(1315),Jt=n.n(Gt);function Ut(e){return Ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ut(e)}function qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Vt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vt(Object(n),!0).forEach((function(t){Ht(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ht(e,t,n){return(t=function(e){var t=function(e){if("object"!=Ut(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Ut(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ut(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bt(e){var t=e.value,n=void 0===t?[]:t,o=e.onChange,i=e.responses,c=function(e,t,r){return o(n.map((function(n,a){return a===e?Wt(Wt({},n),{},Ht({},t,r)):n})))};return r.createElement("div",{className:"mm-matchers"},n.map((function(e,t){return r.createElement("div",{className:"mm-matcher",key:t},r.createElement(Ee.A,{"aria-label":"条件 ".concat(t+1," 参数路径"),placeholder:"参数路径,如 data.user.id",value:e.paramPath,onChange:function(e){return c(t,"paramPath",e.target.value)}}),r.createElement(tt.A,{"aria-label":"条件 ".concat(t+1," 匹配方式"),value:e.matchType||"exact",onChange:function(e){return c(t,"matchType",e)},options:[{value:"exact",label:"等于"},{value:"contains",label:"包含"},{value:"regex",label:"正则"}]}),r.createElement(Ee.A,{"aria-label":"条件 ".concat(t+1," 期望值"),placeholder:"期望值",value:e.paramValue,onChange:function(e){return c(t,"paramValue",e.target.value)}}),i&&r.createElement(tt.A,{"aria-label":"条件 ".concat(t+1," 目标响应"),allowClear:!0,placeholder:"目标响应(可选)",value:e.targetResponseId||void 0,onChange:function(e){return c(t,"targetResponseId",e)},options:i.map((function(e){return{value:e.id,label:e.name}}))}),r.createElement(a.Ay,{type:"text",danger:!0,"aria-label":"删除条件 ".concat(t+1),icon:r.createElement(it.A,null),onClick:function(){return o(n.filter((function(e,n){return n!==t})))}}))})),r.createElement(a.Ay,{type:"dashed",icon:r.createElement(ct.A,null),onClick:function(){return o([].concat(function(e){if(Array.isArray(e))return qt(e)}(e=n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return qt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{paramPath:"",paramValue:"",matchType:"exact"}]));var e}},"添加条件"))}var Yt=n(4807);function Kt(e){return Kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kt(e)}function $t(){$t=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Kt(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(Kt(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function Qt(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function Xt(e){return function(e){if(Array.isArray(e))return an(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||rn(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function en(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zt(Object(n),!0).forEach((function(t){tn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function tn(e,t,n){return(t=function(e){var t=function(e){if("object"!=Kt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Kt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Kt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||rn(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rn(e,t){if(e){if("string"==typeof e)return an(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?an(e,t):void 0}}function an(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function on(e){var t=e.responses,n=e.activeResponseId,o=e.onChange,i=e.onDefaultChange,c=e.contentType,l=void 0===c?"application/json":c,u=e.matchersEnabled,s=void 0===u||u,m=nn((0,r.useState)(n),2),p=m[0],f=m[1],d=nn((0,r.useState)(!1),2),y=d[0],g=d[1],b=nn((0,r.useState)(null),2),w=b[0],x=b[1],E=t.find((function(e){return e.id===p}))||t.find((function(e){return e.id===n}))||t[0],A=E?t.findIndex((function(e){return e.id===E.id})):-1,k=function(e){return o(t.map((function(t){return t.id===E.id?en(en({},t),e):t})))},S=null;if(E&&l.includes("json"))try{JSON.parse(E.content)}catch(e){S=e.message}var O=function(e){var n,r=en(en({},e||{}),{},{id:(0,Yt.createId)(),name:e?"".concat(e.name," - 副本"):"响应 ".concat(t.length+1),content:null!==(n=null==e?void 0:e.content)&&void 0!==n?n:'{\n "code": 0,\n "data": {}\n}',paramMatchers:null!=e&&e.paramMatchers?JSON.parse(JSON.stringify(e.paramMatchers)):[]});o([].concat(Xt(t),[r])),f(r.id),t.length||i(r.id)},j=function(e){var n=Xt(t),r=[n[A+e],n[A]];n[A]=r[0],n[A+e]=r[1],o(n)},L=function(){var e,t=(e=$t().mark((function e(){return $t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.clipboard.writeText(E.content);case 3:U.Ay.success("已复制"),e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),U.Ay.error("复制失败,请手动选择内容复制");case 9:case"end":return e.stop()}}),e,null,[[0,6]])})),function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Qt(o,r,a,i,c,"next",e)}function c(e){Qt(o,r,a,i,c,"throw",e)}i(void 0)}))});return function(){return t.apply(this,arguments)}}(),N=r.createElement(Ee.A.TextArea,{"aria-label":"响应内容",className:"mm-response-code",value:(null==E?void 0:E.content)||"",spellCheck:!1,onChange:function(e){return k({content:e.target.value})},autoSize:y?{minRows:20,maxRows:30}:{minRows:16,maxRows:26}});return r.createElement("div",{className:"mm-response-editor"},r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(tt.A,{"aria-label":"正在编辑的响应",value:null==E?void 0:E.id,onChange:f,options:t.map((function(e){return{value:e.id,label:"".concat(e.name).concat(e.id===n?" · 默认":"")}}))}),r.createElement(Ae.A,{wrap:!0},r.createElement(a.Ay,{icon:r.createElement(ct.A,null),onClick:function(){return O()}},"新增"),r.createElement(a.Ay,{icon:r.createElement(Mt.A,null),disabled:!E,onClick:function(){return O(E)}},"复制"))),E?r.createElement(r.Fragment,null,r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(Ee.A,{"aria-label":"响应名称",value:E.name,onChange:function(e){return k({name:e.target.value})}}),r.createElement(Ae.A,{wrap:!0},r.createElement(a.Ay,{disabled:A<=0,"aria-label":"响应上移",icon:r.createElement(Dt.A,null),onClick:function(){return j(-1)}}),r.createElement(a.Ay,{disabled:A>=t.length-1,"aria-label":"响应下移",icon:r.createElement(Rt.A,null),onClick:function(){return j(1)}}),r.createElement(Se.A,{title:E.id===n?"删除后第一个响应将作为默认响应,保存后生效。":"删除此响应?保存后生效。",onConfirm:function(){var e=t.filter((function(e){return e.id!==E.id}));o(e),E.id===n&&i(e[0].id),f(e[0].id)}},r.createElement(a.Ay,{danger:!0,disabled:t.length<=1,"aria-label":"删除响应",icon:r.createElement(it.A,null)})))),r.createElement(Ee.A,{"aria-label":"响应说明",placeholder:"响应说明(可选)",value:E.description||"",onChange:function(e){return k({description:e.target.value})}}),r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(Ae.A,null,E.id===n?r.createElement(xe.A,{color:"blue"},"默认响应"):r.createElement(a.Ay,{size:"small",onClick:function(){return i(E.id)}},"设为默认响应"),r.createElement(ye.A.Text,{type:"secondary"},"保存后生效,条件匹配可能选择其他响应"))),r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(ye.A.Text,{type:"secondary"},l.includes("json")?"JSON / Mock.js 模板":"纯文本内容"),r.createElement(Ae.A,{wrap:!0},l.includes("json")&&r.createElement(a.Ay,{size:"small",onClick:function(){try{k({content:JSON.stringify(JSON.parse(E.content),null,2)})}catch(e){U.Ay.error("JSON 格式有误:".concat(e.message))}}},"格式化"),r.createElement(a.Ay,{size:"small",onClick:L},"复制内容"),r.createElement(a.Ay,{size:"small",onClick:function(){try{x(l.includes("json")?JSON.stringify(Jt().mock(JSON.parse(E.content)),null,2):E.content)}catch(e){U.Ay.error(e.message)}}},"预览"),r.createElement(a.Ay,{size:"small","aria-label":"全屏编辑响应",icon:r.createElement(Ft.A,null),onClick:function(){return g(!0)}}))),!y&&N,S&&r.createElement(v.A,{className:"mm-error",type:"error",showIcon:!0,message:"JSON 语法错误",description:S}),s&&r.createElement("section",{className:"mm-editor-section"},r.createElement("h3",null,"响应入参匹配"),r.createElement("p",null,"全部条件满足时返回此响应;按响应顺序检查。"),r.createElement(Bt,{value:E.paramMatchers||[],onChange:function(e){return k({paramMatchers:e})}}))):r.createElement(a.Ay,{onClick:function(){return O()}},"创建第一个响应"),r.createElement(h.A,{title:"响应内容 · 全屏编辑",width:"90vw",open:y,onCancel:function(){return g(!1)},footer:r.createElement(a.Ay,{onClick:function(){return g(!1)}},"返回编辑器")},N),r.createElement(h.A,{title:"响应预览",width:800,open:null!==w,onCancel:function(){return x(null)},footer:null},r.createElement("pre",{className:"mm-preview-code"},w)))}function cn(){cn=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==mn(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(mn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function ln(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function un(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return sn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sn(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function mn(e){return mn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mn(e)}var pn=Ee.A.TextArea,fn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(null===e)return null;if("string"==typeof e)return/^\d{4}-\d{2}-\d{2}/.test(e)?"@date":/^\d{4}-\d{2}-\d{2}T/.test(e)?"@datetime":/^https?:\/\//.test(e)?"@url":/^\w+@\w+\.\w+/.test(e)?"@email":/^1[3-9]\d{9}$/.test(e)?'@string("number", 11)':"@csentence(3, 10)";if("number"==typeof e)return Number.isInteger(e)?"@integer(1, 999)":"@float(1, 100, 2, 2)";if("boolean"==typeof e)return"@boolean";if(Array.isArray(e))return 0===e.length?[]:[fn(e[0],t+1)];if("object"===mn(e)){for(var n={},r=0,a=Object.entries(e);r<a.length;r++){var o=un(a[r],2),i=o[0],c=o[1];n[i]=fn(c,t+1)}return n}return e};const dn=function(e){var t=e.urlPattern,n=e.onApply,o=e.method,i=void 0===o?"GET":o,l=un((0,r.useState)(""),2),u=l[0],s=l[1],m=un((0,r.useState)(!1),2),p=m[0],f=m[1],d=un((0,r.useState)(null),2),h=d[0],y=d[1],v=un((0,r.useState)("preview"),2),g=v[0],b=v[1],w=function(){var e,n=(e=cn().mark((function e(){var n,r,a;return cn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.trim()||t){e.next=4;break}return U.Ay.warning("请输入目标 URL"),e.abrupt("return");case 4:return f(!0),e.prev=5,e.next=8,Te.A.post("/cgi-bin/proxy-fetch",{url:n,method:i});case 8:if(0!==(r=e.sent).data.code){e.next=15;break}y(r.data.data),b("preview"),U.Ay.success("抓取成功"),e.next=16;break;case 15:throw new Error(r.data.message);case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(5),U.Ay.error("抓取失败: "+((null===(a=e.t0.response)||void 0===a||null===(a=a.data)||void 0===a?void 0:a.message)||e.t0.message));case 21:return e.prev=21,f(!1),e.finish(21);case 24:case"end":return e.stop()}}),e,null,[[5,18,21,24]])})),function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){ln(o,r,a,i,c,"next",e)}function c(e){ln(o,r,a,i,c,"throw",e)}i(void 0)}))});return function(){return n.apply(this,arguments)}}();return r.createElement("div",{style:{padding:"16px 0"}},r.createElement(Ae.A,{direction:"vertical",style:{width:"100%"}},r.createElement(Ae.A,{wrap:!0,style:{width:"100%"}},r.createElement(Ee.A,{placeholder:t||"输入真实接口 URL",value:u,onChange:function(e){return s(e.target.value)},style:{width:"100%",minWidth:200},onPressEnter:w}),r.createElement(a.Ay,{type:"primary",icon:r.createElement(c.A,null),loading:p,onClick:w},"抓取真实响应")),h&&r.createElement(r.Fragment,null,r.createElement(Ae.A,null,r.createElement(xe.A,{color:h.status>=200&&h.status<300?"success":"error"},h.status," ",h.statusText),r.createElement(a.Ay,{size:"small",icon:r.createElement(Mt.A,null),onClick:function(){null!=h&&h.body&&(navigator.clipboard.writeText(h.body),U.Ay.success("已复制"))}},"复制原文"),r.createElement(a.Ay,{size:"small",icon:r.createElement(Ie.A,null),onClick:function(){if(null!=h&&h.body)try{var e=JSON.parse(h.body),t=fn(e),r=JSON.stringify(t,null,2);null==n||n(r),U.Ay.success("Mock 模板已生成")}catch(e){U.Ay.error("响应不是 JSON,无法生成模板: "+e.message)}},type:"primary"},"生成 Mock 模板")),r.createElement(It.A,{activeKey:g,onChange:b},r.createElement(It.A.TabPane,{tab:"响应预览",key:"preview"},r.createElement(pn,{value:h.body,readOnly:!0,rows:12,style:{fontFamily:"monospace",fontSize:12}})),r.createElement(It.A.TabPane,{tab:"生成的 Mock 模板",key:"mock"},r.createElement(pn,{value:function(){try{var e=JSON.parse(h.body),t=fn(e);return JSON.stringify(t,null,2)}catch(e){return"// 响应不是 JSON,无法生成模板\n"+h.body}}(),readOnly:!0,rows:12,style:{fontFamily:"monospace",fontSize:12}}))))))};var hn=[{value:"application/json; charset=utf-8",label:"JSON"},{value:"text/plain; charset=utf-8",label:"纯文本"},{value:"text/html; charset=utf-8",label:"HTML"},{value:"application/xml; charset=utf-8",label:"XML"},{value:"application/javascript; charset=utf-8",label:"JavaScript"}],yn=[{value:"response",label:"模拟响应"},{value:"redirect",label:"重定向"},{value:"url_redirect",label:"URL重定向"}],vn=[{value:"ALL",label:"所有方法"},{value:"GET",label:"GET"},{value:"POST",label:"POST"},{value:"PUT",label:"PUT"},{value:"DELETE",label:"DELETE"},{value:"PATCH",label:"PATCH"},{value:"HEAD",label:"HEAD"},{value:"OPTIONS",label:"OPTIONS"}];function gn(e){return gn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gn(e)}function bn(){bn=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==gn(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(gn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function wn(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function xn(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){wn(o,r,a,i,c,"next",e)}function c(e){wn(o,r,a,i,c,"throw",e)}i(void 0)}))}}var En=function(){var e=xn(bn().mark((function e(){var t;return bn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Te.A.get("/_flush_cache");case 3:return t=e.sent,e.abrupt("return",t.data);case 7:throw e.prev=7,e.t0=e.catch(0),console.error("刷新缓存失败:",e.t0),e.t0;case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}(),An=function(){var e=xn(bn().mark((function e(){return bn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,En();case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.error("刷新缓存失败,可能需要等待缓存自动过期:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})));return function(){return e.apply(this,arguments)}}(),kn=n(9916),Sn={};function On(){On=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Tn(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(Tn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function jn(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function Ln(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){jn(o,r,a,i,c,"next",e)}function c(e){jn(o,r,a,i,c,"throw",e)}i(void 0)}))}}function Nn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Cn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nn(Object(n),!0).forEach((function(t){In(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function In(e,t,n){return(t=function(e){var t=function(e){if("object"!=Tn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Tn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Tn(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Pn(e){return function(e){if(Array.isArray(e))return Mn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||zn(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tn(e){return Tn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tn(e)}function _n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||zn(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zn(e,t){if(e){if("string"==typeof e)return Mn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mn(e,t):void 0}}function Mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}Sn.styleTagTransform=C(),Sn.setAttributes=O(),Sn.insert=k().bind(null,"head"),Sn.domAPI=E(),Sn.insertStyleElement=L(),w()(kn.A,Sn),kn.A&&kn.A.locals&&kn.A.locals;var Dn=function(){try{var e=JSON.parse(localStorage.getItem("mm-panel-widths"));return{tree:Math.max(160,Math.min(300,(null==e?void 0:e.tree)||210)),list:Math.max(240,Math.min(520,(null==e?void 0:e.list)||320))}}catch(e){return{tree:210,list:320}}};function Rn(e){var t=e.value,n=void 0===t?{}:t,a=e.onChange,o=_n((0,r.useState)(JSON.stringify(n,null,2)),2),i=o[0],c=o[1],l=_n((0,r.useState)(""),2),u=l[0],s=l[1];return r.createElement(r.Fragment,null,r.createElement(Ee.A.TextArea,{"aria-label":"自定义 Headers JSON",className:"mm-code",value:i,autoSize:{minRows:3,maxRows:9},onChange:function(e){c(e.target.value);try{var t=JSON.parse(e.target.value||"{}");if(!t||Array.isArray(t)||"object"!==Tn(t)||Object.values(t).some((function(e){return"string"!=typeof e})))throw new Error("Headers 必须是字符串值的 JSON 对象");s(""),a(t,!1)}catch(e){s(e.message),a(n,!0)}}}),u&&r.createElement(v.A,{type:"error",message:u}))}function Fn(){var e=(0,f.g)().featureId,t=(0,f.W6)(),n=Q.A.useApp(),i=n.message,c=n.modal,l=_n((0,r.useState)([]),2),s=l[0],m=l[1],p=_n((0,r.useState)([]),2),d=p[0],h=p[1],g=_n((0,r.useState)(null),2),b=g[0],w=g[1],x=_n((0,r.useState)(!0),2),E=x[0],A=x[1],k=_n((0,r.useState)(!1),2),S=k[0],O=k[1],j=_n((0,r.useState)(""),2),L=j[0],N=j[1],C=_n((0,r.useState)(""),2),I=C[0],P=C[1],T=_n((0,r.useState)(null),2),_=T[0],z=T[1],M=_n((0,r.useState)([]),2),D=M[0],R=M[1],F=_n((0,r.useState)(null),2),G=F[0],U=F[1],q=_n((0,r.useState)(""),2),V=q[0],W=q[1],H=_n((0,r.useState)(!1),2),B=H[0],Y=H[1],K=_n((0,r.useState)(!1),2),$=K[0],X=K[1],Z=_n((0,r.useState)(!1),2),ee=Z[0],te=Z[1],ne=_n((0,r.useState)(0),2),re=ne[0],ae=ne[1],oe=_n((0,r.useState)("response"),2),ie=oe[0],ce=oe[1],le=_n((0,r.useState)(!1),2),ue=le[0],se=le[1],me=_n((0,r.useState)((function(){return"table"===localStorage.getItem("mm-interface-view")})),2),pe=me[0],fe=me[1],de=_n((0,r.useState)((function(){try{return JSON.parse(localStorage.getItem("mm-hidden-columns")||"[]")}catch(e){return[]}})),2),he=de[0],ve=de[1],ke=_n((0,r.useState)((function(){return"true"===localStorage.getItem("mm-tree-collapsed")})),2),Oe=ke[0],je=ke[1],Le=_n((0,r.useState)(Dn),2),Ne=Le[0],Ce=Le[1],Ie=_n((0,r.useState)((function(){return"compact"===localStorage.getItem("mm-list-density")})),2),_e=Ie[0],ze=Ie[1],Me=_n((0,r.useState)({interfaceParamMatcherEnabled:!0,responseParamMatcherEnabled:!0}),2),De=Me[0],Re=Me[1],Fe=(0,r.useRef)(null),Ge=(0,r.useRef)(0),Je=(0,r.useRef)(!1),Ue=(0,r.useRef)(null),qe=null!==G&&(JSON.stringify(G)!==V||ee),Ve=s.find((function(e){return e.id===b})),We=(0,r.useMemo)((function(){return(0,Yt.filterInterfaces)(d,I,_)}),[d,I,_]),He=Pn(new Set(d.map((function(e){return e.group})).filter(Boolean))).sort();(0,r.useEffect)((function(){e&&e!==b&&s.some((function(t){return t.id===e}))&&(w(e),U(null),z(null),P(""))}),[e]),(0,r.useEffect)((function(){var e=new URLSearchParams(t.location.search).get("interfaceId");e&&!G&&d.some((function(t){return t.id===e}))&&Ye(d.find((function(t){return t.id===e})))}),[d]);var Be=function(e){return U((function(t){return Cn(Cn({},t),e)}))},Ye=function(e){var t=(0,Yt.normalizeInterface)(e,b);U(t),W(JSON.stringify(t)),te(!1),ae((function(e){return e+1})),ce("response"===t.proxyType?"response":"rule"),se(!0)},Ke=function(e){B||$||(qe?Je.current||(Je.current=!0,c.confirm({title:"有未保存的修改",content:"离开将丢弃当前草稿。也可以取消并先保存。",okText:"丢弃修改",cancelText:"继续编辑",onOk:function(){Je.current=!1,G&&(U(JSON.parse(V)),te(!1),ae((function(e){return e+1}))),e()},onCancel:function(){Je.current=!1}})):e())},$e=(0,r.useCallback)(Ln(On().mark((function t(){var n,r,a,o,i,c;return On().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return A(!0),N(""),t.prev=2,t.next=5,Te.A.get("/cgi-bin/features");case 5:if(r=t.sent,0===(a=r.data).code){t.next=9;break}throw new Error(a.message);case 9:m(a.data||[]),o=a.data||[],i=e||localStorage.getItem("selectedFeatureId"),w(o.some((function(e){return e.id===i}))?i:(null===(n=o[0])||void 0===n?void 0:n.id)||null),t.next=18;break;case 15:t.prev=15,t.t0=t.catch(2),N((null===(c=t.t0.response)||void 0===c||null===(c=c.data)||void 0===c?void 0:c.message)||t.t0.message);case 18:return t.prev=18,A(!1),t.finish(18);case 21:case"end":return t.stop()}}),t,null,[[2,15,18,21]])}))),[]),Qe=(0,r.useCallback)(function(){var e=Ln(On().mark((function e(t){var n,r,a,o;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=3;break}return h([]),e.abrupt("return");case 3:return n=++Ge.current,O(!0),N(""),e.prev=6,e.next=9,Te.A.get("/cgi-bin/interfaces",{params:{featureId:t}});case 9:if(r=e.sent,0===(a=r.data).code){e.next=13;break}throw new Error(a.message);case 13:n===Ge.current&&(h(a.data||[]),m((function(e){return e.map((function(e){return e.id===t?Cn(Cn({},e),{},{interfaceCount:(a.data||[]).length}):e}))}))),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(6),n===Ge.current&&N((null===(o=e.t0.response)||void 0===o||null===(o=o.data)||void 0===o?void 0:o.message)||e.t0.message);case 19:return e.prev=19,n===Ge.current&&O(!1),e.finish(19);case 22:case"end":return e.stop()}}),e,null,[[6,16,19,22]])})));return function(t){return e.apply(this,arguments)}}(),[]);(0,r.useEffect)((function(){$e(),Te.A.get("/cgi-bin/settings").then((function(e){var t=e.data;return Re(t)})).catch((function(){}))}),[$e]),(0,r.useEffect)((function(){Qe(b)}),[b,Qe]),(0,r.useEffect)((function(){R((function(e){return(0,Yt.visibleSelection)(e,We)}))}),[We]),(0,r.useEffect)((function(){if(qe||B){var e=function(e){e.preventDefault(),e.returnValue=""};window.addEventListener("beforeunload",e);var n=t.block((function(e,r){return B||Je.current||(Je.current=!0,c.confirm({title:"有未保存的修改",content:"离开页面将丢弃草稿。",okText:"丢弃并离开",cancelText:"继续编辑",onOk:function(){Je.current=!1,n(),t["REPLACE"===r?"replace":"push"](e)},onCancel:function(){Je.current=!1}})),!1}));return function(){n(),window.removeEventListener("beforeunload",e)}}}),[qe,B,t,c]);var Ze=function(e){return Ke((function(){w(e),localStorage.setItem("selectedFeatureId",e),z(null),P(""),U(null),R([]),h([]),se(!1)}))},et=function(){return Ke((function(){b?Ye({}):i.warning("请先创建功能模块")}))},nt=function(){var e=Ln(On().mark((function e(){var t,n,r,a,o,c;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(G&&!B&&!$){e.next=2;break}return e.abrupt("return");case 2:if(!(t=(0,Yt.validateDraft)(G))&&!ee){e.next=6;break}return i.error(t||"请修正 Headers 格式"),e.abrupt("return");case 6:if(n=Cn(Cn({},G),{},{httpStatus:Number(G.httpStatus),responseDelay:Number(G.responseDelay)}),Y(!0),e.prev=8,!n.id){e.next=15;break}return e.next=12,Te.A.patch("/cgi-bin/interfaces/".concat(n.id),n);case 12:e.t0=e.sent,e.next=18;break;case 15:return e.next=17,Te.A.post("/cgi-bin/interfaces",n);case 17:e.t0=e.sent;case 18:if(r=e.t0,0===(a=r.data).code){e.next=22;break}throw new Error(a.message);case 22:return o=(0,Yt.normalizeInterface)(Cn(Cn({},n),a.data),b),U(o),W(JSON.stringify(o)),i.success("接口已保存"),e.next=28,Qe(b);case 28:return e.next=30,An();case 30:e.next=35;break;case 32:e.prev=32,e.t1=e.catch(8),i.error((null===(c=e.t1.response)||void 0===c||null===(c=c.data)||void 0===c?void 0:c.message)||e.t1.message||"保存失败,草稿已保留");case 35:return e.prev=35,Y(!1),e.finish(35);case 38:case"end":return e.stop()}}),e,null,[[8,32,35,38]])})));return function(){return e.apply(this,arguments)}}();Ue.current=nt,(0,r.useEffect)((function(){var e=function(){var e;return null===(e=Ue.current)||void 0===e?void 0:e.call(Ue)},t=function(){var e;return null===(e=Fe.current)||void 0===e?void 0:e.focus()},n=function(){return et()};return window.addEventListener("shortcut-save",e),window.addEventListener("shortcut-focus-search",t),window.addEventListener("shortcut-new-interface",n),function(){window.removeEventListener("shortcut-save",e),window.removeEventListener("shortcut-focus-search",t),window.removeEventListener("shortcut-new-interface",n)}}),[qe,B,b]);var rt=function(){var e=Ln(On().mark((function e(t,n){var r,a,o,c;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return X(!0),e.prev=1,e.next=4,Te.A.patch("/cgi-bin/interfaces/".concat(t.id),n);case 4:if(r=e.sent,0===(a=r.data).code){e.next=8;break}throw new Error(a.message);case 8:return h((function(e){return e.map((function(e){return e.id===t.id?Cn(Cn({},e),n):e}))})),(null==G?void 0:G.id)===t.id&&(o=(0,Yt.normalizeInterface)(Cn(Cn({},t),n),b),U(o),W(JSON.stringify(o)),ae((function(e){return e+1}))),e.next=12,An();case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),i.error((null===(c=e.t0.response)||void 0===c||null===(c=c.data)||void 0===c?void 0:c.message)||e.t0.message);case 17:return e.prev=17,X(!1),e.finish(17);case 20:case"end":return e.stop()}}),e,null,[[1,14,17,20]])})));return function(t,n){return e.apply(this,arguments)}}(),at=function(){var e=Ln(On().mark((function e(t){var n,r,a,o;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=(0,Yt.visibleSelection)(D,We)).length){e.next=3;break}return e.abrupt("return");case 3:return X(!0),e.next=6,Promise.allSettled(n.map((function(e){return Te.A.patch("/cgi-bin/interfaces/".concat(e),{active:t}).then((function(t){var n=t.data;if(0!==n.code)throw new Error(n.message);return e}))})));case 6:return r=e.sent,a=n.filter((function(e,t){return"rejected"===r[t].status})),e.next=10,Qe(b);case 10:return null!=G&&G.id&&n.includes(G.id)&&!a.includes(G.id)&&(o=(0,Yt.normalizeInterface)(Cn(Cn({},JSON.parse(V)),{},{active:t}),b),U(o),W(JSON.stringify(o))),R(a),X(!1),e.next=15,An();case 15:a.length?i.warning("".concat(n.length-a.length," 项成功,").concat(a.length," 项失败,请重试")):i.success("已".concat(t?"启用":"禁用"," ").concat(n.length," 个接口"));case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),ot=function(){var e=Ln(On().mark((function e(t){var n,r,a;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return X(!0),e.prev=1,e.next=4,Te.A.delete("/cgi-bin/interfaces",{params:{id:t.id}});case 4:if(n=e.sent,0===(r=n.data).code){e.next=8;break}throw new Error(r.message);case 8:return(null==G?void 0:G.id)===t.id&&U(null),e.next=11,Qe(b);case 11:return e.next=13,An();case 13:i.success("已删除接口"),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(1),i.error((null===(a=e.t0.response)||void 0===a||null===(a=a.data)||void 0===a?void 0:a.message)||e.t0.message);case 19:return e.prev=19,X(!1),e.finish(19);case 22:case"end":return e.stop()}}),e,null,[[1,16,19,22]])})));return function(t){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){localStorage.setItem("mm-panel-widths",JSON.stringify(Ne))}),[Ne]);var lt=function(e){return r.createElement("div",{className:"mm-separator",role:"separator","aria-label":"tree"===e?"调整模块栏宽度":"调整接口列表宽度","aria-orientation":"vertical","aria-valuenow":Ne[e],"aria-valuemin":"tree"===e?160:240,"aria-valuemax":"tree"===e?300:520,tabIndex:0,onPointerDown:function(t){return function(e,t){t.preventDefault();var n=t.clientX,r=Ne[e],a=function(t){return Ce((function(a){return Cn(Cn({},a),{},In({},e,Math.max("tree"===e?160:240,Math.min("tree"===e?300:520,r+t.clientX-n))))}))},o=function(){document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",o)};document.addEventListener("pointermove",a),document.addEventListener("pointerup",o)}(e,t)},onKeyDown:function(t){["ArrowLeft","ArrowRight"].includes(t.key)&&(t.preventDefault(),Ce((function(n){return Cn(Cn({},n),{},In({},e,Math.max("tree"===e?160:240,Math.min("tree"===e?300:520,n[e]+("ArrowRight"===t.key?16:-16)))))})))}})},ut=r.createElement("div",{className:"mm-rule-fields"},r.createElement(we.A,{layout:"vertical"},r.createElement(we.A.Item,{label:"接口名称",required:!0},r.createElement(Ee.A,{"aria-label":"接口名称",value:null==G?void 0:G.name,onChange:function(e){return Be({name:e.target.value})}})),r.createElement("div",{className:"mm-field-grid"},r.createElement(we.A.Item,{label:"HTTP 方法"},r.createElement(tt.A,{"aria-label":"HTTP 方法",value:null==G?void 0:G.httpMethod,options:vn,onChange:function(e){return Be({httpMethod:e})}})),r.createElement(we.A.Item,{label:"处理方式"},r.createElement(tt.A,{"aria-label":"处理方式",value:null==G?void 0:G.proxyType,options:[].concat(Pn(yn),[{value:"file",label:"本地文件"}]),onChange:function(e){return Be({proxyType:e})}}))),r.createElement(we.A.Item,{label:"URL 匹配规则",required:!0},r.createElement(Ee.A,{className:"mm-code","aria-label":"URL 匹配规则",value:null==G?void 0:G.urlPattern,onChange:function(e){return Be({urlPattern:e.target.value})},placeholder:"/api/users 或 /api/*"})),r.createElement(we.A.Item,{label:"分组"},r.createElement(tt.A,{mode:"tags","aria-label":"接口分组",value:null!=G&&G.group?[G.group]:[],options:He.map((function(e){return{value:e,label:e}})),onChange:function(e){return Be({group:e[e.length-1]||""})}})),["redirect","url_redirect"].includes(null==G?void 0:G.proxyType)&&r.createElement(r.Fragment,null,r.createElement(we.A.Item,{label:"目标 URL",required:!0},r.createElement(Ee.A,{"aria-label":"目标 URL",value:G.targetUrl,onChange:function(e){return Be({targetUrl:e.target.value})},placeholder:"https://example.com"})),r.createElement(we.A.Item,{label:"自定义请求头(JSON)"},r.createElement(Rn,{key:"req-".concat(re),value:G.customHeaders,onChange:function(e,t){Be({customHeaders:e}),te(t)}}))),"file"===(null==G?void 0:G.proxyType)&&r.createElement(we.A.Item,{label:"本地文件路径",required:!0},r.createElement(Ee.A,{"aria-label":"本地文件路径",value:G.filePath,onChange:function(e){return Be({filePath:e.target.value})}})),r.createElement("div",{className:"mm-field-grid"},r.createElement(we.A.Item,{label:"HTTP 状态码"},r.createElement(Nt.A,{min:100,max:599,precision:0,"aria-label":"HTTP 状态码",value:null==G?void 0:G.httpStatus,onChange:function(e){return Be({httpStatus:e})}})),r.createElement(we.A.Item,{label:"延迟(毫秒)"},r.createElement(Nt.A,{min:0,"aria-label":"响应延迟",value:null==G?void 0:G.responseDelay,onChange:function(e){return Be({responseDelay:e})}}))),r.createElement(we.A.Item,{label:"Content-Type"},r.createElement(tt.A,{showSearch:!0,"aria-label":"Content-Type",value:null==G?void 0:G.contentType,options:hn,onChange:function(e){return Be({contentType:e})}})),r.createElement(we.A.Item,{label:"接口启用状态"},r.createElement(Xe.A,{"aria-label":"接口启用状态",checked:null==G?void 0:G.active,onChange:function(e){return Be({active:e})}})),G&&!["redirect","url_redirect"].includes(G.proxyType)&&r.createElement(we.A.Item,{label:"自定义响应头(JSON)"},r.createElement(Rn,{key:"res-".concat(re),value:G.headers,onChange:function(e,t){Be({headers:e}),te(t)}})),G&&!1!==De.interfaceParamMatcherEnabled&&r.createElement(we.A.Item,{label:"接口入参匹配"},r.createElement(Bt,{value:G.paramMatchers,responses:G.responses,onChange:function(e){return Be({paramMatchers:e})}}))));return E?r.createElement("div",{className:"mm-workbench-loading"},r.createElement(y.A,{tip:"加载工作空间…"},r.createElement("div",null))):r.createElement("div",{className:"mm-workbench ".concat(Oe?"is-tree-collapsed":""," ").concat(ue?"is-mobile-detail":""," ").concat(_e?"is-compact":""),style:{"--tree-width":"".concat(Ne.tree,"px"),"--list-width":"".concat(Ne.list,"px")}},r.createElement("div",{className:"mm-workbench-heading"},r.createElement(pt,{kicker:"API WORKSPACE",title:(null==Ve?void 0:Ve.name)||"接口工作台",description:"配置规则、管理响应,让调试保持连贯。",actions:r.createElement(r.Fragment,null,r.createElement(a.Ay,{"aria-label":"切换模块树",icon:Oe?r.createElement(Pt.A,null):r.createElement(Tt.A,null),onClick:function(){je((function(e){return localStorage.setItem("mm-tree-collapsed",String(!e)),!e}))}}),r.createElement(a.Ay,{icon:pe?r.createElement(o.A,null):r.createElement(_t.A,null),onClick:function(){Ke((function(){fe((function(e){return localStorage.setItem("mm-interface-view",e?"list":"table"),!e}))}))}},pe?"工作台":"批量表格"),pe&&r.createElement(Ct.A,{title:"显示列",trigger:"click",content:r.createElement(ge.A.Group,{value:["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"].filter((function(e){return!he.includes(e)})),options:["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"],onChange:function(e){var t=["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"].filter((function(t){return!e.includes(t)}));ve(t),localStorage.setItem("mm-hidden-columns",JSON.stringify(t))}})},r.createElement(a.Ay,{icon:r.createElement(u.A,null)},"显示列")),r.createElement(a.Ay,{"aria-label":"刷新接口",icon:r.createElement(Pe.A,null),disabled:B||$,onClick:function(){return Ke((function(){return Qe(b)}))}}),r.createElement(a.Ay,{type:"primary",icon:r.createElement(ct.A,null),disabled:!b||B,onClick:et},"新建接口"))})),L&&r.createElement(v.A,{className:"mm-workbench-alert",type:"error",showIcon:!0,message:"加载失败",description:L,action:r.createElement(a.Ay,{onClick:function(){return b?Qe(b):$e()}},"重试")}),!1===(null==Ve?void 0:Ve.active)&&r.createElement(v.A,{className:"mm-workbench-alert",type:"warning",showIcon:!0,message:"模块已禁用:关联接口不会生效,仍可编辑配置。"}),r.createElement("div",{className:"mm-workbench-grid"},r.createElement("aside",{className:"mm-module-tree"},r.createElement("div",{className:"mm-panel-label"},"功能模块 ",r.createElement(a.Ay,{type:"text",size:"small","aria-label":"管理模块",icon:r.createElement(u.A,null),onClick:function(){return t.push("/")}})),s.map((function(e){return r.createElement("div",{className:"mm-module-row",key:e.id},r.createElement("button",{className:"mm-module-button ".concat(e.id===b?"is-active":""),onClick:function(){return Ze(e.id)}},r.createElement("span",null,e.name,r.createElement("small",null,!1===e.active?"已禁用":"已启用")),r.createElement("span",{className:"mm-count"},e.interfaceCount||0)),r.createElement(Xe.A,{"aria-label":"启用模块 ".concat(e.name),size:"small",disabled:$||B,checked:!1!==e.active,onChange:function(){return t=e,Ke(Ln(On().mark((function e(){var n,r,a;return On().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return X(!0),e.prev=1,e.next=4,Te.A.patch("/cgi-bin/features",{active:!1===t.active},{params:{id:t.id}});case 4:if(n=e.sent,0===(r=n.data).code){e.next=8;break}throw new Error(r.message);case 8:return m((function(e){return e.map((function(e){return e.id===t.id?Cn(Cn({},e),{},{active:!1===t.active}):e}))})),e.next=11,An();case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),i.error((null===(a=e.t0.response)||void 0===a||null===(a=a.data)||void 0===a?void 0:a.message)||e.t0.message);case 16:return e.prev=16,X(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])}))));var t}}))})),r.createElement("div",{className:"mm-panel-label mm-group-label"},"接口分组"),r.createElement("button",{className:"mm-group-button ".concat(_?"":"is-active"),onClick:function(){return z(null)}},"全部接口 ",r.createElement("span",null,d.length)),He.map((function(e){return r.createElement("button",{key:e,className:"mm-group-button ".concat(_===e?"is-active":""),onClick:function(){return z(e)}},e,r.createElement("span",null,d.filter((function(t){return t.group===e})).length))})),r.createElement(a.Ay,{type:"text",size:"small",title:"恢复面板宽度、展开模块树、舒适密度和全部表格列",onClick:function(){var e=210===Ne.tree&&320===Ne.list&&!Oe&&!_e&&0===he.length;Ce({tree:210,list:320}),je(!1),ze(!1),ve([]),localStorage.setItem("mm-tree-collapsed","false"),localStorage.setItem("mm-list-density","comfortable"),localStorage.removeItem("mm-hidden-columns"),e?i.info("当前已是默认布局,无需恢复"):i.success("已恢复默认布局:面板宽度、模块树、列表密度和显示列")}},"恢复默认布局")),lt("tree"),r.createElement("section",{className:"mm-interface-panel ".concat(pe?"mm-table-panel":""),"aria-label":"接口列表"},r.createElement("div",{className:"mm-list-toolbar"},r.createElement(tt.A,{className:"mm-mobile-module","aria-label":"功能模块",value:b,options:s.map((function(e){return{value:e.id,label:e.name}})),onChange:Ze}),r.createElement(Ee.A.Search,{ref:Fe,placeholder:"搜索接口名称或 URL","aria-label":"搜索接口",allowClear:!0,value:I,onChange:function(e){return P(e.target.value)}}),r.createElement("div",{className:"mm-list-meta"},r.createElement("span",null,We.length," 个接口",_?" · ".concat(_):""),r.createElement(a.Ay,{size:"small",type:"text",onClick:function(){return ze((function(e){return localStorage.setItem("mm-list-density",e?"comfortable":"compact"),!e}))}},_e?"舒适":"紧凑")),r.createElement(tt.A,{className:"mm-mobile-module","aria-label":"接口分组",allowClear:!0,placeholder:"全部分组",value:_||void 0,onChange:function(e){return z(e||null)},options:He.map((function(e){return{value:e,label:e}}))}),r.createElement("div",{className:"mm-selection"},r.createElement(ge.A,{checked:We.length>0&&D.length===We.length,indeterminate:D.length>0&&D.length<We.length,onChange:function(e){return R(e.target.checked?We.map((function(e){return e.id})):[])}},"全选"),D.length>0&&r.createElement(Ae.A,{wrap:!0},r.createElement("span",null,D.length," 项"),r.createElement(a.Ay,{size:"small",disabled:$||B,onClick:function(){return Ke((function(){return at(!0)}))}},"启用"),r.createElement(a.Ay,{size:"small",disabled:$||B,onClick:function(){return Ke((function(){return at(!1)}))}},"禁用")))),S?r.createElement("div",{className:"mm-panel-empty"},r.createElement(y.A,null)):0===We.length?r.createElement("div",{className:"mm-panel-empty"},r.createElement(be.A,{description:s.length?"暂无接口或没有匹配结果":"请先创建功能模块"}),r.createElement(a.Ay,{onClick:function(){return s.length?et():t.push("/")}},s.length?"新建接口":"创建模块")):pe?r.createElement(J.A,{rowKey:"id",size:"small",scroll:{x:900},pagination:{pageSize:20,showSizeChanger:!0},rowSelection:{selectedRowKeys:D,onChange:R},dataSource:We,columns:[{title:"状态",dataIndex:"active",render:function(e,t){return r.createElement(Xe.A,{size:"small",checked:!1!==e,disabled:$||B,onChange:function(e){return Ke((function(){return rt(t,{active:e})}))}})}},{title:"名称",dataIndex:"name",render:function(e,t){return r.createElement(a.Ay,{type:"link",onClick:function(){return Ke((function(){fe(!1),Ye(t)}))}},e)}},{title:"方法",dataIndex:"httpMethod"},{title:"路径",dataIndex:"urlPattern",ellipsis:!0},{title:"分组",dataIndex:"group"},{title:"处理方式",dataIndex:"proxyType"},{title:"状态码",dataIndex:"httpStatus"},{title:"延迟",dataIndex:"responseDelay"},{title:"当前默认响应",render:function(e,t){return r.createElement(tt.A,{value:t.activeResponseId,disabled:$||B||"response"!==t.proxyType,options:(t.responses||[]).map((function(e){return{value:e.id,label:e.name}})),onChange:function(e){return Ke((function(){return rt(t,{activeResponseId:e})}))}})}},{title:"操作",render:function(e,t){return r.createElement(Ae.A,null,r.createElement(a.Ay,{onClick:function(){return Ke((function(){fe(!1),Ye((0,Yt.duplicateInterface)(t,b))}))}},"复制"),r.createElement(Se.A,{title:"删除此接口?",onConfirm:function(){return Ke((function(){return ot(t)}))}},r.createElement(a.Ay,{danger:!0},"删除")))}}].filter((function(e){return!he.includes(e.title)}))}):r.createElement("div",{className:"mm-request-list"},We.map((function(e){var t;return r.createElement("div",{key:e.id,className:"mm-request-row ".concat((null==G?void 0:G.id)===e.id?"is-active":"")},r.createElement(ge.A,{"aria-label":"选择 ".concat(e.name),checked:D.includes(e.id),onChange:function(t){return R((function(n){return t.target.checked?[].concat(Pn(n),[e.id]):n.filter((function(t){return t!==e.id}))}))}}),r.createElement("button",{className:"mm-request-button",onClick:function(){return Ke((function(){return Ye(e)}))}},r.createElement("div",null,r.createElement("span",{className:"mm-method mm-method-".concat(e.httpMethod)},e.httpMethod||"ALL"),r.createElement("strong",null,e.name)),r.createElement("code",{title:e.urlPattern},e.urlPattern),r.createElement("small",null,"response"===e.proxyType?(null===(t=(e.responses||[]).find((function(t){return t.id===e.activeResponseId})))||void 0===t?void 0:t.name)||"默认响应":e.proxyType)),r.createElement(Xe.A,{"aria-label":"启用 ".concat(e.name),size:"small",checked:!1!==e.active,disabled:$||B,onChange:function(t){return Ke((function(){return rt(e,{active:t})}))}}))})))),!pe&&lt("list"),!pe&&r.createElement("section",{className:"mm-detail-panel","aria-label":"接口编辑"},G?r.createElement(r.Fragment,null,r.createElement("div",{className:"mm-detail-heading"},r.createElement(a.Ay,{className:"mm-back-list",icon:r.createElement(zt.A,null),onClick:function(){return Ke((function(){return se(!1)}))}},"返回列表"),r.createElement("div",null,r.createElement(xe.A,null,G.httpMethod),r.createElement("h2",null,G.id?G.name||"未命名接口":"新建接口"),r.createElement(ye.A.Text,{type:"secondary"},G.urlPattern||"先设置接口名称和匹配规则")),r.createElement(Ae.A,null,r.createElement(a.Ay,{"aria-label":"复制当前接口",icon:r.createElement(Mt.A,null),disabled:B,onClick:function(){return Ke((function(){return Ye((0,Yt.duplicateInterface)(G,b))}))}}),G.id&&r.createElement(Se.A,{title:"删除此接口?",onConfirm:function(){return Ke((function(){return ot(G)}))}},r.createElement(a.Ay,{danger:!0,"aria-label":"删除当前接口",icon:r.createElement(it.A,null),disabled:B||$})))),r.createElement("div",{className:"mm-detail-body",inert:B||$?"":void 0},r.createElement(It.A,{activeKey:ie,onChange:ce,items:[{key:"response",label:"响应",children:"response"===G.proxyType?r.createElement(on,{key:G.id||re,responses:G.responses,activeResponseId:G.activeResponseId,contentType:G.contentType,matchersEnabled:!1!==De.responseParamMatcherEnabled,onChange:function(e){return Be({responses:e})},onDefaultChange:function(e){return Be({activeResponseId:e})}}):r.createElement(v.A,{type:"info",message:"此接口使用转发或文件模式,请在匹配规则中配置目标。"})},{key:"rule",label:"匹配规则",children:ut},{key:"debug",label:"真实响应录制",children:r.createElement(r.Fragment,null,r.createElement(v.A,{type:"info",showIcon:!0,message:"录制直接请求真实接口,不代表 Whistle 匹配结果。支持完整请求参数的调试请使用接口嗅探。"}),r.createElement(dn,{urlPattern:G.urlPattern,method:"ALL"===G.httpMethod?"GET":G.httpMethod,onApply:function(e){var t=(0,Yt.createId)();Be({responses:[].concat(Pn(G.responses),[{id:t,name:"真实响应录制",content:e,paramMatchers:[]}])}),ce("response")}}))}]})),r.createElement("footer",{className:"mm-save-bar"},r.createElement("span",{"aria-live":"polite"},B?"保存中…":qe?"● 有未保存修改":"修改后保存生效"),r.createElement(Ae.A,null,r.createElement(a.Ay,{disabled:!qe||B||$,onClick:function(){return Ke((function(){return Ye(JSON.parse(V))}))}},"还原"),r.createElement(a.Ay,{type:"primary",loading:B,disabled:$,onClick:nt},"保存接口")))):r.createElement("div",{className:"mm-panel-empty"},r.createElement(be.A,{description:"选择接口,开始编辑规则和响应"}),r.createElement(a.Ay,{type:"primary",disabled:!b,onClick:et},"新建接口")))))}var Gn=n(770),Jn=n(1019);function Un(e){return Un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Un(e)}function qn(){qn=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Un(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(Un(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function Vn(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function Wn(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Vn(o,r,a,i,c,"next",e)}function c(e){Vn(o,r,a,i,c,"throw",e)}i(void 0)}))}}function Hn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Bn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bn(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Yn(){var e=ae(),t=e.currentTheme,n=e.setTheme,o=Q.A.useApp().message,i=Hn((0,r.useState)({interfaceParamMatcherEnabled:!0,responseParamMatcherEnabled:!0,webDavSyncEnabled:!1}),2),c=i[0],l=i[1],u=Hn((0,r.useState)(!0),2),s=u[0],m=u[1],p=Hn((0,r.useState)(""),2),f=p[0],d=p[1],h=Hn((0,r.useState)(""),2),g=h[0],b=h[1],w=function(){var e=Wn(qn().mark((function e(){var t,n;return qn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return m(!0),b(""),e.prev=2,e.next=5,Te.A.get("/cgi-bin/settings");case 5:t=e.sent,n=t.data,l(n),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(2),b("读取设置失败,请重试。");case 13:return e.prev=13,m(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[2,10,13,16]])})));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){w()}),[]);var x=function(){var e=Wn(qn().mark((function e(t,n){var r,a;return qn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d(t),e.prev=1,e.next=4,Te.A.put("/cgi-bin/settings",(i={},u=n,(c=function(e){var t=function(e){if("object"!=Un(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Un(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Un(t)?t:t+""}(c=t))in i?Object.defineProperty(i,c,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[c]=u,i));case 4:r=e.sent,a=r.data,l(a),localStorage.setItem(t,String(n)),window.dispatchEvent(new Event("storage")),o.success("设置已保存并生效"),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),o.error("保存失败,设置未改变");case 15:return e.prev=15,d(""),e.finish(15);case 18:case"end":return e.stop()}var i,c,u}),e,null,[[1,12,15,18]])})));return function(t,n){return e.apply(this,arguments)}}(),E=function(e,t,n){return r.createElement("div",{className:"mm-setting-row"},r.createElement("div",null,r.createElement("h3",null,t),r.createElement("p",null,n)),r.createElement(Ae.A,null,r.createElement(ye.A.Text,{type:"secondary"},c[e]?"已开启":"已关闭"),r.createElement(Xe.A,{"aria-label":t,checked:!0===c[e],disabled:!!f||!!g,loading:f===e,onChange:function(t){return x(e,t)}})))};return r.createElement("div",{className:"page-container"},r.createElement(pt,{kicker:"PREFERENCES",title:"系统设置",description:"外观偏好保存在当前浏览器,匹配和同步设置保存到插件。"}),g&&r.createElement(v.A,{type:"error",message:g,action:r.createElement(a.Ay,{onClick:w},"重试")}),r.createElement(y.A,{spinning:s},r.createElement("div",{className:"mm-settings-layout"},r.createElement("nav",{"aria-label":"设置分类",className:"mm-settings-nav"},r.createElement("a",{href:"#appearance",onClick:function(e){var t;e.preventDefault(),null===(t=document.getElementById("appearance"))||void 0===t||t.scrollIntoView({behavior:"smooth"})}},"外观"),r.createElement("a",{href:"#matching",onClick:function(e){var t;e.preventDefault(),null===(t=document.getElementById("matching"))||void 0===t||t.scrollIntoView({behavior:"smooth"})}},"匹配规则"),r.createElement("a",{href:"#sync",onClick:function(e){var t;e.preventDefault(),null===(t=document.getElementById("sync"))||void 0===t||t.scrollIntoView({behavior:"smooth"})}},"数据同步"),r.createElement("a",{href:"#editing",onClick:function(e){var t;e.preventDefault(),null===(t=document.getElementById("editing"))||void 0===t||t.scrollIntoView({behavior:"smooth"})}},"编辑与布局")),r.createElement("div",null,r.createElement(ve.A,{id:"appearance",title:"外观",className:"mm-settings-section"},r.createElement(Jn.A,null),r.createElement("p",{className:"mm-settings-description"},"选择主题后立即生效。赛博朋克和大地色系沿用统一工作台布局。"),r.createElement(Gn.Ay.Group,{value:t,onChange:function(e){return n(e.target.value)},className:"mm-theme-options"},[["light","经典浅色","清爽背景,适合日间工作"],["dark","深色工作台","低亮度背景,代码更聚焦"],["cyber","赛博朋克","深色底与青色强调"],["earth","大地色系","温暖底色与铜色强调"]].map((function(e){var t=Hn(e,3),n=t[0],a=t[1],o=t[2];return r.createElement(Gn.Ay,{key:n,value:n},r.createElement("span",null,r.createElement("strong",null,a),r.createElement("small",null,o)))})))),r.createElement(ve.A,{id:"matching",title:"匹配规则",className:"mm-settings-section"},E("interfaceParamMatcherEnabled","接口入参匹配","按请求参数选择接口,同时显示接口匹配条件;关闭后跳过接口级参数检查。"),E("responseParamMatcherEnabled","响应入参匹配","按请求参数选择同一接口的响应;关闭后使用默认响应(接口级目标响应仍优先)。"),r.createElement(v.A,{type:"info",showIcon:!0,message:"支持精确、包含、正则匹配和嵌套参数路径。响应条件按顺序检查;没有命中时使用默认响应。"})),r.createElement(ve.A,{id:"sync",title:"数据同步",className:"mm-settings-section"},E("webDavSyncEnabled","WebDAV 同步入口","开启后可从功能模块页面连接 WebDAV、推送和拉取配置。关闭入口不会清除连接配置。"),r.createElement(ye.A.Text,{type:"secondary"},"连接状态与覆盖冲突会在同步窗口中单独显示。")),r.createElement(ve.A,{id:"editing",title:"编辑与布局",className:"mm-settings-section"},r.createElement("div",{className:"mm-setting-row"},r.createElement("div",null,r.createElement("h3",null,"接口工作台"),r.createElement("p",null,"接口规则和响应使用统一编辑区;浏览器保存面板宽度、模块选择及列表密度。")),r.createElement(a.Ay,{onClick:function(){["mm-panel-widths","mm-tree-collapsed","mm-list-density","mm-interface-view","mm-hidden-columns"].forEach((function(e){return localStorage.removeItem(e)})),o.success("布局偏好已重置,下次进入工作台生效")}},"恢复默认布局")),r.createElement(ye.A.Text,{type:"secondary"},"修改草稿需保存后生效;离开前提示未保存内容。旧版弹窗/抽屉偏好不再影响工作台。"))))))}var Kn=n(6601),$n=n(6544),Qn=n(7983);function Xn(e){return Xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xn(e)}function Zn(){Zn=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Xn(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(Xn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function er(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?er(Object(n),!0).forEach((function(t){nr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):er(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function nr(e,t,n){return(t=function(e){var t=function(e){if("object"!=Xn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Xn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Xn(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rr(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function ar(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||or(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function or(e,t){if(e){if("string"==typeof e)return ir(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ir(e,t):void 0}}function ir(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function cr(){var e=(0,f.W6)(),t=(0,r.useRef)(0),n=ar((0,r.useState)(null),2),o=n[0],i=n[1],c=ar((0,r.useState)(""),2),l=c[0],u=c[1],s=ar((0,r.useState)(null),2),m=s[0],p=s[1],d=ar((0,r.useState)(!0),2),h=d[0],g=d[1],b=ar((0,r.useState)(""),2),w=b[0],x=b[1],E=function(){var e,n=(e=Zn().mark((function e(){var n,r,a;return Zn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=++t.current,g(!0),x(""),e.prev=3,r={},o&&(r.startDate=o[0].format("YYYY-MM-DD"),r.endDate=o[1].format("YYYY-MM-DD")),l&&(r.url=l),e.next=9,Promise.all(["overview","top","timeline","recent"].map((function(e){return Te.A.get("/cgi-bin/stats",{params:tr(tr({},r),{},{type:e})}).then((function(e){var t=e.data;if(0!==t.code)throw new Error(t.message);return t.data}))})));case 9:a=e.sent,n===t.current&&p({overview:a[0],top:a[1],timeline:a[2].timeline||{},logs:a[3].logs||[]}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(3),n===t.current&&x(e.t0.message);case 16:return e.prev=16,n===t.current&&g(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[3,13,16,19]])})),function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){rr(o,r,a,i,c,"next",e)}function c(e){rr(o,r,a,i,c,"throw",e)}i(void 0)}))});return function(){return n.apply(this,arguments)}}();(0,r.useEffect)((function(){var e=setTimeout(E,250);return function(){clearTimeout(e),t.current++}}),[o,l]);var A,k=(null==m?void 0:m.overview)||{},S=(null==m?void 0:m.top)||{},O=Object.entries((null==m?void 0:m.timeline)||{}),j=Math.max.apply(Math,[1].concat(function(e){if(Array.isArray(e))return ir(e)}(A=O.map((function(e){return ar(e,2)[1]})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(A)||or(A)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())),L=function(t){return e.push("/interface/".concat(t.featureId||"").concat(t.id?"?interfaceId=".concat(encodeURIComponent(t.id)):""))};return r.createElement("div",{className:"page-container"},r.createElement(pt,{kicker:"OBSERVABILITY",title:"请求统计",description:"查看已记录请求的命中情况。默认最近 7 天;过滤条件同时作用于全部统计。",actions:r.createElement(a.Ay,{icon:r.createElement(Pe.A,null),onClick:E,loading:h},"刷新")}),r.createElement("div",{className:"mm-stats-filters"},r.createElement(Kn.A.RangePicker,{value:o,onChange:i,allowClear:!0}),r.createElement(Ee.A.Search,{allowClear:!0,placeholder:"筛选请求 URL",value:l,onChange:function(e){return u(e.target.value)},style:{maxWidth:320}})),w&&r.createElement(v.A,{type:"error",showIcon:!0,message:"统计加载失败",description:w,action:r.createElement(a.Ay,{onClick:E},"重试")}),r.createElement(y.A,{spinning:h},r.createElement("div",{className:"mm-metrics"},r.createElement(ve.A,null,r.createElement($n.A,{title:"已记录请求",value:k.totalRequests||0})),r.createElement(ve.A,null,r.createElement($n.A,{title:"Mock 命中",value:k.totalHits||0})),r.createElement(ve.A,null,r.createElement($n.A,{title:"透传 / 未命中",value:k.totalMisses||0})),r.createElement(ve.A,null,r.createElement($n.A,{title:"命中率",value:k.hitRate||0,suffix:"%"}))),r.createElement(ve.A,{title:"命中趋势",className:"mm-stats-section"},O.length?r.createElement("div",{className:"mm-timeline",role:"img","aria-label":O.map((function(e){var t=ar(e,2),n=t[0],r=t[1];return"".concat(n,": ").concat(r," 次")})).join(";")},O.map((function(e){var t=ar(e,2),n=t[0],a=t[1];return r.createElement("div",{key:n,className:"mm-timeline-day"},r.createElement("span",null,a),r.createElement("div",{className:"mm-timeline-track"},r.createElement("div",{style:{height:"".concat(a/j*100,"%")}})),r.createElement("small",null,n.slice(5)))}))):r.createElement(be.A,{description:"此时间范围暂无记录"})),r.createElement("div",{className:"mm-stats-columns"},r.createElement(ve.A,{title:"热点接口"},r.createElement(J.A,{size:"small",pagination:!1,rowKey:"id",dataSource:S.topInterfaces||[],columns:[{title:"接口",dataIndex:"name",render:function(e,t){return r.createElement(a.Ay,{type:"link",onClick:function(){return L(t)}},e)}},{title:"命中",dataIndex:"count"},{title:"占比",render:function(e,t){return r.createElement(Qn.A,{size:"small",percent:Number((t.count/Math.max(1,k.totalHits)*100).toFixed(1))})}}]})),r.createElement(ve.A,{title:"热点模块"},r.createElement(J.A,{size:"small",pagination:!1,rowKey:"id",dataSource:S.topFeatures||[],columns:[{title:"模块",dataIndex:"name",render:function(e,t){return r.createElement(a.Ay,{type:"link",onClick:function(){return L({featureId:t.id})}},e)}},{title:"命中",dataIndex:"count"}]}))),r.createElement(ve.A,{title:"最近命中记录 · 最多 20 条",className:"mm-stats-section"},r.createElement(J.A,{size:"small",rowKey:"id",pagination:!1,scroll:{x:760},dataSource:(null==m?void 0:m.logs)||[],columns:[{title:"时间",dataIndex:"timestamp",render:function(e){return new Date(e).toLocaleString()}},{title:"方法",dataIndex:"method"},{title:"URL",dataIndex:"url",ellipsis:!0},{title:"状态",dataIndex:"status",render:function(e){return r.createElement(xe.A,{color:e>=400?"error":"success"},e)}},{title:"接口",dataIndex:"interfaceName",render:function(e,t){return r.createElement(a.Ay,{type:"link",onClick:function(){return L({featureId:t.featureId,id:t.interfaceId})}},e||"未分类")}}]}))))}var lr=n(6143),ur=n(6325),sr=n(5850);function mr(e){return mr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mr(e)}function pr(){pr=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof v?t:v,i=Object.create(o.prototype),c=new C(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(I([])));E&&E!==n&&r.call(E,i)&&(w=E);var A=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==mr(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=j(c,r);if(l){if(l===y)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=m(t,n,r);if("normal"===u.type){if(a=r.done?h:f,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(mr(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new S(s(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),u(A,l,"Generator"),u(A,i,(function(){return this})),u(A,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function fr(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function dr(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){fr(o,r,a,i,c,"next",e)}function c(e){fr(o,r,a,i,c,"throw",e)}i(void 0)}))}}function hr(e){return function(e){if(Array.isArray(e))return xr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||wr(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yr(Object(n),!0).forEach((function(t){gr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gr(e,t,n){return(t=function(e){var t=function(e){if("object"!=mr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=mr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==mr(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function br(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||wr(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wr(e,t){if(e){if("string"==typeof e)return xr(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xr(e,t):void 0}}function xr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Er=function(e){return Object.entries(e||{}).map((function(e){var t=br(e,2),n=t[0],r=t[1];return{id:(0,Yt.createId)(),key:n,value:r}}))},Ar=function(e){return Object.fromEntries(e.filter((function(e){return e.key})).map((function(e){return[e.key,e.value]})))},kr=function(){try{var e=JSON.parse(localStorage.getItem("sniffer-history"));return Array.isArray(e)?e:[]}catch(e){return[]}};function Sr(e){var t=e.value,n=e.onChange,o=e.label;return r.createElement("div",null,t.map((function(e,i){return r.createElement("div",{className:"mm-pair",key:e.id},r.createElement(Ee.A,{"aria-label":"".concat(o," ").concat(i+1," 名称"),placeholder:"名称",value:e.key,onChange:function(e){return n(t.map((function(t,n){return i===n?vr(vr({},t),{},{key:e.target.value}):t})))}}),r.createElement(Ee.A,{"aria-label":"".concat(o," ").concat(i+1," 值"),placeholder:"值",value:e.value,onChange:function(e){return n(t.map((function(t,n){return i===n?vr(vr({},t),{},{value:e.target.value}):t})))}}),r.createElement(a.Ay,{type:"text",danger:!0,icon:r.createElement(it.A,null),"aria-label":"删除 ".concat(o," ").concat(i+1),onClick:function(){return n(t.filter((function(e,t){return i!==t})))}}))})),r.createElement(a.Ay,{type:"dashed",icon:r.createElement(ct.A,null),onClick:function(){return n([].concat(hr(t),[{id:(0,Yt.createId)(),key:"",value:""}]))}},"添加",o))}function Or(){var e=Q.A.useApp().message,t=br((0,r.useState)(""),2),n=t[0],o=t[1],i=br((0,r.useState)("GET"),2),c=i[0],l=i[1],u=br((0,r.useState)([]),2),s=u[0],m=u[1],p=br((0,r.useState)([]),2),f=p[0],d=p[1],h=br((0,r.useState)("none"),2),y=h[0],g=h[1],b=br((0,r.useState)(""),2),w=b[0],x=b[1],E=br((0,r.useState)(null),2),A=E[0],k=E[1],S=br((0,r.useState)(!1),2),O=S[0],j=S[1],L=br((0,r.useState)(""),2),N=L[0],C=L[1],I=br((0,r.useState)(kr),2),P=I[0],T=I[1],_=br((0,r.useState)(!1),2),z=_[0],M=_[1],D=br((0,r.useState)(""),2),R=D[0],F=D[1],G=br((0,r.useState)(!1),2),U=G[0],q=G[1],V=br((0,r.useState)(!1),2),W=V[0],H=V[1],B=br((0,r.useState)([]),2),Y=B[0],K=B[1],$=br((0,r.useState)([]),2),X=$[0],Z=$[1],ee=br((0,r.useState)("new"),2),te=ee[0],ne=ee[1],re=br(we.A.useForm(),1)[0],ae=we.A.useWatch("featureId",re);(0,r.useEffect)((function(){Te.A.get("/cgi-bin/features").then((function(e){var t=e.data;return K(t.data||[])})).catch((function(){return C("获取模块失败,请刷新后重试")}))}),[]),(0,r.useEffect)((function(){if(ae){var t=!0;return re.setFieldValue("interfaceId",void 0),Te.A.get("/cgi-bin/interfaces",{params:{featureId:ae}}).then((function(e){var n=e.data;t&&Z((n.data||[]).filter((function(e){return"response"===e.proxyType})))})).catch((function(){t&&e.error("获取接口列表失败")})),function(){t=!1}}Z([])}),[ae]);var oe=function(e){var t=e.slice(0,100);try{for(;t.length>1&&new Blob([JSON.stringify(t)]).size>2097152;)t.pop();localStorage.setItem("sniffer-history",JSON.stringify(t)),T(t),F("")}catch(e){T(t),F("当前响应较大或浏览器存储已满;本次记录只保留在内存中,刷新后不会恢复。")}},ie=function(){var t=dr(pr().mark((function t(){var r,a,o,i,l,u;return pr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.trim()){t.next=3;break}return e.warning("请输入请求 URL"),t.abrupt("return");case 3:if(t.prev=3,r=new URL(n.trim()),["http:","https:"].includes(r.protocol)){t.next=7;break}throw new Error;case 7:t.next=13;break;case 9:return t.prev=9,t.t0=t.catch(3),e.warning("请输入有效的 HTTP / HTTPS URL"),t.abrupt("return");case 13:if("json"!==y||!w){t.next=22;break}t.prev=14,JSON.parse(w),t.next=22;break;case 18:return t.prev=18,t.t1=t.catch(14),e.error("请求 JSON 格式有误:".concat(t.t1.message)),t.abrupt("return");case 22:return j(!0),C(""),k(null),a={url:n.trim(),method:c,headers:Ar(f),queryParams:Ar(s),body:w,bodyType:y},t.prev=26,t.next=29,Te.A.post("/cgi-bin/proxy-fetch",a);case 29:if(o=t.sent,0===(i=o.data).code){t.next=33;break}throw new Error(i.message);case 33:l=vr(vr({},i.data),{},{request:a}),k(l),oe([{id:(0,Yt.createId)(),timestamp:(new Date).toISOString(),url:a.url,method:c,status:l.status,preview:String(l.body||"").slice(0,200),request:a,response:l}].concat(hr(P))),t.next=41;break;case 38:t.prev=38,t.t2=t.catch(26),C((null===(u=t.t2.response)||void 0===u||null===(u=u.data)||void 0===u?void 0:u.message)||t.t2.message);case 41:return t.prev=41,j(!1),t.finish(41);case 44:case"end":return t.stop()}}),t,null,[[3,9],[14,18],[26,38,41,44]])})));return function(){return t.apply(this,arguments)}}(),ce=function(){var t=dr(pr().mark((function t(){var n,r,a,o,i,l,u,s,m,p,f,d,h,y;return pr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!W){t.next=2;break}return t.abrupt("return");case 2:return t.prev=2,t.next=5,re.validateFields();case 5:if(n=t.sent,A&&!A.incomplete){t.next=8;break}throw new Error("请重新发送请求,获取完整响应");case 8:if(H(!0),r=(0,Yt.createId)(),a={id:r,name:"append"===te?n.name:"默认响应",description:"从真实接口录制",content:A.body||"",paramMatchers:[]},"append"!==te){t.next=30;break}if(i=X.find((function(e){return e.id===n.interfaceId}))){t.next=15;break}throw new Error("请选择接口");case 15:return t.next=17,Te.A.get("/cgi-bin/interfaces",{params:{featureId:i.featureId}});case 17:if(0===(l=t.sent).data.code){t.next=20;break}throw new Error(l.data.message);case 20:if(u=l.data.data.find((function(e){return e.id===i.id}))){t.next=23;break}throw new Error("接口不存在,请重新选择");case 23:return s=Array.isArray(u.responses)&&u.responses.length?u.responses:[{id:(0,Yt.createId)(),name:"默认响应",content:u.responseContent||"{}",paramMatchers:[]}],t.next=26,Te.A.patch("/cgi-bin/interfaces/".concat(i.id),{responses:[].concat(hr(s),[a]),activeResponseId:u.activeResponseId||s[0].id});case 26:m=t.sent,o=m.data,t.next=35;break;case 30:return d=(null===(p=Object.entries(A.headers||{}).find((function(e){return"content-type"===br(e,1)[0].toLowerCase()})))||void 0===p?void 0:p[1])||"text/plain; charset=utf-8",t.next=33,Te.A.post("/cgi-bin/interfaces",{name:n.name,featureId:n.featureId,urlPattern:n.urlPattern,httpMethod:(null===(f=A.request)||void 0===f?void 0:f.method)||c,proxyType:"response",httpStatus:A.status,contentType:d,active:!0,responseContent:A.body,responses:[a],activeResponseId:r});case 33:h=t.sent,o=h.data;case 35:if(0===o.code){t.next=37;break}throw new Error(o.message);case 37:e.success("append"===te?"已追加响应(默认响应未切换)":"已创建 Mock 接口"),q(!1),t.next=44;break;case 41:t.prev=41,t.t0=t.catch(2),t.t0.errorFields||e.error((null===(y=t.t0.response)||void 0===y||null===(y=y.data)||void 0===y?void 0:y.message)||t.t0.message);case 44:return t.prev=44,H(!1),t.finish(44);case 47:case"end":return t.stop()}}),t,null,[[2,41,44,47]])})));return function(){return t.apply(this,arguments)}}(),le=function(){var t=dr(pr().mark((function t(){return pr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,navigator.clipboard.writeText(A.body);case 3:e.success("已复制"),t.next=9;break;case 6:t.prev=6,t.t0=t.catch(0),e.error("复制失败,请手动选择内容");case 9:case"end":return t.stop()}}),t,null,[[0,6]])})));return function(){return t.apply(this,arguments)}}();return r.createElement("div",{className:"page-container"},r.createElement(pt,{kicker:"REQUEST LAB",title:"接口嗅探",description:"发送真实请求,保留完整响应并转换为 Mock。",actions:r.createElement(a.Ay,{icon:r.createElement(ur.A,null),onClick:function(){return M(!0)}},"历史记录(",P.length,")")}),r.createElement("div",{className:"mm-request-bar"},r.createElement(tt.A,{"aria-label":"请求方法",value:c,onChange:l,options:["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"].map((function(e){return{value:e,label:e}}))}),r.createElement(Ee.A,{"aria-label":"请求 URL",className:"mm-code",placeholder:"https://api.example.com/users",value:n,onChange:function(e){return o(e.target.value)},onPressEnter:ie}),r.createElement(a.Ay,{type:"primary",icon:r.createElement(sr.A,null),loading:O,onClick:ie},"发送请求")),N&&r.createElement(v.A,{type:"error",showIcon:!0,message:"请求失败",description:N})," ",R&&r.createElement(v.A,{type:"warning",showIcon:!0,message:R}),r.createElement("div",{className:"mm-sniffer-columns"},r.createElement(ve.A,{title:"请求配置"},r.createElement(It.A,{items:[{key:"query",label:"Query",children:r.createElement(Sr,{label:"参数",value:s,onChange:m})},{key:"headers",label:"Headers",children:r.createElement(Sr,{label:"Header",value:f,onChange:d})},{key:"body",label:"Body",children:r.createElement(r.Fragment,null,r.createElement(tt.A,{"aria-label":"请求体类型",value:y,onChange:g,options:[{value:"none",label:"无请求体"},{value:"json",label:"JSON"},{value:"form",label:"表单"},{value:"text",label:"纯文本"}]}),"none"!==y&&r.createElement(Ee.A.TextArea,{"aria-label":"请求体",className:"mm-response-code",value:w,onChange:function(e){return x(e.target.value)},autoSize:{minRows:12,maxRows:24},style:{marginTop:12}}))}]})),r.createElement(ve.A,{title:r.createElement(Ae.A,null,"响应",A&&r.createElement(xe.A,{color:A.status>=400?"error":"success"},A.status," ",A.statusText)),extra:A&&r.createElement(Ae.A,{wrap:!0},r.createElement(a.Ay,{size:"small",icon:r.createElement(Mt.A,null),onClick:le},"复制"),r.createElement(a.Ay,{size:"small",disabled:A.incomplete,onClick:function(){var e,t,r=(null==A||null===(e=A.request)||void 0===e?void 0:e.url)||n;try{r=new URL(r).pathname}catch(e){}re.resetFields(),re.setFieldsValue({urlPattern:r,featureId:null===(t=Y[0])||void 0===t?void 0:t.id}),ne("new"),q(!0)}},"保存为 Mock"))},A?r.createElement(r.Fragment,null,A.incomplete&&r.createElement(v.A,{type:"warning",message:"这是旧历史的摘要,请重新发送获取完整响应。"}),r.createElement(It.A,{items:[{key:"body",label:"Body",children:r.createElement(Ee.A.TextArea,{"aria-label":"响应内容",className:"mm-response-code",value:function(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}}(A.body),readOnly:!0,autoSize:{minRows:16,maxRows:30}})},{key:"headers",label:"Headers",children:r.createElement("pre",null,JSON.stringify(A.headers,null,2))}]})):r.createElement("div",{className:"mm-sniffer-empty"},r.createElement(be.A,{description:O?"正在请求真实接口…":"发送请求后在这里查看响应"})))),r.createElement(lr.A,{title:"请求历史",open:z,onClose:function(){return M(!1)},width:"min(880px, 100vw)",extra:r.createElement(Se.A,{title:"清空历史记录?",onConfirm:function(){return oe([])}},r.createElement(a.Ay,{danger:!0},"清空"))},r.createElement(J.A,{rowKey:"id",size:"small",scroll:{x:620},pagination:{pageSize:10},dataSource:P,columns:[{title:"时间",dataIndex:"timestamp",render:function(e){return new Date(e).toLocaleString()}},{title:"方法",dataIndex:"method"},{title:"URL",dataIndex:"url",ellipsis:!0},{title:"状态",dataIndex:"status"},{title:"操作",render:function(e,t){return r.createElement(Ae.A,null,r.createElement(a.Ay,{onClick:function(){return n=(e=t).request||{url:e.url,method:e.method},o(n.url||""),l(n.method||"GET"),m(Er(n.queryParams)),d(Er(n.headers)),g(n.bodyType||"none"),x("string"==typeof n.body?n.body:JSON.stringify(n.body||"")),k(e.response?vr(vr({},e.response),{},{request:n}):{status:e.status,body:e.preview,headers:{},request:n,incomplete:!0}),void M(!1);var e,n}},"加载"),r.createElement(Se.A,{title:"删除此记录?",onConfirm:function(){return oe(P.filter((function(e){return e.id!==t.id})))}},r.createElement(a.Ay,{danger:!0},"删除")))}}]})),r.createElement(lr.A,{title:"保存录制响应",open:U,onClose:function(){return!W&&q(!1)},width:"min(480px, 100vw)",footer:r.createElement("div",{className:"mm-save-footer"},r.createElement(a.Ay,{disabled:W,onClick:function(){return q(!1)}},"取消"),r.createElement(a.Ay,{type:"primary",loading:W,onClick:ce},"append"===te?"追加响应":"创建接口"))},r.createElement(we.A,{form:re,layout:"vertical"},r.createElement(we.A.Item,{label:"保存方式"},r.createElement(tt.A,{value:te,onChange:ne,options:[{value:"new",label:"创建 Mock 接口"},{value:"append",label:"追加到已有接口"}]})),r.createElement(we.A.Item,{name:"featureId",label:"功能模块",rules:[{required:!0,message:"请选择功能模块"}]},r.createElement(tt.A,{options:Y.map((function(e){return{value:e.id,label:e.name}}))})),"append"===te?r.createElement(we.A.Item,{name:"interfaceId",label:"接口",rules:[{required:!0,message:"请选择接口"}]},r.createElement(tt.A,{options:X.map((function(e){return{value:e.id,label:e.name}}))})):r.createElement(we.A.Item,{name:"urlPattern",label:"URL 匹配路径",rules:[{required:!0,message:"请输入匹配规则"}]},r.createElement(Ee.A,null)),r.createElement(we.A.Item,{name:"name",label:"append"===te?"响应名称":"接口名称",rules:[{required:!0,message:"请输入名称"}]},r.createElement(Ee.A,null)),r.createElement(jr,null))))}function jr(){return r.createElement("p",{className:"mm-settings-description"},"追加响应不会改变已有接口的默认响应、状态码或响应头;可在工作台中进一步配置。")}var Lr=n(8794),Nr={};Nr.styleTagTransform=C(),Nr.setAttributes=O(),Nr.insert=k().bind(null,"head"),Nr.domAPI=E(),Nr.insertStyleElement=L(),w()(Lr.A,Nr),Lr.A&&Lr.A.locals&&Lr.A.locals;const Cr=function(){return r.createElement(d.I9,null,r.createElement("div",{className:"App"},r.createElement(oe,null,r.createElement(me,null,r.createElement(f.dO,null,r.createElement(f.qh,{exact:!0,path:"/",component:Lt}),r.createElement(f.qh,{exact:!0,path:"/interface",component:Fn}),r.createElement(f.qh,{path:"/interface/:featureId",component:Fn}),r.createElement(f.qh,{path:"/stats",component:cr}),r.createElement(f.qh,{path:"/sniffer",component:Or}),r.createElement(f.qh,{path:"/settings",component:Yn}),r.createElement(f.rd,{to:"/"}))))))}},1019:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540),a=n(1847),o=n(770);function i(){var e="legacy"===localStorage.getItem("mm-ui-version")?"legacy":"modern";return r.createElement("div",{style:{marginBottom:24}},r.createElement(a.A.Title,{level:5},"界面版本"),r.createElement(o.Ay.Group,{value:e,onChange:function(e){localStorage.setItem("mm-ui-version",e.target.value),window.location.reload()},options:[{value:"modern",label:"UI 3.0 工作台"},{value:"legacy",label:"经典 UI 2.0"}]}),r.createElement(a.A.Paragraph,{type:"secondary",style:{marginTop:8}},"切换后刷新页面,两个界面共用原有模块、接口和同步数据。此偏好仅保存在当前浏览器。"))}},2625:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,"/* 全局样式 */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n\n}\n\nhtml, body, #root {\n height: 100%;\n width: 100%;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans SC', sans-serif;\n background-color: var(--mm-bg, #f6f7fb);\n color: var(--mm-text, #202637);\n font-size: 14px;\n line-height: 1.5715;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: var(--mm-text, #202637);\n font-weight: 500;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nbutton, input {\n font-size: 14px;\n}\n\na {\n color: var(--mm-primary);\n text-decoration: none;\n transition: all 0.3s;\n}\n\na:hover {\n color: #40a9ff;\n}\n\n/* 辅助类 */\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n.text-left {\n text-align: left;\n}\n\n.mb-0 {\n margin-bottom: 0;\n}\n\n.mb-1 {\n margin-bottom: 4px;\n}\n\n.mb-2 {\n margin-bottom: 8px;\n}\n\n.mb-3 {\n margin-bottom: 16px;\n}\n\n.mb-4 {\n margin-bottom: 24px;\n}\n\n.mt-0 {\n margin-top: 0;\n}\n\n.mt-1 {\n margin-top: 4px;\n}\n\n.mt-2 {\n margin-top: 8px;\n}\n\n.mt-3 {\n margin-top: 16px;\n}\n\n.mt-4 {\n margin-top: 24px;\n}\n\n.ml-1 {\n margin-left: 4px;\n}\n\n.ml-2 {\n margin-left: 8px;\n}\n\n.ml-3 {\n margin-left: 16px;\n}\n\n.mr-1 {\n margin-right: 4px;\n}\n\n.mr-2 {\n margin-right: 8px;\n}\n\n.mr-3 {\n margin-right: 16px;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: 4px;\n}\n\n.p-2 {\n padding: 8px;\n}\n\n.p-3 {\n padding: 16px;\n}\n\n.p-4 {\n padding: 24px;\n}\n\n/* 弹性布局 */\n.d-flex {\n display: flex;\n}\n\n.align-center {\n align-items: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.flex-column {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n/* 颜色 */\n.text-primary {\n color: var(--mm-primary);\n}\n\n.text-success {\n color: #52c41a;\n}\n\n.text-warning {\n color: #faad14;\n}\n\n.text-danger {\n color: #ff4d4f;\n}\n\n.text-secondary {\n color: var(--mm-muted);\n}\n\n.bg-white {\n background-color: var(--mm-surface);\n}\n\n.bg-light {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans SC', sans-serif;\n background-color: var(--mm-bg, #f6f7fb);\n}\n\n/* 滚动条样式 */\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\n::-webkit-scrollbar-track {\n background: var(--mm-bg);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb {\n background: var(--mm-border);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n} ",""]);const c=i},4807:e=>{function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||r(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,n,r){return(n=function(e){var n=function(e){if("object"!=t(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(n)?n:n+""}(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}var l=function(e){return JSON.parse(JSON.stringify(e))},u=function(){return"resp-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,10))},s=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,a=Array.isArray(n.responses)&&n.responses.length?l(n.responses).map((function(e,t){var n;return i(i({},e),{},{id:e.id||u(),name:e.name||"响应 ".concat(t+1),content:"string"==typeof e.content?e.content:JSON.stringify(null!==(n=e.content)&&void 0!==n?n:{}),paramMatchers:e.paramMatchers||[]})})):[{id:u(),name:"默认响应",content:null!==(e=n.responseContent)&&void 0!==e?e:'{\n "code": 0,\n "data": {}\n}',paramMatchers:[]}];return i(i({},l(n)),{},{featureId:n.featureId||r,name:n.name||"",group:"string"==typeof n.group?n.group:"",urlPattern:n.urlPattern||"",httpMethod:n.httpMethod||n.method||"ALL",proxyType:n.proxyType||"response",active:!1!==n.active,responses:a,activeResponseId:a.some((function(e){return e.id===n.activeResponseId}))?n.activeResponseId:a[0].id,httpStatus:n.httpStatus||200,responseDelay:null!==(t=n.responseDelay)&&void 0!==t?t:0,contentType:n.contentType||"application/json; charset=utf-8",headers:n.headers||{},customHeaders:n.customHeaders||{},paramMatchers:n.paramMatchers||[],filePath:n.filePath||"",targetUrl:n.targetUrl||""})};e.exports={clone:l,createId:u,normalizeInterface:s,duplicateInterface:function(e,t){var n=s(e,t),r=new Map;return n.responses=n.responses.map((function(e){var t=u();return r.set(e.id,t),i(i({},e),{},{id:t})})),n.activeResponseId=r.get(n.activeResponseId),n.paramMatchers=n.paramMatchers.map((function(e){return i(i({},e),e.targetResponseId?{targetResponseId:r.get(e.targetResponseId)||""}:{})})),delete n.id,n.name="".concat(n.name," - 副本"),n},filterInterfaces:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return e.filter((function(e){return(!n||e.group===n)&&"".concat(e.name," ").concat(e.urlPattern).toLowerCase().includes(t.toLowerCase())}))},visibleSelection:function(e,t){return e.filter((function(e){return t.some((function(t){return t.id===e}))}))},validateDraft:function(e){if(!e.name.trim())return"请输入接口名称";if(!e.urlPattern.trim())return"请输入 URL 匹配规则";if(e.urlPattern.length>2&&e.urlPattern.startsWith("/")&&e.urlPattern.endsWith("/"))try{new RegExp(e.urlPattern.slice(1,-1))}catch(e){return"URL 正则表达式无效:".concat(e.message)}if(!Number.isInteger(Number(e.httpStatus))||e.httpStatus<100||e.httpStatus>599)return"HTTP 状态码须为 100~599 的整数";if(!Number.isFinite(Number(e.responseDelay))||e.responseDelay<0)return"延迟须为非负数";if(["redirect","url_redirect"].includes(e.proxyType))try{var t=new URL(e.targetUrl);if(!["http:","https:"].includes(t.protocol))return"目标地址仅支持 HTTP / HTTPS"}catch(e){return"请输入完整有效的目标 URL"}if("file"===e.proxyType&&!e.filePath.trim())return"请输入本地文件路径";if("response"===e.proxyType&&e.contentType.includes("json")){var a,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=r(e))){t&&(e=t);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(c)throw o}}}}(e.responses);try{for(o.s();!(a=o.n()).done;){var i=a.value;try{JSON.parse(i.content)}catch(e){return"响应「".concat(i.name,"」JSON 格式有误:").concat(e.message)}}}catch(e){o.e(e)}finally{o.f()}}if(e.paramMatchers.some((function(t){return t.targetResponseId&&!e.responses.some((function(e){return e.id===t.targetResponseId}))})))return"接口匹配条件引用了已删除的响应,请修改目标响应";if(e.responses.length&&!e.responses.some((function(t){return t.id===e.activeResponseId})))return"请选择有效的默认响应";for(var c=0,l=[].concat(n(e.paramMatchers),n(e.responses.flatMap((function(e){return e.paramMatchers||[]}))));c<l.length;c++){var u=l[c];if(!u.paramPath||void 0===u.paramValue||""===u.paramValue)return"请补全参数匹配规则或删除空行";if("regex"===u.matchType)try{new RegExp(u.paramValue)}catch(e){return"参数匹配规则中的正则表达式无效"}}return null}}},6027:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,".App { width:100%; min-height:100%; }\n.page-container { width:100%; min-width:0; }\n.page-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }\n.custom-form-item-hint { color:var(--mm-muted); font-size:12px; }\n",""]);const c=i},6286:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,'.webdav-sync-modal .ant-modal-content {\n display: flex;\n max-height: calc(100vh - 24px);\n flex-direction: column;\n overflow: hidden;\n padding: 0;\n}\n\n.webdav-sync-modal {\n top: 12px;\n max-width: calc(100vw - 32px);\n padding-bottom: 0;\n}\n\n.webdav-sync-modal-wrap {\n overflow: hidden;\n}\n\n.webdav-sync-modal .ant-modal-body {\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.webdav-sync-modal .ant-modal-close {\n top: 12px;\n color: rgba(255, 255, 255, 0.86);\n}\n\n.webdav-sync-hero {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n gap: 12px;\n padding: 14px 20px;\n color: #fff;\n background:\n radial-gradient(circle at 85% 0%, rgba(56, 189, 248, 0.32), transparent 38%),\n linear-gradient(135deg, #102a43 0%, #0b7285 100%);\n}\n\n.webdav-sync-hero .ant-typography {\n margin: 0;\n color: inherit;\n}\n\n.webdav-sync-hero .ant-typography.ant-typography-secondary {\n color: rgba(255, 255, 255, 0.68);\n}\n\n.webdav-sync-hero-copy {\n min-width: 0;\n}\n\n.webdav-sync-hero-copy .ant-typography:last-child {\n font-size: 13px;\n white-space: nowrap;\n}\n\n.webdav-sync-hero-icon {\n display: flex;\n width: 40px;\n height: 40px;\n align-items: center;\n justify-content: center;\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 11px;\n background: rgba(255, 255, 255, 0.12);\n font-size: 20px;\n box-shadow: inset 0 1px rgba(255, 255, 255, 0.18);\n}\n\n.webdav-sync-kicker {\n display: block;\n margin-bottom: 1px !important;\n color: #67e8f9 !important;\n font-size: 9px;\n font-weight: 700;\n letter-spacing: 0.18em;\n}\n\n.webdav-sync-grid {\n display: grid;\n grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.65fr);\n gap: 12px;\n padding: 12px;\n background: #f3f6f8;\n}\n\n.webdav-sync-error {\n margin: 10px 12px 0;\n padding: 8px 12px;\n}\n\n.webdav-sync-error .ant-alert-description {\n overflow-wrap: anywhere;\n}\n\n.webdav-sync-modal .ant-descriptions-item-label {\n width: 82px;\n white-space: nowrap;\n}\n\n.webdav-sync-modal .ant-descriptions-item-content {\n min-width: 0;\n}\n\n.webdav-sync-card,\n.webdav-sync-note,\n.webdav-sync-status-card,\n.webdav-sync-connection-card,\n.webdav-sync-module-card {\n border-radius: 10px;\n box-shadow: 0 5px 18px rgba(15, 42, 67, 0.06);\n}\n\n.webdav-sync-card .ant-card-body,\n.webdav-sync-note .ant-card-body {\n padding: 16px;\n}\n\n.webdav-sync-modal .ant-form-item {\n margin-bottom: 14px;\n}\n\n.webdav-sync-connected {\n display: grid;\n gap: 10px;\n padding: 12px;\n background: #f3f6f8;\n}\n\n.webdav-sync-connection-card .ant-card-body {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: end;\n gap: 12px;\n padding: 12px 16px;\n}\n\n.webdav-sync-connection-card .ant-descriptions {\n min-width: 0;\n}\n\n.webdav-sync-connection-card .ant-descriptions-header {\n margin-bottom: 8px;\n}\n\n.webdav-sync-connection-card .ant-descriptions-row > th,\n.webdav-sync-connection-card .ant-descriptions-row > td {\n padding-bottom: 6px;\n}\n\n.webdav-sync-form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n}\n\n.webdav-sync-form-actions,\n.webdav-sync-form-actions .ant-space-item {\n display: flex;\n width: 100%;\n}\n\n.webdav-sync-form-actions .ant-btn {\n flex: 1;\n}\n\n.webdav-sync-note {\n color: #475569;\n background: linear-gradient(160deg, #ecfeff, #f8fafc 62%);\n}\n\n.webdav-sync-note-icon {\n display: block;\n margin-bottom: 10px;\n color: #0891b2;\n font-size: 24px;\n}\n\n.webdav-sync-file-tree,\n.webdav-sync-file-name {\n padding: 8px 10px;\n border-radius: 7px;\n color: #d8f3f5;\n background: #102a43;\n font-family: SFMono-Regular, Consolas, "Liberation Mono", monospace;\n font-size: 12px;\n line-height: 1.6;\n}\n\n.webdav-sync-break-all {\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.webdav-sync-actions {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n margin-top: 22px;\n}\n\n.webdav-sync-actions .ant-btn {\n white-space: nowrap;\n}\n\n.webdav-sync-pull-button {\n border-color: #059669 !important;\n background: #059669 !important;\n}\n\n.webdav-sync-disconnect {\n padding-inline: 0;\n}\n\n.webdav-sync-module-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.webdav-sync-module-card .ant-card-body {\n display: flex;\n height: min(440px, calc(100vh - 300px));\n min-height: 280px;\n flex-direction: column;\n padding: 14px;\n}\n\n.webdav-sync-module-header,\n.webdav-sync-select-all {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.webdav-sync-module-header {\n align-items: flex-start;\n}\n\n.webdav-sync-module-header .ant-typography {\n margin: 0;\n}\n\n.webdav-sync-module-eyebrow {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.14em;\n}\n\n.webdav-sync-select-all {\n margin-top: 8px;\n padding: 7px 10px;\n border-radius: 7px;\n background: #f8fafc;\n}\n\n.webdav-sync-module-list {\n min-height: 0;\n flex: 1;\n margin: 8px 0 10px;\n overflow: auto;\n overscroll-behavior: contain;\n}\n\n.webdav-sync-module-list .ant-checkbox-group {\n display: grid;\n gap: 5px;\n}\n\n.webdav-sync-module-option.ant-checkbox-wrapper {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n gap: 8px;\n margin-inline-start: 0;\n padding: 7px 9px;\n border: 1px solid #e6edf2;\n border-radius: 7px;\n background: #fff;\n}\n\n.webdav-sync-module-option .ant-checkbox + span {\n display: contents;\n padding-inline-start: 0;\n}\n\n.webdav-sync-module-name {\n min-width: 0;\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n.webdav-sync-module-count {\n color: #94a3b8;\n font-size: 12px;\n white-space: nowrap;\n}\n\n.webdav-sync-manual-note {\n padding: 8px 12px;\n border-radius: 8px;\n}\n\n.webdav-sync-manual-note .ant-alert-message {\n margin-bottom: 1px;\n}\n\n.webdav-sync-manual-note .ant-alert-description {\n font-size: 12px;\n line-height: 1.5;\n}\n\n.webdav-sync-status-title {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 16px;\n}\n\n.webdav-sync-status-title .ant-typography {\n margin: 0;\n}\n\n.webdav-sync-status-title > div > .ant-typography:first-child {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.14em;\n}\n\n.webdav-sync-file-name {\n margin-bottom: 16px;\n line-height: 1.5;\n}\n\nbody.cyber-theme .webdav-sync-grid {\n background: #071116;\n}\n\nbody.cyber-theme .webdav-sync-connected {\n background: #071116;\n}\n\nbody.cyber-theme .webdav-sync-card,\nbody.cyber-theme .webdav-sync-note,\nbody.cyber-theme .webdav-sync-status-card,\nbody.cyber-theme .webdav-sync-connection-card,\nbody.cyber-theme .webdav-sync-module-card {\n border: 1px solid rgba(0, 240, 255, 0.2);\n background: #0b1c24;\n}\n\nbody.cyber-theme .webdav-sync-select-all,\nbody.cyber-theme .webdav-sync-module-option.ant-checkbox-wrapper {\n border-color: rgba(0, 240, 255, 0.18);\n background: #102730;\n}\n\nbody.earth-theme .webdav-sync-grid {\n background: #f0ebe3;\n}\n\nbody.earth-theme .webdav-sync-connected {\n background: #f0ebe3;\n}\n\nbody.earth-theme .webdav-sync-hero {\n background:\n radial-gradient(circle at 85% 0%, rgba(212, 160, 23, 0.3), transparent 38%),\n linear-gradient(135deg, #3d3630 0%, #8b5e3c 100%);\n}\n\n@media (max-width: 720px) {\n .webdav-sync-hero {\n grid-template-columns: auto 1fr;\n padding: 12px 14px;\n }\n\n .webdav-sync-hero > .ant-tag {\n grid-column: 2;\n justify-self: start;\n }\n\n .webdav-sync-hero-copy .ant-typography:last-child {\n white-space: normal;\n }\n\n .webdav-sync-grid,\n .webdav-sync-form-row,\n .webdav-sync-actions,\n .webdav-sync-module-grid,\n .webdav-sync-connection-card .ant-card-body {\n grid-template-columns: 1fr;\n }\n\n .webdav-sync-module-card .ant-card-body {\n height: auto;\n min-height: 300px;\n }\n\n .webdav-sync-module-list {\n max-height: 240px;\n }\n}\n',""]);const c=i},7166:e=>{function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}var n=function(e){return"string"!=typeof e?"":e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim().slice(0,300)},r=function(e){if(!e)return{};if("object"==t(e))return{message:n(e.message||e.error||e.detail),conflict:e.conflict||null};if("string"!=typeof e)return{};var a=e.trim();if(!a)return{};try{return r(JSON.parse(a))}catch(e){return{message:n(a),conflict:null}}};e.exports={getApiError:function(e,t){var a=n(t)||"WebDAV 操作失败",o=e&&e.response,i=r(o&&o.data);if(i.message)return i;var c=o&&o.status;if(c){var l=n(o.statusText);return{message:"".concat(a,"(HTTP ").concat(c).concat(l?" ".concat(l):"",")"),conflict:i.conflict||null}}if(e&&"ECONNABORTED"==e.code)return{message:"".concat(a,":请求超时,请检查 WebDAV 地址和网络"),conflict:null};var u=n(e&&e.message);return u&&"Network Error"!=u?{message:u,conflict:null}:{message:"".concat(a,":网络请求失败,请检查 Whistle 服务日志"),conflict:null}},normalizeMessage:n,parseResponseData:r}},7827:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,"/* 版本弹窗样式 */\n.version-modal .ant-modal-content {\n padding: 0;\n}\n\n.version-modal .ant-modal-header {\n padding: 16px 24px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.version-modal .ant-modal-body {\n padding: 0;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.version-modal-content {\n padding: 24px;\n}\n\n.version-modal-loading {\n text-align: center;\n padding: 40px;\n}\n\n.version-modal-loading p {\n margin-top: 16px;\n color: #666;\n}\n\n/* 版本号按钮样式 */\n.version-button {\n padding: 4px 8px;\n height: auto;\n border-radius: 4px;\n transition: background-color 0.3s ease;\n}\n\n.version-button:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n.version-button:focus {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n/* Markdown 内容样式 */\n.version-markdown-content {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n}\n\n.version-markdown-content h1 {\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 16px 0;\n padding-bottom: 8px;\n border-bottom: 1px solid #eee;\n color: #1890ff;\n}\n\n.version-markdown-content h2 {\n font-size: 20px;\n font-weight: 600;\n margin: 24px 0 12px 0;\n color: #262626;\n}\n\n.version-markdown-content h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 16px 0 8px 0;\n color: #52c41a;\n}\n\n.version-markdown-content p {\n margin: 8px 0;\n color: #595959;\n}\n\n.version-markdown-content ul {\n padding-left: 20px;\n margin: 8px 0;\n}\n\n.version-markdown-content li {\n margin: 4px 0;\n color: #595959;\n}\n\n.version-markdown-content strong {\n font-weight: 600;\n color: #262626;\n}\n\n.version-markdown-content code {\n background-color: #f5f5f5;\n padding: 2px 4px;\n border-radius: 3px;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n font-size: 87%;\n}\n\n.version-markdown-content pre {\n background-color: #f6f8fa;\n padding: 16px;\n border-radius: 6px;\n overflow-x: auto;\n margin: 16px 0;\n}\n\n.version-markdown-content pre code {\n background-color: transparent;\n padding: 0;\n} ",""]);const c=i},8794:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,"/* Shared page surfaces. Imported last to replace legacy page-level chrome. */\n:root { --primary-color:var(--mm-primary); --font-color:var(--mm-text); --text-secondary:var(--mm-muted); --text-light:var(--mm-muted); --border-color:var(--mm-border); --card-shadow:none; }\nbody { background:var(--mm-bg); color:var(--mm-text); }\n.mm-app h1,.mm-app h2,.mm-app h3,.mm-app h4 { color:var(--mm-text); }\n.mm-app .page-container,.mm-app .interface-management-container { background:transparent; padding:0; box-shadow:none; }\n.mm-app .control-panel-card,.mm-app .feature-list-card,.mm-app .settings-card { background:var(--mm-surface); border-color:var(--mm-border); box-shadow:none; }\n.mm-app .feature-card { background:var(--mm-surface); border:1px solid var(--mm-border); box-shadow:none; }\n.mm-app .feature-card:hover { transform:none; box-shadow:0 0 0 1px var(--mm-primary); }\n.mm-app .feature-name,.mm-app .settings-item-title,.mm-app .stat-label,.mm-app .control-label { color:var(--mm-text); }\n.mm-app .feature-description,.mm-app .settings-item-description,.mm-app .page-description,.mm-app .feature-stats { color:var(--mm-muted); }\n.mm-app .settings-item,.mm-app .settings-item-header { border-color:var(--mm-border); }\n.mm-app .stats-number { color:var(--mm-primary); }\n.mm-app .feature-card .ant-card-actions { background:var(--mm-bg); border-color:var(--mm-border); }\n.mm-app .control-panel-card .ant-card-body { padding:14px 18px; }\n.mm-app .feature-list-card { border:0; background:transparent; }\n.mm-app .feature-list-card>.ant-card-body { padding:0; }\n.mm-app .settings-card { margin-bottom:16px; }\n.mm-app .settings-item { padding:16px 0; }\n.mm-app .settings-item-header { gap:16px; flex-wrap:wrap; }\n.mm-app .settings-item-header>div:first-child { flex:1; min-width:180px; }\n.mm-app .ant-table-wrapper { min-width:0; }\n.mm-app .ant-table-content { overflow:auto; }\n.mm-app .ant-alert { margin-bottom:12px; }\n.mm-app .ant-form-item { margin-bottom:18px; }\n.mm-app .sniffer-response-preview { background:var(--mm-surface); color:var(--mm-text); }\n.mm-app pre { color:var(--mm-text); background:var(--mm-bg); border-radius:6px; padding:12px; }\n.mm-app .stats-section { gap:24px; }\n.mm-app .control-panel-card .control-group { flex-wrap:wrap; }\n.mm-app .page-title-bar { align-items:center; }\n.mm-app .page-actions .ant-btn-primary { background:var(--mm-primary); border-color:var(--mm-primary); }\n.mm-app .page-actions .ant-btn-default { background:var(--mm-surface); border-color:var(--mm-border); }\n@media(max-width:768px) { .mm-app .stats-section { flex-wrap:wrap; }.mm-app .page-actions { width:100%; }.mm-app .settings-item-header { align-items:flex-start; }.mm-app .ant-col { min-width:0; } }\n.mm-stats-filters { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px; }\n.mm-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:20px; }\n.mm-stats-section { margin:20px 0; }\n.mm-stats-columns { display:grid; grid-template-columns:1fr 1fr; gap:20px; }\n.mm-timeline { display:flex; gap:16px; overflow:auto; padding:12px 0; }\n.mm-timeline-day { flex:1; min-width:34px; display:flex; flex-direction:column; align-items:center; font-size:12px; gap:8px; }\n.mm-timeline-track { height:120px; width:100%; display:flex; align-items:flex-end; }\n.mm-timeline-track>div { background:var(--mm-primary); width:100%; border-radius:3px 3px 0 0; }\n.mm-timeline-day small { color:var(--mm-muted); }\n@media(max-width:768px) { .mm-metrics { grid-template-columns:1fr 1fr; }.mm-stats-columns { grid-template-columns:1fr; } }\n.mm-settings-layout { display:grid; grid-template-columns:180px minmax(0,880px); gap:32px; }\n.mm-settings-nav { display:flex; flex-direction:column; gap:8px; align-self:start; }\n.mm-settings-nav a { color:var(--mm-muted); padding:10px 14px; border-radius:6px; }\n.mm-settings-nav a:hover { color:var(--mm-primary); background:var(--mm-subtle); }\n.mm-settings-section { margin-bottom:20px; scroll-margin-top:20px; }\n.mm-setting-row { display:flex; align-items:center; gap:24px; justify-content:space-between; padding:18px 0; }\n.mm-setting-row+ .mm-setting-row { border-top:1px solid var(--mm-border); }\n.mm-setting-row h3 { font-size:14px; margin:0 0 6px; }\n.mm-setting-row p,.mm-settings-description { color:var(--mm-muted); margin:0; font-size:13px; }\n.mm-theme-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; width:100%; margin-top:18px; }\n.mm-theme-options .ant-radio-wrapper { border:1px solid var(--mm-border); border-radius:8px; padding:16px; margin:0; align-items:flex-start; }\n.mm-theme-options .ant-radio-wrapper-checked { background:var(--mm-subtle); border-color:var(--mm-primary); }\n.mm-theme-options strong { font-weight:550; }.mm-theme-options small { display:block; color:var(--mm-muted); margin-top:5px; }\n@media(max-width:768px) { .mm-settings-layout { grid-template-columns:1fr; gap:18px; }.mm-settings-nav { flex-direction:row; flex-wrap:wrap; }.mm-setting-row { flex-wrap:wrap; gap:12px; } }\n@media(max-width:480px) { .mm-theme-options { grid-template-columns:1fr; } }\n.mm-request-bar { display:flex; gap:10px; margin-bottom:20px; }.mm-request-bar>.ant-select { width:115px; flex-shrink:0; }.mm-request-bar>.ant-input { flex:1; min-width:0; }\n.mm-sniffer-columns { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:20px; }\n.mm-pair { display:grid; grid-template-columns:1fr 1fr 34px; gap:8px; margin-bottom:10px; }\n.mm-sniffer-empty { padding:80px 12px; }\n.mm-module-search { margin-bottom:16px; }\n@media(max-width:850px) { .mm-sniffer-columns { grid-template-columns:1fr; } }\n@media(max-width:480px) { .mm-request-bar { flex-wrap:wrap; }.mm-request-bar>.ant-input { min-width:160px; }.mm-request-bar>.ant-btn { width:100%; } }\n.mm-module-card { height:100%; }.mm-module-card-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }.mm-module-card-header>.ant-btn { padding:0; height:auto; font-size:16px; white-space:normal; text-align:left; color:var(--mm-text); font-weight:600; }.mm-module-card-description { color:var(--mm-muted); margin:16px 0; min-height:40px; }.mm-module-card-footer { display:flex; align-items:center; gap:10px; justify-content:space-between; font-size:12px; color:var(--mm-muted); flex-wrap:wrap; }\n",""]);const c=i},8940:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,".mm-module-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:14px 0 20px; color:var(--mm-muted); font-size:12px; }\n.mm-module-toolbar>.ant-space { gap:16px!important; }\n.feature-list-card { min-height:240px; }\n.feature-grid { margin-bottom:16px; }\n.loading-state { display:flex; align-items:center; justify-content:center; min-height:240px; gap:16px; flex-direction:column; }\n.loading-text,.empty-subtitle { color:var(--mm-muted); }\n.pagination-wrapper { display:flex; justify-content:flex-end; padding:20px 0; border-top:1px solid var(--mm-border); }\n.form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }\n.custom-empty { padding:50px 20px; }.empty-title { color:var(--mm-text); margin-bottom:10px; }.empty-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }\n.feature-list-card .inactive-row { color:var(--mm-muted); }\n@media(max-width:600px) { .mm-module-toolbar { gap:14px; }.pagination-wrapper { justify-content:center; } }\n",""]);const c=i},9875:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,".mm-app { min-height: 100vh; background: var(--mm-bg); color: var(--mm-text); }\n.mm-app-header { min-height: 64px; display: flex; align-items: center; gap: 24px; padding: 10px 24px; background: var(--mm-surface); border-bottom: 1px solid var(--mm-border); }\n.mm-brand { display: flex; gap: 10px; align-items: center; color: var(--mm-text); flex-shrink: 0; font-size: 17px; font-weight: 650; letter-spacing: -.4px; }\n.mm-brand:hover { color: var(--mm-primary); }\n.mm-brand small { display: block; font-size: 9px; letter-spacing: 1.6px; color: var(--mm-muted); font-weight: 500; }\n.mm-brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--mm-subtle); color: var(--mm-primary); font-size: 19px; }\n.mm-navigation { display: flex; align-items: center; flex: 1; gap: 4px; flex-wrap: wrap; }\n.mm-navigation a { padding: 8px 12px; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: var(--mm-muted); font-size: 13px; white-space: nowrap; }\n.mm-navigation a:hover, .mm-navigation a.is-active { background: var(--mm-subtle); color: var(--mm-primary); }\n.mm-header-actions { display: flex; align-items: center; flex-shrink: 0; }\n.mm-app-main { padding: 28px; max-width: 1680px; margin: auto; }\n.mm-app-main-workbench { max-width: none; padding: 0; }\n.mm-app .page-container { padding: 0; background: transparent; box-shadow: none; border-radius: 0; }\n.mm-app .page-title-bar { border: 0; padding: 0; margin-bottom: 24px; gap: 16px; }\n.mm-app .page-title { color: var(--mm-text); font-size: 23px; letter-spacing: -.5px; }\n.mm-app .page-description { color: var(--mm-muted); font-size: 13px; }\n.mm-app .page-actions { flex-wrap: wrap; gap: 8px; }\n.mm-app .ant-card { box-shadow: none; }\n.mm-app .custom-card:hover { transform: none; box-shadow: none; }\n.mm-app :focus-visible { outline: 2px solid var(--mm-primary); outline-offset: 3px; }\n.mm-page-header { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 20px; flex-wrap: wrap; }\n.mm-page-header h1 { font-size: 23px; margin: 0 0 5px; color: var(--mm-text); letter-spacing: -.5px; }\n.mm-page-header p { margin: 0; color: var(--mm-muted); }\n.mm-page-kicker { font-size: 11px; letter-spacing: 1.5px; color: var(--mm-muted); margin-bottom: 6px; }\n.mm-error { margin: 16px 0; }\n.mm-code { font-family: 'SFMono-Regular', Consolas, monospace; }\n@media(max-width:1100px) { .mm-app-header { gap: 14px; padding: 10px 16px; } .mm-navigation a { padding: 8px; } .mm-brand small { display: none; } }\n@media(max-width:800px) { .mm-app-header { flex-wrap: wrap; gap: 8px; } .mm-navigation { order: 3; flex-basis: 100%; } .mm-header-actions { margin-left: auto; } .mm-app-main { padding: 18px; } .mm-app-main-workbench { padding: 0; } }\n@media(max-width:480px) { .mm-navigation { gap: 2px; } .mm-navigation a { font-size: 12px; padding: 8px 5px; } .mm-navigation a .anticon { display: none; } .mm-app .page-title-bar { flex-wrap: wrap; } .mm-app-main { padding: 14px; } .mm-app-main-workbench { padding: 0; } }\n",""]);const c=i},9916:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1601),a=n.n(r),o=n(6314),i=n.n(o)()(a());i.push([e.id,".mm-workbench { --tree-width:210px; --list-width:320px; background:var(--mm-surface); }\n.mm-workbench-heading { padding:22px 24px 16px; border-bottom:1px solid var(--mm-border); background:var(--mm-bg); }\n.mm-workbench-heading .mm-page-header { margin:0; }\n.mm-workbench-alert { margin:12px 20px; }\n.mm-workbench-grid { display:grid; grid-template-columns:var(--tree-width) 5px var(--list-width) 5px minmax(0,1fr); min-height:calc(100vh - 178px); }\n.mm-module-tree { background:var(--mm-bg); padding:16px 12px; min-width:0; }\n.mm-panel-label { display:flex; justify-content:space-between; align-items:center; color:var(--mm-muted); font-size:11px; letter-spacing:1px; margin:0 8px 12px; }\n.mm-group-label { margin-top:26px; }\n.mm-module-button,.mm-group-button { width:100%; display:flex; justify-content:space-between; align-items:center; gap:8px; text-align:left; border:0; border-radius:7px; background:transparent; color:var(--mm-text); cursor:pointer; padding:10px; margin-bottom:4px; font:inherit; }\n.mm-module-button small { display:block; font-size:11px; color:var(--mm-muted); margin-top:3px; }\n.mm-module-button.is-active,.mm-group-button.is-active { background:var(--mm-subtle); color:var(--mm-primary); }\n.mm-module-button:hover,.mm-group-button:hover { background:var(--mm-subtle); }\n.mm-module-button>span:first-child { min-width:0; overflow-wrap:anywhere; }\n.mm-count { font-size:11px; color:var(--mm-muted); }\n.mm-separator { background:var(--mm-border); cursor:col-resize; touch-action:none; }\n.mm-separator:hover { background:var(--mm-primary); }\n.mm-interface-panel { min-width:0; }\n.mm-list-toolbar { padding:16px; border-bottom:1px solid var(--mm-border); }\n.mm-list-meta { display:flex; align-items:center; justify-content:space-between; font-size:12px; color:var(--mm-muted); margin:8px 0; }\n.mm-selection { display:flex; align-items:center; justify-content:space-between; gap:6px; flex-wrap:wrap; font-size:12px; }\n.mm-request-list { padding:6px; }\n.mm-request-row { display:flex; gap:8px; align-items:center; padding:10px; border-radius:7px; margin:3px 0; border:1px solid transparent; }\n.mm-request-row.is-active { background:var(--mm-subtle); border-color:var(--mm-border); }\n.mm-request-row:hover { background:var(--mm-bg); }\n.mm-request-button { flex:1; min-width:0; text-align:left; border:0; background:transparent; color:var(--mm-text); cursor:pointer; font:inherit; padding:0; }\n.mm-request-button strong { font-weight:550; overflow-wrap:anywhere; }\n.mm-request-button code { display:block; font-size:11px; color:var(--mm-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin:5px 0; }\n.mm-request-button small { color:var(--mm-muted); font-size:11px; }\n.mm-method { font:10px 'SFMono-Regular',Consolas,monospace; color:var(--mm-primary); margin-right:8px; }\n.mm-method-POST { color:#25816b; }.mm-method-DELETE { color:#cc5353; }\n.mm-detail-panel { min-width:0; display:flex; flex-direction:column; }\n.mm-detail-heading { display:flex; justify-content:space-between; gap:12px; padding:20px 24px 12px; align-items:flex-start; }\n.mm-detail-heading>div:first-of-type { min-width:0; }\n.mm-detail-heading h2 { display:inline; font-size:18px; color:var(--mm-text); }\n.mm-detail-heading .ant-typography { display:block; font-size:12px; margin-top:8px; overflow-wrap:anywhere; }\n.mm-detail-body { padding:0 24px 24px; flex:1; }\n.mm-editor-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; flex-wrap:wrap; }\n.mm-editor-toolbar>.ant-select,.mm-editor-toolbar>.ant-input { flex:1; min-width:150px; }\n.mm-response-code { font-family:'SFMono-Regular',Consolas,monospace!important; font-size:12px!important; line-height:1.8!important; }\n.mm-editor-section { margin-top:24px; border-top:1px solid var(--mm-border); padding-top:16px; }\n.mm-editor-section h3 { font-size:14px; }.mm-editor-section p { color:var(--mm-muted); font-size:12px; }\n.mm-matcher { display:grid; grid-template-columns:minmax(90px,1fr) 85px minmax(80px,1fr) auto; gap:6px; margin-bottom:8px; }\n.mm-rule-fields .mm-matcher { grid-template-columns:minmax(90px,1fr) 85px minmax(80px,1fr); }\n.mm-rule-fields .mm-matcher>.ant-select:nth-last-child(2) { grid-column:1/3; }\n.mm-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }\n.mm-field-grid .ant-input-number { width:100%; }\n.mm-save-footer,.mm-save-bar { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 24px; border-top:1px solid var(--mm-border); background:var(--mm-surface); }\n.mm-save-bar { position:sticky; bottom:0; z-index:5; }\n.mm-save-bar>span { color:var(--mm-muted); font-size:12px; }\n.mm-preview-code { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; max-height:60vh; overflow:auto; color:var(--mm-text); }\n.mm-panel-empty { padding:60px 20px; text-align:center; }\n.mm-workbench-loading { padding:100px; }.mm-workbench-loading .ant-spin-container { min-height:40px; }\n.mm-table-panel { grid-column:3/-1; }\n.mm-mobile-module,.mm-back-list { display:none!important; }\n.mm-workbench.is-tree-collapsed .mm-workbench-grid { grid-template-columns:var(--list-width) 5px minmax(0,1fr); }\n.mm-workbench.is-tree-collapsed .mm-module-tree,.mm-workbench.is-tree-collapsed .mm-module-tree+.mm-separator { display:none; }\n.mm-workbench.is-tree-collapsed .mm-table-panel { grid-column:1/-1; }\n.mm-workbench.is-tree-collapsed .mm-mobile-module { display:block!important; width:100%; margin-bottom:8px; }\n.mm-workbench.is-compact .mm-request-row { padding:6px 8px; }\n@media(max-width:1100px) { .mm-workbench-grid { grid-template-columns:280px 5px minmax(0,1fr); }.mm-module-tree,.mm-module-tree+.mm-separator { display:none; }.mm-mobile-module { display:block!important; width:100%; margin-bottom:8px; }.mm-table-panel { grid-column:1/-1; }.mm-detail-body { padding:0 16px 18px; }.mm-detail-heading { padding:18px 16px 12px; } }\n@media(max-width:767px) { .mm-workbench-grid,.mm-workbench.is-tree-collapsed .mm-workbench-grid { display:block; min-height:0; }.mm-separator { display:none; }.mm-workbench-heading { padding:18px 14px; }.mm-detail-panel { display:none; }.is-mobile-detail .mm-interface-panel { display:none; }.is-mobile-detail .mm-detail-panel { display:flex; }.mm-back-list { display:inline-flex!important; }.mm-detail-heading { flex-wrap:wrap; }.mm-detail-heading>div:first-of-type { width:100%; }.mm-matcher,.mm-rule-fields .mm-matcher { grid-template-columns:1fr 90px; }.mm-matcher>.ant-input:nth-child(3) { grid-column:1; }.mm-rule-fields .mm-matcher>.ant-select:nth-last-child(2) { grid-column:auto; }.mm-field-grid { gap:10px; }.mm-save-bar { padding:12px 14px; } }\n.mm-module-row { display:flex; align-items:center; gap:6px; }.mm-module-row>.mm-module-button { flex:1; min-width:0; }.mm-module-row>.ant-switch { flex-shrink:0; }\n\n/* Bound the workspace to the viewport; each pane owns its scrolling. */\n.mm-app-workbench { height:100vh; height:100dvh; min-height:0; display:flex; flex-direction:column; overflow:hidden; }\n.mm-app-workbench .mm-app-header { flex-shrink:0; }\n.mm-app-workbench .mm-app-main-workbench { flex:1; min-height:0; width:100%; margin:0; display:flex; flex-direction:column; overflow:hidden; }\n.mm-workbench { flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden; }\n.mm-workbench-heading,.mm-workbench-alert { flex-shrink:0; }\n.mm-workbench-grid { flex:1; min-height:0; overflow:hidden; grid-template-rows:minmax(0,1fr); }\n.mm-module-tree { min-height:0; overflow-y:auto; overscroll-behavior:contain; }\n.mm-interface-panel { min-height:0; display:flex; flex-direction:column; overflow:hidden; }\n.mm-list-toolbar { flex-shrink:0; }\n.mm-request-list { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; }\n.mm-table-panel { overflow:auto; overscroll-behavior:contain; }\n.mm-table-panel .mm-list-toolbar { position:sticky; top:0; z-index:2; background:var(--mm-surface); }\n.mm-detail-panel { min-height:0; overflow:hidden; }\n.mm-detail-heading,.mm-save-bar { flex-shrink:0; }\n.mm-detail-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; }\n@media(max-width:767px) {\n .mm-workbench-grid>.mm-interface-panel,.mm-workbench-grid>.mm-detail-panel { height:100%; }\n}\n",""]);const c=i}}]);