whistle.mock-plugins 1.4.0-beta.2 → 1.4.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/VERSION.md +22 -0
- package/app/public/js/198.index.js +2 -0
- package/app/public/js/26.index.js +2 -0
- package/app/public/js/{798.index.js.LICENSE.txt → 26.index.js.LICENSE.txt} +2 -0
- package/app/public/js/367.index.js +1 -0
- package/app/public/js/481.index.js +2 -0
- package/app/public/js/574.index.js +2 -0
- package/app/public/js/602.index.js +1 -0
- package/app/public/js/682.index.js +2 -0
- package/app/public/js/682.index.js.LICENSE.txt +1 -0
- package/app/public/js/737.index.js +2 -0
- package/app/public/js/index.js +1 -1
- package/package.json +11 -2
- package/app/public/js/11.index.js +0 -2
- package/app/public/js/704.index.js +0 -2
- package/app/public/js/798.index.js +0 -2
- package/app/public/js/807.index.js +0 -2
- package/app/public/js/968.index.js +0 -2
- /package/app/public/js/{704.index.js.LICENSE.txt → 198.index.js.LICENSE.txt} +0 -0
- /package/app/public/js/{11.index.js.LICENSE.txt → 481.index.js.LICENSE.txt} +0 -0
- /package/app/public/js/{807.index.js.LICENSE.txt → 574.index.js.LICENSE.txt} +0 -0
- /package/app/public/js/{968.index.js.LICENSE.txt → 737.index.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see 682.index.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunkwhistle_mock_plugins=self.webpackChunkwhistle_mock_plugins||[]).push([[682],{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},5517:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>d,DP:()=>f});var r=n(6540),a=n(5131),o=n(867),i=n(3217);function c(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(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)?l(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 l(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 s=(0,r.createContext)(null),u=["light","dark","cyber","earth"],m=function(){var e=localStorage.getItem("theme");return u.includes(e)?e:"true"===localStorage.getItem("cyberTheme")?"cyber":"light"},p={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"}},f=function(){return(0,r.useContext)(s)};function d(e){var t=e.children,n=c((0,r.useState)(m),2),l=n[0],f=n[1];(0,r.useEffect)((function(){var e=function(){return f(m())};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}),[]);var d=p[l];(0,r.useEffect)((function(){document.body.dataset.theme=l,document.body.classList.remove("cyber-theme","earth-theme");var e={primary:d.primary,bg:d.bg,surface:d.surface,text:d.text,muted:d.muted,border:d.border,subtle:d.subtle};Object.entries(e).forEach((function(e){var t=c(e,2),n=t[0],r=t[1];return document.documentElement.style.setProperty("--mm-".concat(n),r)})),document.documentElement.style.colorScheme=["dark","cyber"].includes(l)?"dark":"light"}),[l,d]);var h=(0,r.useMemo)((function(){return{algorithm:["dark","cyber"].includes(l)?a.A.darkAlgorithm:a.A.defaultAlgorithm,token:{colorPrimary:d.primary,colorBgLayout:d.bg,colorBgContainer:d.surface,colorBgElevated:d.surface,colorText:d.text,colorTextSecondary:d.muted,colorBorder:d.border,colorBorderSecondary:d.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:d.bg,rowSelectedBg:d.subtle},Card:{headerFontSize:14},Menu:{itemSelectedBg:d.subtle}}}}),[l,d]);return(0,r.useEffect)((function(){o.Ay.config({holderRender:function(e){return r.createElement(o.Ay,{theme:h},e)}})}),[h]),r.createElement(s.Provider,{value:{currentTheme:l,setTheme:function(e){u.includes(e)&&(localStorage.setItem("theme",e),localStorage.setItem("cyberTheme",String("cyber"===e)),f(e),window.dispatchEvent(new Event("storage")))}}},r.createElement(o.Ay,{theme:h},r.createElement(i.A,null,t)))}},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 s=n(e&&e.message);return s&&"Network Error"!=s?{message:s,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},8682:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ur});var r=n(6540),a=n(2941),o=n(1372),i=n(3740),c=n(2441),l=n(462),s=n(845),u=n(8602),m=n(3200),p=n(8937),f=n(1348),d=n(4180),h=n(4625),y=n(9222),v=n(4716),g=n(7260),b=n(5095),w=n(5072),x=n.n(w),E=n(7825),A=n.n(E),k=n(7659),S=n.n(k),O=n(5056),j=n.n(O),L=n(540),N=n.n(L),C=n(1113),I=n.n(C),P=n(7827),T={};function _(e){return _="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},_(e)}function z(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return D(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)?D(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 D(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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==_(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 F(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){F(o,r,a,i,c,"next",e)}function c(e){F(o,r,a,i,c,"throw",e)}i(void 0)}))}}T.styleTagTransform=I(),T.setAttributes=j(),T.insert=S().bind(null,"head"),T.domAPI=A(),T.insertStyleElement=N(),x()(P.A,T),P.A&&P.A.locals&&P.A.locals;var G=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 J=function(e){var t=e.visible,n=e.onCancel,a=z((0,r.useState)(""),2),o=a[0],i=a[1],c=z((0,r.useState)(!1),2),l=c[0],s=c[1],u=z((0,r.useState)(null),2),m=u[0],p=u[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 s(!0),p(null),e.prev=2,e.next=5,G();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,s(!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(y.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(v.A,{size:"large"}),r.createElement("p",null,"正在加载版本信息...")),m&&r.createElement(g.A,{message:"加载失败",description:m,type:"error",showIcon:!0}),!l&&!m&&o&&r.createElement("div",{className:"version-markdown-content"},r.createElement(b.$,null,o.replace(/^#\s*🔄?\s*版本更新记录\s*\n+/,"")))))};var q=n(9924),U=n(7959),V=[{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 W(e){return W="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},W(e)}function B(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?B(Object(n),!0).forEach((function(t){Y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Y(e,t,n){return(t=function(e){var t=function(e){if("object"!=W(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=W(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==W(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const K=function(e){var t=e.visible,n=e.onClose,a=V,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(y.A,{title:"⌨️ 键盘快捷键",open:t,onCancel:n,footer:null,width:480},r.createElement(q.A,{dataSource:a.map((function(e,t){return H(H({},e),{},{id:t})})),columns:o,rowKey:"id",pagination:!1,size:"small",showHeader:!1}))};var $=n(5517),Q=n(9875),X={};function Z(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ee(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)?ee(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 ee(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}X.styleTagTransform=I(),X.setAttributes=j(),X.insert=S().bind(null,"head"),X.domAPI=A(),X.insertStyleElement=N(),x()(Q.A,X),Q.A&&Q.A.locals&&Q.A.locals;var te=[["/","功能模块",o.A],["/interface","接口工作台",i.A],["/network","抓包列表",c.A],["/sniffer","接口嗅探",l.A],["/stats","请求统计",s.A],["/settings","系统设置",u.A]];function ne(e){var t,n,o=e.children,i=Z((0,r.useState)(!1),2),c=i[0],l=i[1],s=Z((0,r.useState)(!1),2),u=s[0],y=s[1],v=(0,$.DP)(),g=v.currentTheme,b=v.setTheme,w=(0,d.zy)();return t=(0,d.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":"/network"===w.pathname?"mm-app-network":"")},r.createElement("header",{className:"mm-app-header"},r.createElement(h.k2,{exact:!0,to:"/",className:"mm-brand"},r.createElement("span",{className:"mm-brand-mark"},r.createElement(m.A,null)),r.createElement("span",null,"MockMaster",r.createElement("small",null,"API WORKSPACE"))),r.createElement("nav",{className:"mm-navigation","aria-label":"主导航"},te.map((function(e){var t=Z(e,3),n=t[0],a=t[1],o=t[2];return r.createElement(h.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(p.A,null),onClick:function(){return b("light"===g?"dark":"light")}}),r.createElement(a.Ay,{type:"text","aria-label":"快捷键帮助",icon:r.createElement(f.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.4"))),r.createElement("main",{className:"mm-app-main ".concat(w.pathname.startsWith("/interface")?"mm-app-main-workbench":"/network"===w.pathname?"mm-app-main-network":"")},o),r.createElement(J,{visible:c,onCancel:function(){return l(!1)}}),r.createElement(K,{visible:u,onCancel:function(){return y(!1)},onClose:function(){return y(!1)}}))}n(6940);var re=n(2625),ae={};ae.styleTagTransform=I(),ae.setAttributes=j(),ae.insert=S().bind(null,"head"),ae.domAPI=A(),ae.insertStyleElement=N(),x()(re.A,ae),re.A&&re.A.locals&&re.A.locals;var oe=n(6027),ie={};ie.styleTagTransform=I(),ie.setAttributes=j(),ie.insert=S().bind(null,"head"),ie.domAPI=A(),ie.insertStyleElement=N(),x()(oe.A,ie),oe.A&&oe.A.locals&&oe.A.locals;var ce=n(1847),le=n(677),se=n(1196),ue=n(7308),me=n(5895),pe=n(6914),fe=n(9957),de=n(2702),he=n(5957),ye=n(6044),ve=n(138),ge=n(385),be=n(7025),we=n(1617),xe=n(7028),Ee=n(756),Ae=n(581),ke=n(1083),Se=n(6286),Oe={};function je(e){return je="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},je(e)}function Le(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 Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Le(Object(n),!0).forEach((function(t){Ce(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ce(e,t,n){return(t=function(e){var t=function(e){if("object"!=je(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==je(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(){Ie=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==je(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(je(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 Pe(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 Te(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Pe(o,r,a,i,c,"next",e)}function c(e){Pe(o,r,a,i,c,"throw",e)}i(void 0)}))}}function _e(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ze(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)?ze(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 ze(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}Oe.styleTagTransform=I(),Oe.setAttributes=j(),Oe.insert=S().bind(null,"head"),Oe.domAPI=A(),Oe.insertStyleElement=N(),x()(Se.A,Oe),Se.A&&Se.A.locals&&Se.A.locals;var De=n(7166).getApiError,Me=ce.A.Paragraph,Fe=ce.A.Text,Re=ce.A.Title,Ge=function(e){var t=e.title,n=e.eyebrow,o=e.modules,i=e.selectedIds,c=e.onChange,l=e.emptyText,s=e.action,u=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(le.A,{className:"webdav-sync-module-card",bordered:!1},r.createElement("div",{className:"webdav-sync-module-header"},r.createElement("div",null,r.createElement(Fe,{type:"secondary",className:"webdav-sync-module-eyebrow"},n),r.createElement(Re,{level:5},t)),h),r.createElement("div",{className:"webdav-sync-select-all"},r.createElement(se.A,{checked:g,indeterminate:b,disabled:!o.length||f,onChange:function(e){return c(e.target.checked?y:[])}},"全选"),r.createElement(Fe,{type:"secondary"},"已选择 ",v," / ",o.length)),r.createElement("div",{className:"webdav-sync-module-list"},o.length?r.createElement(se.A.Group,{value:i,onChange:c,disabled:f},o.map((function(e){return r.createElement(se.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(ue.A,{image:ue.A.PRESENTED_IMAGE_SIMPLE,description:l})),r.createElement(a.Ay,{block:!0,type:"primary",className:m,icon:u,loading:p,disabled:f||!v,onClick:d},s,"(",v,")"))};const Je=function(e){var t=e.open,n=e.onClose,o=e.onPulled,i=_e(me.A.useForm(),1)[0],c=_e((0,r.useState)(null),2),l=c[0],s=c[1],u=_e((0,r.useState)(!1),2),m=u[0],p=u[1],f=_e((0,r.useState)(""),2),d=f[0],h=f[1],b=_e((0,r.useState)(""),2),w=b[0],x=b[1],E=_e((0,r.useState)([]),2),A=E[0],k=E[1],S=_e((0,r.useState)([]),2),O=S[0],j=S[1],L=function(e,t){var n=De(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]:{};s(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=Te(Ie().mark((function e(){var t,n,r;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p(!0),x(""),e.prev=2,e.next=5,ke.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,ke.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=Te(Ie().mark((function e(t){var n,r,a,o=arguments;return Ie().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,ke.A.post("/cgi-bin/webdav",Ne({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=Te(Ie().mark((function e(){var t;return Ie().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 h("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,h(""),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=Te(Ie().mark((function e(){var t,n;return Ie().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 h("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,ke.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,h(""),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=Te(Ie().mark((function e(){return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h("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,h(""),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])})));return function(){return e.apply(this,arguments)}}(),D=function(){var e=Te(Ie().mark((function e(){var t,n,r,a=arguments;return Ie().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 h("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=De(e.t0,"推送失败"),e.t0.response&&409==e.t0.response.status&&"REMOTE_NEWER"==r.conflict&&!t?y.A.confirm({title:"远端模块存在差异",content:"已选择模块的远端内容与本地不同,继续推送会覆盖远端版本。确定继续吗?",okText:"继续推送",cancelText:"取消",onOk:function(){return D(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"REMOTE_UNVERIFIABLE"==r.conflict&&!t?y.A.confirm({title:"远端服务不支持并发校验",content:"WebDAV 没有返回 ETag 或 Last-Modified,无法确认模块清单期间是否被其他设备修改。仍要覆盖吗?",okText:"强制推送",okType:"danger",cancelText:"取消",onOk:function(){return D(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"REMOTE_INVALID"==r.conflict&&!t?y.A.confirm({title:"远端模块清单已损坏",content:"继续推送会用已选择的 ".concat(n.length," 个模块创建新清单。确定继续吗?"),okText:"推送已选模块",okType:"danger",cancelText:"取消",onOk:function(){return D(!0,n)}}):L(e.t0,"推送失败");case 17:return e.prev=17,h(""),e.finish(17);case 20:case"end":return e.stop()}}),e,null,[[7,13,17,20]])})));return function(){return e.apply(this,arguments)}}(),M=function(){var e=Te(Ie().mark((function e(){var t,n,r,a=arguments;return Ie().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 h("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=De(e.t0,"拉取失败"),e.t0.response&&409==e.t0.response.status&&"LOCAL_NEWER"==r.conflict&&!t?y.A.confirm({title:"本地模块存在差异",content:"已选择模块的本地内容与远端不同,继续拉取会覆盖其中 ".concat(n.length," 个本地模块及其接口。确定继续吗?"),okText:"覆盖本地",okType:"danger",cancelText:"取消",onOk:function(){return M(!0,n)}}):e.t0.response&&409==e.t0.response.status&&"LOCAL_CHANGED"==r.conflict?y.A.warning({title:"本地模块发生变化",content:"拉取过程中检测到本地模块被修改,本次没有覆盖任何本地数据。请检查修改后重新拉取。",okText:"知道了"}):L(e.t0,"拉取失败");case 20:return e.prev=20,h(""),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[7,16,20,23]])})));return function(){return e.apply(this,arguments)}}(),F=function(){var e=Te(Ie().mark((function e(){return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h("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,h(""),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])})));return function(){return e.apply(this,arguments)}}(),R=l&&l.configured,G=!!d;return r.createElement(y.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(ve.A,null)),r.createElement("div",{className:"webdav-sync-hero-copy"},r.createElement(Fe,{className:"webdav-sync-kicker"},"WEBDAV SYNC"),r.createElement(Re,{level:3},"功能模块同步"),r.createElement(Me,null,"按模块手动推送或拉取,每个模块独立压缩保存。")),r.createElement(pe.A,{color:R?"success":"default"},R?"已连接":"尚未配置")),w&&r.createElement(g.A,{className:"webdav-sync-error",type:"error",showIcon:!0,closable:!0,message:"WebDAV 操作失败",description:w,onClose:function(){return x("")}}),r.createElement(v.A,{spinning:m},R?r.createElement("div",{className:"webdav-sync-connected"},r.createElement(le.A,{className:"webdav-sync-connection-card",bordered:!1},r.createElement(he.A,{title:"连接信息",column:{xs:1,sm:2},size:"small"},r.createElement(he.A.Item,{label:"目录地址",span:2},r.createElement(Fe,{className:"webdav-sync-break-all",code:!0},l.endpoint)),r.createElement(he.A.Item,{label:"用户名"},l.username),r.createElement(he.A.Item,{label:"模块清单"},l.remoteFileName)),r.createElement(ye.A,{title:"确定断开 WebDAV?",description:"只会清除本机连接信息,不会删除远端同步文件。",okText:"断开",cancelText:"取消",onConfirm:F},r.createElement(a.Ay,{type:"link",danger:!0,className:"webdav-sync-disconnect",icon:r.createElement(we.A,null),loading:"disconnect"==d,disabled:G&&"disconnect"!=d},"断开连接"))),r.createElement("div",{className:"webdav-sync-module-grid"},r.createElement(Ge,{eyebrow:"LOCAL MODULES",title:"本地模块",modules:l.localModules||[],selectedIds:A,onChange:k,emptyText:"暂无可推送的功能模块",action:"推送已选模块",actionIcon:r.createElement(xe.A,null),actionLoading:"push"==d,disabled:G,onAction:function(){return D(!1)}}),r.createElement(Ge,{eyebrow:"REMOTE MODULES",title:"远端模块",modules:l.remoteModules||[],selectedIds:O,onChange:j,emptyText:l.remoteFileInvalid?"远端模块清单已损坏":"远端暂无模块,请先推送或刷新",action:"拉取已选模块",actionIcon:r.createElement(Ee.A,null),actionClassName:"webdav-sync-pull-button",actionLoading:"pull"==d,disabled:G,onAction:function(){return M(!1)},extra:r.createElement(a.Ay,{shape:"circle",icon:r.createElement(Ae.A,null),loading:"refresh"==d,disabled:G&&"refresh"!=d,onClick:z,"aria-label":"刷新远端模块"})})),r.createElement(g.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(le.A,{className:"webdav-sync-card",bordered:!1},r.createElement(me.A,{form:i,layout:"vertical",requiredMark:!1},r.createElement(me.A.Item,{name:"endpoint",label:"WebDAV 专用目录",rules:[{required:!0,message:"请输入 WebDAV 目录地址"}],extra:"只填写目录,不包含 JSON 文件名;末尾斜杠会自动补齐。"},r.createElement(fe.A,{prefix:r.createElement(ge.A,null),placeholder:"https://webdav.example.com/webdav/whistle-mock-plugin-sync/"})),r.createElement("div",{className:"webdav-sync-form-row"},r.createElement(me.A.Item,{name:"username",label:"用户名",rules:[{required:!0,message:"请输入 WebDAV 用户名"}]},r.createElement(fe.A,{autoComplete:"username"})),r.createElement(me.A.Item,{name:"password",label:"密码",rules:[{required:!0,message:"请输入 WebDAV 密码"}]},r.createElement(fe.A.Password,{autoComplete:"current-password"}))),r.createElement(de.A,{className:"webdav-sync-form-actions"},r.createElement(a.Ay,{icon:r.createElement(be.A,null),loading:"test"==d,disabled:G&&"test"!=d,onClick:T},"测试连接"),r.createElement(a.Ay,{type:"primary",icon:r.createElement(ve.A,null),loading:"connect"==d,disabled:G&&"connect"!=d,onClick:_},"保存连接")))),r.createElement(le.A,{className:"webdav-sync-note",bordered:!1},r.createElement(be.A,{className:"webdav-sync-note-icon"}),r.createElement(Re,{level:5},"凭据只留在本机"),r.createElement(Me,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),Ue=n(2609),Ve=n(2120),We=n(7977),Be=n(5739),He=n(7152),Ye=n(6729),Ke=n(261),$e=n(1952),Qe=n(3598),Xe=n(9237),Ze=n(3146),et=n(6704),tt=n(8940),nt={};nt.styleTagTransform=I(),nt.setAttributes=j(),nt.insert=S().bind(null,"head"),nt.domAPI=A(),nt.insertStyleElement=N(),x()(tt.A,nt),tt.A&&tt.A.locals&&tt.A.locals;var rt=n(7004);function at(e){return at="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},at(e)}function ot(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ut(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 it(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 ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?it(Object(n),!0).forEach((function(t){lt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):it(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lt(e,t,n){return(t=function(e){var t=function(e){if("object"!=at(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=at(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==at(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function st(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||ut(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 ut(e,t){if(e){if("string"==typeof e)return mt(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)?mt(e,t):void 0}}function mt(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 pt(){pt=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==at(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(at(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 ft(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 dt(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){ft(o,r,a,i,c,"next",e)}function c(e){ft(o,r,a,i,c,"throw",e)}i(void 0)}))}}var ht=ce.A.Text,yt=(ce.A.Title,ce.A.Paragraph),vt=fe.A.TextArea,gt=function(){var e=dt(pt().mark((function e(){var t;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ke.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 bt=function(){var e=(0,d.W6)(),t=st((0,r.useState)([]),2),n=t[0],c=t[1],l=st((0,r.useState)(!1),2),s=l[0],u=l[1],m=st((0,r.useState)(null),2),p=m[0],f=m[1],g=st((0,r.useState)(!1),2),b=g[0],w=g[1],x=st((0,r.useState)([]),2),E=x[0],A=x[1],k=st((0,r.useState)(!1),2),S=k[0],O=k[1],j=st((0,r.useState)(""),2),L=j[0],N=j[1],C=st((0,r.useState)(""),2),I=C[0],P=C[1],T=st((0,r.useState)(!1),2),_=T[0],z=T[1],D=st((0,r.useState)(!1),2),M=D[0],F=D[1],R=st((0,r.useState)(!0),2),G=R[0],J=R[1],V=st(me.A.useForm(),1)[0],W=st((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),B=W[0],H=W[1],Y=function(e){var t=ct(ct({},B),e);H(t),localStorage.setItem("feature-list-config",JSON.stringify(t))};(0,r.useEffect)((function(){Q(),K()}),[]);var K=function(){var e=dt(pt().mark((function e(){var t;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ke.A.get("/cgi-bin/settings");case 3:t=e.sent,z(1==t.data.webDavSyncEnabled),e.next=11;break;case 7:e.prev=7,e.t0=e.catch(0),console.error("读取 WebDAV 同步设置失败:",e.t0),z(!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(){s&&te()},t=function(){X()};return window.addEventListener("shortcut-save",e),window.addEventListener("shortcut-new-interface",t),function(){window.removeEventListener("shortcut-save",e),window.removeEventListener("shortcut-new-interface",t)}}),[s]);var $,Q=function(){var e=dt(pt().mark((function e(){var t,n;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,J(!0),P(""),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),P(n.message||"获取模块失败")),e.next=16;break;case 12:e.prev=12,e.t0=e.catch(0),console.error("获取功能模块错误:",e.t0),P("获取功能模块失败,请检查网络连接");case 16:return e.prev=16,J(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[0,12,16,19]])})));return function(){return e.apply(this,arguments)}}(),X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e?(f(e),V.setFieldsValue({name:e.name,description:e.description,active:!1!==e.active})):(f(null),V.resetFields(),V.setFieldsValue({active:!0})),u(!0)},Z=function(){u(!1)},ee=function(){var e=dt(pt().mark((function e(){return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,gt();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)}}(),te=function(){var e=dt(pt().mark((function e(t){var n,r,a;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=ct({},t),p&&(n.id=p.id),J(!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?"功能模块更新成功":"功能模块创建成功"),Q(),Z(),ee()):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,J(!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)}}(),ne=function(){var e=dt(pt().mark((function e(t,r){var a,o;return pt().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?ct(ct({},e),{},{active:!r}):e}))),ee()):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)}}(),re=function(){var e=dt(pt().mark((function e(t){return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:y.A.confirm({title:"确定要删除此功能吗?",content:"这将删除所有相关的接口和模拟数据,此操作无法恢复。",okText:"删除",okType:"danger",cancelText:"取消",onOk:function(){var e=dt(pt().mark((function e(){var r,a;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,J(!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}))),ee()):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,J(!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)}}(),ae=function(t){localStorage.setItem("selectedFeatureId",t.id),e.push("/interface/".concat(t.id))},oe=function(){var e=dt(pt().mark((function e(t){var n,r,a,o,i,c,l;return pt().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=ct(ct({},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)}}(),ie=function(){var e=dt(pt().mark((function e(){var t,r,a,o,i,c,l,s,u,m,p,f,d;return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==E.length){e.next=3;break}return U.Ay.warning("请至少选择一个功能模块"),e.abrupt("return");case 3:e.prev=3,O(!0),t=n.filter((function(e){return E.includes(e.id)})),r=[],a=ot(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(ct(ct({},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:s=1===r.length?r[0]:r,u=JSON.stringify(s,null,2),m=new Blob([u],{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," 个功能模块")),w(!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,O(!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)}}(),ce=function(){var e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=function(){var e=dt(pt().mark((function e(t){var n,r;return pt().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=dt(pt().mark((function e(t){var n,r,a,o,i,c,l,s,u,m,p,f,d,h,y,v,g,b,w;return pt().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,s=ot(a),e.prev=13,s.s();case 15:if((u=s.n()).done){e.next=67;break}return m=u.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=ot(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=ct(ct({},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),s.e(e.t3);case 72:return e.prev=72,s.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}),Q(),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()},pe=function(e){Y({viewMode:e,current:1})},he=function(){return n.filter((function(e){return"".concat(e.name," ").concat(e.description||"").toLowerCase().includes(L.toLowerCase())})).sort((function(e,t){var n,r;switch(B.sortBy){case"name":return n=e.name||"",r=t.name||"","ascend"===B.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"===B.sortOrder?n-r:r-n;case"interfaceCount":return n=e.interfaceCount||0,r=t.interfaceCount||0,"ascend"===B.sortOrder?n-r:r-n;case"active":return n=e.active?1:0,r=t.active?1:0,"ascend"===B.sortOrder?n-r:r-n;default:return 0}}))},ye=function(){var e=he(),t=(B.current-1)*B.pageSize,n=t+B.pageSize;return e.slice(t,n)};return r.createElement(r.Fragment,null,r.createElement("div",{className:"page-container"},r.createElement(rt.A,{kicker:"MODULES",title:"功能模块",description:"按业务组织接口,集中管理配置与启用状态。",actions:r.createElement("div",{className:"page-actions"},r.createElement(a.Ay,{type:"primary",icon:r.createElement(Xe.A,null),onClick:function(){return X()}},"新建功能"),r.createElement(a.Ay,{type:"default",icon:r.createElement(Ze.A,null),onClick:ce},"导入功能"),r.createElement(a.Ay,{type:"default",icon:r.createElement($e.A,null),onClick:function(){0!==n.length?(A(n.map((function(e){return e.id}))),w(!0)):U.Ay.warning("暂无可导出的功能模块")},disabled:0===n.length},"导出功能"),_&&r.createElement(a.Ay,{type:"default",icon:r.createElement(ve.A,null),onClick:function(){return F(!0)}},"WebDAV"))}),r.createElement("div",{className:"mm-module-search"},r.createElement(fe.A.Search,{placeholder:"搜索模块名称或说明",value:L,allowClear:!0,onChange:function(e){N(e.target.value),Y({current:1})},style:{maxWidth:360}})),I&&r.createElement("div",{role:"alert",className:"mm-error"},r.createElement("span",null,I)," ",r.createElement(a.Ay,{onClick:Q},"重试")),r.createElement("div",{className:"mm-module-toolbar"},r.createElement(de.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(de.A,{wrap:!0},r.createElement(Be.A,{"aria-label":"模块排序",value:B.sortBy,onChange:function(e){Y({sortBy:e,current:1})},style:{width:120},options:[{value:"name",label:"按名称"},{value:"createdAt",label:"按创建时间"},{value:"interfaceCount",label:"按接口数"},{value:"active",label:"按状态"}]}),r.createElement(Be.A,{"aria-label":"排序方向",value:B.sortOrder,onChange:function(e){Y({sortOrder:e,current:1})},style:{width:85},options:[{value:"ascend",label:"升序"},{value:"descend",label:"降序"}]}),r.createElement(a.Ay,{"aria-label":"卡片视图",type:"card"===B.viewMode?"primary":"default",icon:r.createElement(o.A,null),onClick:function(){return pe("card")}}),r.createElement(a.Ay,{"aria-label":"列表视图",type:"list"===B.viewMode?"primary":"default",icon:r.createElement(et.A,null),onClick:function(){return pe("list")}}))),r.createElement(le.A,{className:"feature-list-card"},G?r.createElement("div",{className:"loading-state"},r.createElement(v.A,{size:"large"}),r.createElement("div",{className:"loading-text"},"正在加载功能模块...")):he().length>0?r.createElement(r.Fragment,null,"card"===B.viewMode?r.createElement(He.A,{gutter:[20,20],className:"feature-grid"},ye().map((function(e){return function(e){return r.createElement(qe.A,{xs:24,sm:12,xl:8,key:e.id},r.createElement(le.A,{className:"mm-module-card"},r.createElement("div",{className:"mm-module-card-header"},r.createElement(h.N_,{className:"mm-module-card-link",to:"/interface/".concat(e.id),"aria-label":"查看 ".concat(e.name," 的接口"),title:e.description||e.name,onClick:function(){return localStorage.setItem("selectedFeatureId",e.id)}},e.name),r.createElement(Ue.A,{"aria-label":"启用模块 ".concat(e.name),checked:!1!==e.active,onChange:function(){return ne(e.id,e.active)},size:"small"})),r.createElement(yt,{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(de.A,{className:"mm-module-card-actions"},r.createElement(a.Ay,{type:"text",size:"small","aria-label":"编辑 ".concat(e.name),icon:r.createElement(Ke.A,null),onClick:function(){return X(e)}}),r.createElement(a.Ay,{type:"text",size:"small","aria-label":"导出 ".concat(e.name),icon:r.createElement($e.A,null),onClick:function(){return oe(e)}}),r.createElement(a.Ay,{type:"text",size:"small",danger:!0,"aria-label":"删除 ".concat(e.name),icon:r.createElement(Qe.A,null),onClick:function(){return re(e.id)}})))))}(e)}))):($=[{title:"状态",dataIndex:"active",key:"active",width:100,render:function(e,t){return r.createElement(Ue.A,{checked:e,onChange:function(n,r){r.stopPropagation(),ne(t.id,e)},checkedChildren:"启用",unCheckedChildren:"禁用"})}},{title:"功能名称",dataIndex:"name",key:"name",ellipsis:{tooltip:!0},render:function(e){return r.createElement(ht,{strong:!0,style:{fontSize:"14px"}},e)}},{title:"功能描述",dataIndex:"description",key:"description",ellipsis:{tooltip:!0},render:function(e){return r.createElement(ht,{type:"secondary"},e||"无描述")}},{title:"接口数量",dataIndex:"interfaceCount",key:"interfaceCount",width:100,align:"center",render:function(e){return r.createElement(Ve.A,{count:e||0,showZero:!0,style:{backgroundColor:"#1677ff"}})}},{title:"创建时间",dataIndex:"createdAt",key:"createdAt",width:120,render:function(e){return r.createElement(ht,{type:"secondary"},e?new Date(e).toLocaleDateString():"未知日期")}},{title:"操作",key:"action",width:200,fixed:"right",render:function(e,t){return r.createElement(de.A,{size:"small"},r.createElement(We.A,{title:"管理接口"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement(i.A,null),onClick:function(e){e.stopPropagation(),ae(t)}},"接口")),r.createElement(We.A,{title:"编辑"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement(Ke.A,null),onClick:function(e){e.stopPropagation(),X(t)}})),r.createElement(We.A,{title:"导出"},r.createElement(a.Ay,{type:"link",size:"small",icon:r.createElement($e.A,null),onClick:function(e){e.stopPropagation(),oe(t)}})),r.createElement(We.A,{title:"删除"},r.createElement(a.Ay,{type:"link",size:"small",danger:!0,icon:r.createElement(Qe.A,null),onClick:function(e){e.stopPropagation(),re(t.id)}})))}}],r.createElement(q.A,{columns:$,dataSource:ye(),scroll:{x:760},rowKey:"id",pagination:!1,onRow:function(e){return{onClick:function(t){t.target.closest("button, a, input")||ae(e)},style:{cursor:"pointer"}}},rowClassName:function(e){return e.active?"":"inactive-row"}})),he().length>0&&r.createElement("div",{className:"pagination-wrapper"},r.createElement(Ye.A,{current:B.current,pageSize:B.pageSize,total:he().length,onChange:function(e,t){Y({current:e,pageSize:t})},onShowSizeChange:function(e,t){Y({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(ue.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(Xe.A,null),onClick:function(){return X()}},"创建新功能"),r.createElement(a.Ay,{icon:r.createElement($e.A,null),onClick:ce},"导入功能"))))),r.createElement(y.A,{title:p?"编辑功能":"新建功能",open:s,onCancel:Z,footer:null,destroyOnClose:!0,width:500},r.createElement(me.A,{form:V,layout:"vertical",onFinish:te,initialValues:{name:"",description:"",active:!0}},r.createElement(me.A.Item,{name:"name",label:"功能名称",rules:[{required:!0,message:"请输入功能名称"}]},r.createElement(fe.A,{placeholder:"请输入功能名称"})),r.createElement(me.A.Item,{name:"description",label:"功能描述"},r.createElement(vt,{placeholder:"请输入功能描述(可选)",autoSize:{minRows:3,maxRows:6}})),r.createElement("div",{className:"form-actions"},r.createElement(a.Ay,{onClick:Z},"取消"),r.createElement(a.Ay,{type:"primary",htmlType:"submit",loading:G},"确定")))),r.createElement(y.A,{title:"导出功能",open:b,onCancel:function(){return w(!1)},footer:null,destroyOnClose:!0,width:520},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12}},r.createElement(se.A,{indeterminate:E.length>0&&E.length<n.length,checked:n.length>0&&E.length===n.length,onChange:function(e){return A(e.target.checked?n.map((function(e){return e.id})):[])}},"全选"),r.createElement(ht,{type:"secondary"},"已选择 ",E.length," / ",n.length)),r.createElement("div",{style:{maxHeight:360,overflowY:"auto",border:"1px solid #f0f0f0",borderRadius:8,padding:"4px 12px"}},r.createElement(se.A.Group,{value:E,onChange:function(e){return A(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(se.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 w(!1)}},"取消"),r.createElement(a.Ay,{type:"primary",loading:S,disabled:0===E.length,onClick:ie},"导出 (",E.length,")"))),r.createElement(Je,{open:M,onClose:function(){return F(!1)},onPulled:dt(pt().mark((function e(){return pt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Q();case 2:return e.next=4,ee();case 4:case"end":return e.stop()}}),e)})))}))};var wt=n(3217),xt=n(7745),Et=n(8603),At=n(8073),kt=n(696),St=n(3341),Ot=n(6207),jt=n(7046),Lt=n(1656),Nt=n(5163),Ct=n(1315),It=n.n(Ct);function Pt(e){return Pt="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},Pt(e)}function Tt(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 _t(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 zt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_t(Object(n),!0).forEach((function(t){Dt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Dt(e,t,n){return(t=function(e){var t=function(e){if("object"!=Pt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Pt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Pt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mt(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?zt(zt({},n),{},Dt({},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(fe.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(Be.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(fe.A,{"aria-label":"条件 ".concat(t+1," 期望值"),placeholder:"期望值",value:e.paramValue,onChange:function(e){return c(t,"paramValue",e.target.value)}}),i&&r.createElement(Be.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(Qe.A,null),onClick:function(){return o(n.filter((function(e,n){return n!==t})))}}))})),r.createElement(a.Ay,{type:"dashed",icon:r.createElement(Xe.A,null),onClick:function(){return o([].concat(function(e){if(Array.isArray(e))return Tt(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 Tt(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)?Tt(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 Ft=n(4807);function Rt(e){return Rt="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},Rt(e)}function Gt(){Gt=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==Rt(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(Rt(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 Jt(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 qt(e){return function(e){if(Array.isArray(e))return Yt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ht(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 Ut(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 Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ut(Object(n),!0).forEach((function(t){Wt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ut(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Wt(e,t,n){return(t=function(e){var t=function(e){if("object"!=Rt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Rt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Rt(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,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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||Ht(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 Ht(e,t){if(e){if("string"==typeof e)return Yt(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)?Yt(e,t):void 0}}function Yt(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 Kt=(0,r.lazy)((function(){return Promise.all([n.e(602),n.e(367)]).then(n.bind(n,4367))}));function $t(e){var t,n=e.responses,o=e.activeResponseId,i=e.onChange,c=e.onDefaultChange,l=e.onActivateResponse,s=e.savedResponseIds,u=void 0===s?[]:s,m=e.contentType,p=void 0===m?"application/json":m,f=e.disabled,d=void 0!==f&&f,h=e.matchersEnabled,v=void 0===h||h,b=Bt((0,r.useState)(o),2),w=b[0],x=b[1];(0,r.useEffect)((function(){x(o)}),[o]);var E=Bt((0,r.useState)(null),2),A=E[0],k=E[1],S=n.find((function(e){return e.id===w}))||n.find((function(e){return e.id===o}))||n[0],O=Bt((0,r.useState)(!1),2),j=O[0],L=O[1];(0,r.useEffect)((function(){L(!!S&&!u.includes(S.id)),k(null)}),[null==S?void 0:S.id]);var N=S?n.findIndex((function(e){return e.id===S.id})):-1,C=function(e){return i(n.map((function(t){return t.id===S.id?Vt(Vt({},t),e):t})))},I=null;if(S&&p.includes("json"))try{JSON.parse(S.content)}catch(e){I=e.message}var P=function(e){var t,r=Vt(Vt({},e||{}),{},{id:(0,Ft.createId)(),name:e?"".concat(e.name," - 副本"):"响应 ".concat(n.length+1),content:null!==(t=null==e?void 0:e.content)&&void 0!==t?t:'{\n "code": 0,\n "data": {}\n}',paramMatchers:null!=e&&e.paramMatchers?JSON.parse(JSON.stringify(e.paramMatchers)):[]});i([].concat(qt(n),[r])),x(r.id),n.length||c(r.id)},T=function(e){var t=qt(n),r=[t[N+e],t[N]];t[N]=r[0],t[N+e]=r[1],i(t)},_=function(){var e,t=(e=Gt().mark((function e(){return Gt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.clipboard.writeText(S.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){Jt(o,r,a,i,c,"next",e)}function c(e){Jt(o,r,a,i,c,"throw",e)}i(void 0)}))});return function(){return t.apply(this,arguments)}}();return r.createElement("div",{className:"mm-response-editor"},r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(Be.A,{"aria-label":"切换响应并启用",value:null==S?void 0:S.id,onChange:function(e){u.includes(e)&&l?l(e):(x(e),c(e))},options:n.map((function(e){return{value:e.id,label:"".concat(e.name).concat(e.id===o?" · 默认":"").concat(u.includes(e.id)?"":" · 未保存")}}))}),r.createElement(de.A,{wrap:!0},r.createElement(a.Ay,{icon:r.createElement(Xe.A,null),onClick:function(){return P()}},"新增"),r.createElement(a.Ay,{icon:r.createElement(jt.A,null),disabled:!S,onClick:function(){return P(S)}},"复制"))),r.createElement(ce.A.Text,{type:"secondary"},"选择已保存响应即切换默认并生效;新增响应需保存。条件匹配可能选择其他响应。"),S?r.createElement(r.Fragment,null,r.createElement("div",{className:"mm-response-settings"},r.createElement(kt.A,{className:"mm-config-sections",activeKey:j?["settings"]:[],onChange:function(e){return L(e.includes("settings"))},items:[{key:"settings",label:r.createElement("span",{className:"mm-section-label"},r.createElement("strong",null,"响应设置"),r.createElement("span",null,"名称、说明、排序 · ",(null===(t=S.paramMatchers)||void 0===t?void 0:t.length)||0," 个匹配条件",v?"":"(条件匹配已关闭)")),children:r.createElement(r.Fragment,null," ",r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(fe.A,{"aria-label":"响应名称",value:S.name,onChange:function(e){return C({name:e.target.value})}}),r.createElement(de.A,{wrap:!0},r.createElement(a.Ay,{disabled:N<=0,"aria-label":"响应上移",icon:r.createElement(Lt.A,null),onClick:function(){return T(-1)}}),r.createElement(a.Ay,{disabled:N>=n.length-1,"aria-label":"响应下移",icon:r.createElement(Nt.A,null),onClick:function(){return T(1)}}),r.createElement(ye.A,{title:S.id===o?"删除后第一个响应将作为默认响应,保存后生效。":"删除此响应?保存后生效。",onConfirm:function(){var e=n.filter((function(e){return e.id!==S.id}));i(e),S.id===o&&c(e[0].id),x(e[0].id)}},r.createElement(a.Ay,{danger:!0,disabled:n.length<=1,"aria-label":"删除响应",icon:r.createElement(Qe.A,null)})))),r.createElement(fe.A,{"aria-label":"响应说明",placeholder:"响应说明(可选)",value:S.description||"",onChange:function(e){return C({description:e.target.value})}}),v&&r.createElement("section",{className:"mm-editor-section"},r.createElement("h3",null,"响应入参匹配"),r.createElement("p",null,"全部条件满足时返回此响应;按响应顺序检查。"),r.createElement(Mt,{value:S.paramMatchers||[],onChange:function(e){return C({paramMatchers:e})}})))}]})),r.createElement("div",{className:"mm-editor-toolbar"},r.createElement(ce.A.Text,{type:"secondary"},p.includes("json")?"JSON / Mock.js 模板":"纯文本内容"),r.createElement(de.A,{wrap:!0},p.includes("json")&&r.createElement(a.Ay,{size:"small",onClick:function(){try{C({content:JSON.stringify(JSON.parse(S.content),null,2)})}catch(e){U.Ay.error("JSON 格式有误:".concat(e.message))}}},"格式化"),r.createElement(a.Ay,{size:"small",onClick:_},"复制内容"),r.createElement(a.Ay,{size:"small","aria-label":"预览响应",onClick:function(){try{k(p.includes("json")?JSON.stringify(It().mock(JSON.parse(S.content)),null,2):S.content)}catch(e){U.Ay.error(e.message)}}},"预览"))),r.createElement(r.Suspense,{fallback:r.createElement("div",{role:"status",style:{minHeight:180,padding:16}},"正在加载代码编辑器…")},r.createElement(Kt,{key:S.id,value:S.content,onChange:function(e){return C({content:e})},isJSON:p.includes("json"),disabled:d})),I&&r.createElement(g.A,{className:"mm-error",type:"error",showIcon:!0,message:"JSON 语法错误",description:I})):r.createElement(a.Ay,{onClick:function(){return P()}},"创建第一个响应"),r.createElement(y.A,{title:"响应预览",width:800,open:null!==A,onCancel:function(){return k(null)},footer:null},r.createElement("pre",{className:"mm-preview-code"},A)))}var Qt=[{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"}],Xt=[{value:"response",label:"模拟响应"},{value:"redirect",label:"重定向"},{value:"url_redirect",label:"URL重定向"}],Zt=[{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"}],en=n(4677),tn=n(9916),nn={};function rn(){rn=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==mn(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 an(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 on(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){an(o,r,a,i,c,"next",e)}function c(e){an(o,r,a,i,c,"throw",e)}i(void 0)}))}}function cn(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 ln(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?cn(Object(n),!0).forEach((function(t){sn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function sn(e,t,n){return(t=function(e){var t=function(e){if("object"!=mn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=mn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==mn(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function un(e){return function(e){if(Array.isArray(e))return dn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||fn(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 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)}function pn(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||fn(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 fn(e,t){if(e){if("string"==typeof e)return dn(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)?dn(e,t):void 0}}function dn(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}nn.styleTagTransform=I(),nn.setAttributes=j(),nn.insert=S().bind(null,"head"),nn.domAPI=A(),nn.insertStyleElement=N(),x()(tn.A,nn),tn.A&&tn.A.locals&&tn.A.locals;var hn=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 yn(e){var t=e.value,n=void 0===t?{}:t,a=e.onChange,o=pn((0,r.useState)(JSON.stringify(n,null,2)),2),i=o[0],c=o[1],l=pn((0,r.useState)(""),2),s=l[0],u=l[1];return r.createElement(r.Fragment,null,r.createElement(fe.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"!==mn(t)||Object.values(t).some((function(e){return"string"!=typeof e})))throw new Error("Headers 必须是字符串值的 JSON 对象");u(""),a(t,!1)}catch(e){u(e.message),a(n,!0)}}}),s&&r.createElement(g.A,{type:"error",message:s}))}function vn(){var e,t,n=(0,d.g)().featureId,i=(0,d.W6)(),c=wt.A.useApp(),l=c.message,s=c.modal,m=pn((0,r.useState)([]),2),p=m[0],f=m[1],h=pn((0,r.useState)([]),2),y=h[0],b=h[1],w=pn((0,r.useState)(null),2),x=w[0],E=w[1],A=pn((0,r.useState)(!0),2),k=A[0],S=A[1],O=pn((0,r.useState)(!1),2),j=O[0],L=O[1],N=pn((0,r.useState)(""),2),C=N[0],I=N[1],P=pn((0,r.useState)(""),2),T=P[0],_=P[1],z=pn((0,r.useState)(null),2),D=z[0],M=z[1],F=pn((0,r.useState)([]),2),R=F[0],G=F[1],J=pn((0,r.useState)(null),2),U=J[0],V=J[1],W=pn((0,r.useState)(""),2),B=W[0],H=W[1],Y=pn((0,r.useState)(!1),2),K=Y[0],$=Y[1],Q=pn((0,r.useState)(!1),2),X=Q[0],Z=Q[1],ee=pn((0,r.useState)(!1),2),te=ee[0],ne=ee[1],re=pn((0,r.useState)(0),2),ae=re[0],oe=re[1],ie=pn((0,r.useState)([]),2),le=ie[0],he=ie[1],ve=pn((0,r.useState)(!1),2),ge=ve[0],be=ve[1],we=pn((0,r.useState)((function(){return"table"===localStorage.getItem("mm-interface-view")})),2),xe=we[0],Ee=we[1],Se=pn((0,r.useState)((function(){try{return JSON.parse(localStorage.getItem("mm-hidden-columns")||"[]")}catch(e){return[]}})),2),Oe=Se[0],je=Se[1],Le=pn((0,r.useState)((function(){return"true"===localStorage.getItem("mm-tree-collapsed")})),2),Ne=Le[0],Ce=Le[1],Ie=pn((0,r.useState)(hn),2),Pe=Ie[0],Te=Ie[1],_e=pn((0,r.useState)((function(){return"compact"===localStorage.getItem("mm-list-density")})),2),ze=_e[0],De=_e[1],Me=pn((0,r.useState)({interfaceParamMatcherEnabled:!0,responseParamMatcherEnabled:!0}),2),Fe=Me[0],Re=Me[1],Ge=(0,r.useRef)(null),Je=(0,r.useRef)(0),qe=(0,r.useRef)(!1),Ve=(0,r.useRef)(null),We=null!==U&&(JSON.stringify(U)!==B||te),He=p.find((function(e){return e.id===x})),Ye=(0,r.useMemo)((function(){return(0,Ft.filterInterfaces)(y,T,D)}),[y,T,D]),Ke=un(new Set(y.map((function(e){return e.group})).filter(Boolean))).sort();(0,r.useEffect)((function(){n&&n!==x&&p.some((function(e){return e.id===n}))&&(E(n),V(null),M(null),_(""))}),[n]),(0,r.useEffect)((function(){var e=new URLSearchParams(i.location.search).get("interfaceId");e&&!U&&y.some((function(t){return t.id===e}))&&Ze(y.find((function(t){return t.id===e})))}),[y]);var $e=function(e){return V((function(t){return ln(ln({},t),e)}))},Ze=function(e){var t=(0,Ft.normalizeInterface)(e,x);V(t),H(JSON.stringify(t)),ne(!1),oe((function(e){return e+1})),he(t.id&&"response"===t.proxyType?[]:["request"]),be(!0)},et=function(e){K||X||(We?qe.current||(qe.current=!0,s.confirm({title:"有未保存的修改",content:"离开将丢弃当前草稿。也可以取消并先保存。",okText:"丢弃修改",cancelText:"继续编辑",onOk:function(){qe.current=!1,U&&(V(JSON.parse(B)),ne(!1),oe((function(e){return e+1}))),e()},onCancel:function(){qe.current=!1}})):e())},tt=(0,r.useCallback)(on(rn().mark((function e(){var t,r,a,o,i,c;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return S(!0),I(""),e.prev=2,e.next=5,ke.A.get("/cgi-bin/features");case 5:if(r=e.sent,0===(a=r.data).code){e.next=9;break}throw new Error(a.message);case 9:f(a.data||[]),o=a.data||[],i=n||localStorage.getItem("selectedFeatureId"),E(o.some((function(e){return e.id===i}))?i:(null===(t=o[0])||void 0===t?void 0:t.id)||null),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(2),I((null===(c=e.t0.response)||void 0===c||null===(c=c.data)||void 0===c?void 0:c.message)||e.t0.message);case 18:return e.prev=18,S(!1),e.finish(18);case 21:case"end":return e.stop()}}),e,null,[[2,15,18,21]])}))),[]),nt=(0,r.useCallback)(function(){var e=on(rn().mark((function e(t){var n,r,a,o;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=3;break}return b([]),e.abrupt("return");case 3:return n=++Je.current,L(!0),I(""),e.prev=6,e.next=9,ke.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===Je.current&&(b(a.data||[]),f((function(e){return e.map((function(e){return e.id===t?ln(ln({},e),{},{interfaceCount:(a.data||[]).length}):e}))}))),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(6),n===Je.current&&I((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===Je.current&&L(!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(){tt(),ke.A.get("/cgi-bin/settings").then((function(e){var t=e.data;return Re(t)})).catch((function(){}))}),[tt]),(0,r.useEffect)((function(){nt(x)}),[x,nt]),(0,r.useEffect)((function(){G((function(e){return(0,Ft.visibleSelection)(e,Ye)}))}),[Ye]),(0,r.useEffect)((function(){if(We||K){var e=function(e){e.preventDefault(),e.returnValue=""};window.addEventListener("beforeunload",e);var t=i.block((function(e,n){return K||qe.current||(qe.current=!0,s.confirm({title:"有未保存的修改",content:"离开页面将丢弃草稿。",okText:"丢弃并离开",cancelText:"继续编辑",onOk:function(){qe.current=!1,t(),i["REPLACE"===n?"replace":"push"](e)},onCancel:function(){qe.current=!1}})),!1}));return function(){t(),window.removeEventListener("beforeunload",e)}}}),[We,K,i,s]);var at=function(e){return et((function(){E(e),localStorage.setItem("selectedFeatureId",e),M(null),_(""),V(null),G([]),b([]),be(!1)}))},ot=function(){return et((function(){x?Ze({}):l.warning("请先创建功能模块")}))},it=function(){var e=on(rn().mark((function e(){var t,n,r,a,o,i;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U&&!K&&!X){e.next=2;break}return e.abrupt("return");case 2:if(!(t=(0,Ft.validateDraft)(U))&&!te){e.next=6;break}return l.error(t||"请修正 Headers 格式"),e.abrupt("return");case 6:if(n=ln(ln({},U),{},{httpStatus:Number(U.httpStatus),responseDelay:Number(U.responseDelay)}),$(!0),e.prev=8,!n.id){e.next=15;break}return e.next=12,ke.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,ke.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,Ft.normalizeInterface)(ln(ln({},n),a.data),x),V(o),H(JSON.stringify(o)),l.success("接口已保存"),e.next=28,nt(x);case 28:return e.next=30,(0,en.N8)();case 30:e.next=35;break;case 32:e.prev=32,e.t1=e.catch(8),l.error((null===(i=e.t1.response)||void 0===i||null===(i=i.data)||void 0===i?void 0:i.message)||e.t1.message||"保存失败,草稿已保留");case 35:return e.prev=35,$(!1),e.finish(35);case 38:case"end":return e.stop()}}),e,null,[[8,32,35,38]])})));return function(){return e.apply(this,arguments)}}();Ve.current=it,(0,r.useEffect)((function(){var e=function(){var e;return null===(e=Ve.current)||void 0===e?void 0:e.call(Ve)},t=function(){var e;return null===(e=Ge.current)||void 0===e?void 0:e.focus()},n=function(){return ot()};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)}}),[We,K,x]);var ct=function(){var e=on(rn().mark((function e(t,n){var r,a,o,i;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Z(!0),e.prev=1,e.next=4,ke.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 b((function(e){return e.map((function(e){return e.id===t.id?ln(ln({},e),n):e}))})),(null==U?void 0:U.id)===t.id&&(o=(0,Ft.normalizeInterface)(ln(ln({},t),n),x),V(o),H(JSON.stringify(o)),oe((function(e){return e+1}))),e.next=12,(0,en.N8)();case 12:return e.abrupt("return",!0);case 15:return e.prev=15,e.t0=e.catch(1),l.error((null===(i=e.t0.response)||void 0===i||null===(i=i.data)||void 0===i?void 0:i.message)||e.t0.message),e.abrupt("return",!1);case 19:return e.prev=19,Z(!1),e.finish(19);case 22:case"end":return e.stop()}}),e,null,[[1,15,19,22]])})));return function(t,n){return e.apply(this,arguments)}}(),lt=function(){var e=on(rn().mark((function e(t){var n,r,a,o;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=(0,Ft.visibleSelection)(R,Ye)).length){e.next=3;break}return e.abrupt("return");case 3:return Z(!0),e.next=6,Promise.allSettled(n.map((function(e){return ke.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,nt(x);case 10:return null!=U&&U.id&&n.includes(U.id)&&!a.includes(U.id)&&(o=(0,Ft.normalizeInterface)(ln(ln({},JSON.parse(B)),{},{active:t}),x),V(o),H(JSON.stringify(o))),G(a),Z(!1),e.next=15,(0,en.N8)();case 15:a.length?l.warning("".concat(n.length-a.length," 项成功,").concat(a.length," 项失败,请重试")):l.success("已".concat(t?"启用":"禁用"," ").concat(n.length," 个接口"));case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),st=function(){var e=on(rn().mark((function e(t){var n,r,a;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Z(!0),e.prev=1,e.next=4,ke.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==U?void 0:U.id)===t.id&&V(null),e.next=11,nt(x);case 11:return e.next=13,(0,en.N8)();case 13:l.success("已删除接口"),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(1),l.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,Z(!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(Pe))}),[Pe]);var ut=function(e){return r.createElement("div",{className:"mm-separator",role:"separator","aria-label":"tree"===e?"调整模块栏宽度":"调整接口列表宽度","aria-orientation":"vertical","aria-valuenow":Pe[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=Pe[e],a=function(t){return Te((function(a){return ln(ln({},a),{},sn({},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(),Te((function(n){return ln(ln({},n),{},sn({},e,Math.max("tree"===e?160:240,Math.min("tree"===e?300:520,n[e]+("ArrowRight"===t.key?16:-16)))))})))}})},mt=r.createElement("div",{className:"mm-rule-fields"},r.createElement(me.A,{layout:"vertical"},r.createElement(me.A.Item,{label:"接口名称",required:!0},r.createElement(fe.A,{"aria-label":"接口名称",value:null==U?void 0:U.name,onChange:function(e){return $e({name:e.target.value})}})),r.createElement("div",{className:"mm-field-grid"},r.createElement(me.A.Item,{label:"HTTP 方法"},r.createElement(Be.A,{"aria-label":"HTTP 方法",value:null==U?void 0:U.httpMethod,options:Zt,onChange:function(e){return $e({httpMethod:e})}})),r.createElement(me.A.Item,{label:"处理方式"},r.createElement(Be.A,{"aria-label":"处理方式",value:null==U?void 0:U.proxyType,options:[].concat(un(Xt),[{value:"file",label:"本地文件"}]),onChange:function(e){return $e({proxyType:e})}}))),r.createElement(me.A.Item,{label:"URL 匹配规则",required:!0},r.createElement(fe.A,{className:"mm-code","aria-label":"URL 匹配规则",value:null==U?void 0:U.urlPattern,onChange:function(e){return $e({urlPattern:e.target.value})},placeholder:"/api/users 或 /api/*"})),r.createElement(me.A.Item,{label:"分组"},r.createElement(Be.A,{mode:"tags","aria-label":"接口分组",value:null!=U&&U.group?[U.group]:[],options:Ke.map((function(e){return{value:e,label:e}})),onChange:function(e){return $e({group:e[e.length-1]||""})}})),["redirect","url_redirect"].includes(null==U?void 0:U.proxyType)&&r.createElement(r.Fragment,null,r.createElement(me.A.Item,{label:"目标 URL",required:!0},r.createElement(fe.A,{"aria-label":"目标 URL",value:U.targetUrl,onChange:function(e){return $e({targetUrl:e.target.value})},placeholder:"https://example.com"})),r.createElement(me.A.Item,{label:"自定义请求头(JSON)"},r.createElement(yn,{key:"req-".concat(ae),value:U.customHeaders,onChange:function(e,t){$e({customHeaders:e}),ne(t)}}))),"file"===(null==U?void 0:U.proxyType)&&r.createElement(me.A.Item,{label:"本地文件路径",required:!0},r.createElement(fe.A,{"aria-label":"本地文件路径",value:U.filePath,onChange:function(e){return $e({filePath:e.target.value})}})),U&&!1!==Fe.interfaceParamMatcherEnabled&&r.createElement(me.A.Item,{label:"接口入参匹配"},r.createElement(Mt,{value:U.paramMatchers,responses:U.responses,onChange:function(e){return $e({paramMatchers:e})}})))),pt=r.createElement("div",{className:"mm-rule-fields"},r.createElement(me.A,{layout:"vertical"}," ",r.createElement("div",{className:"mm-field-grid"},r.createElement(me.A.Item,{label:"HTTP 状态码"},r.createElement(xt.A,{min:100,max:599,precision:0,"aria-label":"HTTP 状态码",value:null==U?void 0:U.httpStatus,onChange:function(e){return $e({httpStatus:e})}})),r.createElement(me.A.Item,{label:"延迟(毫秒)"},r.createElement(xt.A,{min:0,"aria-label":"响应延迟",value:null==U?void 0:U.responseDelay,onChange:function(e){return $e({responseDelay:e})}}))),r.createElement(me.A.Item,{label:"Content-Type"},r.createElement(Be.A,{showSearch:!0,"aria-label":"Content-Type",value:null==U?void 0:U.contentType,options:Qt,onChange:function(e){return $e({contentType:e})}})),r.createElement(me.A.Item,{label:"接口启用状态"},r.createElement(Ue.A,{"aria-label":"接口启用状态",checked:null==U?void 0:U.active,onChange:function(e){return $e({active:e})}})),U&&!["redirect","url_redirect"].includes(U.proxyType)&&r.createElement(me.A.Item,{label:"自定义响应头(JSON)"},r.createElement(yn,{key:"res-".concat(ae),value:U.headers,onChange:function(e,t){$e({headers:e}),ne(t)}}))));return k?r.createElement("div",{className:"mm-workbench-loading"},r.createElement(v.A,{tip:"加载工作空间…"},r.createElement("div",null))):r.createElement("div",{className:"mm-workbench ".concat(Ne?"is-tree-collapsed":""," ").concat(ge?"is-mobile-detail":""," ").concat(ze?"is-compact":""),style:{"--tree-width":"".concat(Pe.tree,"px"),"--list-width":"".concat(Pe.list,"px")}},r.createElement("div",{className:"mm-workbench-heading"},r.createElement(rt.A,{kicker:"API WORKSPACE",title:(null==He?void 0:He.name)||"接口工作台",description:"配置规则、管理响应,让调试保持连贯。",actions:r.createElement(r.Fragment,null,r.createElement(Et.A,{trigger:["click"],menu:{items:[{key:"tree",label:Ne?"展开模块树":"收起模块树"},{key:"density",label:ze?"切换为舒适密度":"切换为紧凑密度"},{type:"divider"},{key:"reset",label:"恢复默认布局"}],onClick:function(e){var t,n=e.key;"reset"===n&&(t=210===Pe.tree&&320===Pe.list&&!Ne&&!ze&&0===Oe.length,Te({tree:210,list:320}),Ce(!1),De(!1),je([]),localStorage.setItem("mm-tree-collapsed","false"),localStorage.setItem("mm-list-density","comfortable"),localStorage.removeItem("mm-hidden-columns"),t?l.info("当前已是默认布局,无需恢复"):l.success("已恢复默认布局:面板宽度、模块树、列表密度和显示列")),"tree"===n&&Ce((function(e){return localStorage.setItem("mm-tree-collapsed",String(!e)),!e})),"density"===n&&De((function(e){return localStorage.setItem("mm-list-density",e?"comfortable":"compact"),!e}))}}},r.createElement(a.Ay,{"aria-label":"工作台布局",icon:r.createElement(u.A,null)},"布局")),r.createElement(a.Ay,{icon:xe?r.createElement(o.A,null):r.createElement(St.A,null),onClick:function(){et((function(){Ee((function(e){return localStorage.setItem("mm-interface-view",e?"list":"table"),!e}))}))}},xe?"工作台":"批量表格"),xe&&r.createElement(At.A,{title:"显示列",trigger:"click",content:r.createElement(se.A.Group,{value:["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"].filter((function(e){return!Oe.includes(e)})),options:["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"],onChange:function(e){var t=["状态","名称","方法","路径","分组","处理方式","状态码","延迟","当前默认响应","操作"].filter((function(t){return!e.includes(t)}));je(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(Ae.A,null),disabled:K||X,onClick:function(){return et((function(){return nt(x)}))}}),r.createElement(a.Ay,{type:"primary",icon:r.createElement(Xe.A,null),disabled:!x||K,onClick:ot},"新建接口"))})),C&&r.createElement(g.A,{className:"mm-workbench-alert",type:"error",showIcon:!0,message:"加载失败",description:C,action:r.createElement(a.Ay,{onClick:function(){return x?nt(x):tt()}},"重试")}),!1===(null==He?void 0:He.active)&&r.createElement(g.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 i.push("/")}})),p.map((function(e){return r.createElement("div",{className:"mm-module-row",key:e.id},r.createElement("button",{className:"mm-module-button ".concat(e.id===x?"is-active":""),onClick:function(){return at(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(Ue.A,{"aria-label":"启用模块 ".concat(e.name),size:"small",disabled:X||K,checked:!1!==e.active,onChange:function(){return t=e,et(on(rn().mark((function e(){var n,r,a;return rn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Z(!0),e.prev=1,e.next=4,ke.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 f((function(e){return e.map((function(e){return e.id===t.id?ln(ln({},e),{},{active:!1===t.active}):e}))})),e.next=11,(0,en.N8)();case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),l.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,Z(!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(D?"":"is-active"),onClick:function(){return M(null)}},"全部接口 ",r.createElement("span",null,y.length)),Ke.map((function(e){return r.createElement("button",{key:e,className:"mm-group-button ".concat(D===e?"is-active":""),onClick:function(){return M(e)}},e,r.createElement("span",null,y.filter((function(t){return t.group===e})).length))}))),ut("tree"),r.createElement("section",{className:"mm-interface-panel ".concat(xe?"mm-table-panel":""),"aria-label":"接口列表"},r.createElement("div",{className:"mm-list-toolbar"},r.createElement(Be.A,{className:"mm-mobile-module","aria-label":"功能模块",value:x,options:p.map((function(e){return{value:e.id,label:e.name}})),onChange:at}),r.createElement(fe.A.Search,{ref:Ge,placeholder:"搜索接口名称或 URL","aria-label":"搜索接口",allowClear:!0,value:T,onChange:function(e){return _(e.target.value)}}),r.createElement("div",{className:"mm-list-meta"},r.createElement("span",null,Ye.length," 个接口",D?" · ".concat(D):""),r.createElement(a.Ay,{size:"small",type:"text",onClick:function(){return De((function(e){return localStorage.setItem("mm-list-density",e?"comfortable":"compact"),!e}))}},ze?"舒适":"紧凑")),r.createElement(Be.A,{className:"mm-mobile-module","aria-label":"接口分组",allowClear:!0,placeholder:"全部分组",value:D||void 0,onChange:function(e){return M(e||null)},options:Ke.map((function(e){return{value:e,label:e}}))}),r.createElement("div",{className:"mm-selection"},r.createElement(se.A,{checked:Ye.length>0&&R.length===Ye.length,indeterminate:R.length>0&&R.length<Ye.length,onChange:function(e){return G(e.target.checked?Ye.map((function(e){return e.id})):[])}},"全选"),R.length>0&&r.createElement(de.A,{wrap:!0},r.createElement("span",null,R.length," 项"),r.createElement(a.Ay,{size:"small",disabled:X||K,onClick:function(){return et((function(){return lt(!0)}))}},"启用"),r.createElement(a.Ay,{size:"small",disabled:X||K,onClick:function(){return et((function(){return lt(!1)}))}},"禁用")))),j?r.createElement("div",{className:"mm-panel-empty"},r.createElement(v.A,null)):0===Ye.length?r.createElement("div",{className:"mm-panel-empty"},r.createElement(ue.A,{description:p.length?"暂无接口或没有匹配结果":"请先创建功能模块"}),r.createElement(a.Ay,{onClick:function(){return p.length?ot():i.push("/")}},p.length?"新建接口":"创建模块")):xe?r.createElement(q.A,{rowKey:"id",size:"small",scroll:{x:900},pagination:{pageSize:20,showSizeChanger:!0},rowSelection:{selectedRowKeys:R,onChange:G},dataSource:Ye,columns:[{title:"状态",dataIndex:"active",render:function(e,t){return r.createElement(Ue.A,{size:"small",checked:!1!==e,disabled:X||K,onChange:function(e){return et((function(){return ct(t,{active:e})}))}})}},{title:"名称",dataIndex:"name",render:function(e,t){return r.createElement(a.Ay,{type:"link",onClick:function(){return et((function(){Ee(!1),Ze(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(Be.A,{value:t.activeResponseId,disabled:X||K||"response"!==t.proxyType,options:(t.responses||[]).map((function(e){return{value:e.id,label:e.name}})),onChange:function(e){return et((function(){return ct(t,{activeResponseId:e})}))}})}},{title:"操作",render:function(e,t){return r.createElement(de.A,null,r.createElement(a.Ay,{onClick:function(){return et((function(){Ee(!1),Ze((0,Ft.duplicateInterface)(t,x))}))}},"复制"),r.createElement(ye.A,{title:"删除此接口?",onConfirm:function(){return et((function(){return st(t)}))}},r.createElement(a.Ay,{danger:!0},"删除")))}}].filter((function(e){return!Oe.includes(e.title)}))}):r.createElement("div",{className:"mm-request-list"},Ye.map((function(e){var t;return r.createElement("div",{key:e.id,className:"mm-request-row ".concat((null==U?void 0:U.id)===e.id?"is-active":"")},r.createElement(se.A,{"aria-label":"选择 ".concat(e.name),checked:R.includes(e.id),onChange:function(t){return G((function(n){return t.target.checked?[].concat(un(n),[e.id]):n.filter((function(t){return t!==e.id}))}))}}),r.createElement("button",{className:"mm-request-button",onClick:function(){return et((function(){return Ze(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(Ue.A,{"aria-label":"启用 ".concat(e.name),size:"small",checked:!1!==e.active,disabled:X||K,onChange:function(t){return et((function(){return ct(e,{active:t})}))}}))})))),!xe&&ut("list"),!xe&&r.createElement("section",{className:"mm-detail-panel","aria-label":"接口编辑"},U?r.createElement(r.Fragment,null,r.createElement("div",{className:"mm-detail-heading"},r.createElement(a.Ay,{className:"mm-back-list",icon:r.createElement(Ot.A,null),onClick:function(){return et((function(){return be(!1)}))}},"返回列表"),r.createElement("div",null,r.createElement(pe.A,null,U.httpMethod),r.createElement("h2",null,U.id?U.name||"未命名接口":"新建接口"),r.createElement(ce.A.Text,{type:"secondary"},U.urlPattern||"先设置接口名称和匹配规则")),r.createElement(de.A,null,r.createElement(a.Ay,{"aria-label":"复制当前接口",icon:r.createElement(jt.A,null),disabled:K,onClick:function(){return et((function(){return Ze((0,Ft.duplicateInterface)(U,x))}))}}),U.id&&r.createElement(ye.A,{title:"删除此接口?",onConfirm:function(){return et((function(){return st(U)}))}},r.createElement(a.Ay,{danger:!0,"aria-label":"删除当前接口",icon:r.createElement(Qe.A,null),disabled:K||X})))),r.createElement("div",{className:"mm-detail-body",inert:K||X?"":void 0},r.createElement(kt.A,{className:"mm-config-sections",activeKey:le,onChange:he,items:[{key:"request",label:r.createElement("span",{className:"mm-section-label"},r.createElement("strong",null,"接口与匹配规则"),r.createElement("span",null,U.httpMethod," · ","response"===U.proxyType?"模拟响应":U.proxyType," · ",(null===(e=U.paramMatchers)||void 0===e?void 0:e.length)||0," 个条件",!1===Fe.interfaceParamMatcherEnabled?"(条件匹配已关闭)":"")),children:mt},{key:"response-options",label:r.createElement("span",{className:"mm-section-label"},r.createElement("strong",null,"响应选项"),r.createElement("span",null,"HTTP ",U.httpStatus," · ",U.responseDelay||0," ms",Object.keys(U.headers||{}).length?" · 自定义响应头":"")),children:pt}]}),"response"===U.proxyType?r.createElement("section",{className:"mm-response-main","aria-label":"响应编辑区"},r.createElement("h3",null,"响应内容"),r.createElement($t,{key:U.id||ae,responses:U.responses,activeResponseId:U.activeResponseId,savedResponseIds:((null===(t=y.find((function(e){return e.id===U.id})))||void 0===t?void 0:t.responses)||[]).map((function(e){return e.id})),onActivateResponse:function(e){return et(on(rn().mark((function t(){var n,r;return rn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((r=y.find((function(e){return e.id===(null==U?void 0:U.id)})))&&null!==(n=r.responses)&&void 0!==n&&n.some((function(t){return t.id===e}))){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,ct(r,{activeResponseId:e});case 5:if(!t.sent){t.next=7;break}l.success("默认响应已切换并生效");case 7:case"end":return t.stop()}}),t)}))))},contentType:U.contentType,disabled:K||X,matchersEnabled:!1!==Fe.responseParamMatcherEnabled,onChange:function(e){return $e({responses:e})},onDefaultChange:function(e){return $e({activeResponseId:e})}})):r.createElement(g.A,{className:"mm-error",type:"info",message:"file"===U.proxyType?"此接口返回本地文件,请在接口与匹配规则中配置文件路径。":"此接口转发到目标地址,请在接口与匹配规则中配置目标 URL。"}),r.createElement("div",{className:"mm-sniffer-hint"},r.createElement(ce.A.Text,{type:"secondary"},"需要从真实接口获取响应?"),r.createElement(a.Ay,{type:"link",size:"small",onClick:function(){return i.push("/sniffer")}},"打开接口嗅探"))),r.createElement("footer",{className:"mm-save-bar"},r.createElement("span",{"aria-live":"polite"},K?"保存中…":We?"● 有未保存修改":"修改后保存生效"),r.createElement(de.A,null,r.createElement(a.Ay,{disabled:!We||K||X,onClick:function(){return et((function(){return Ze(JSON.parse(B))}))}},"还原"),r.createElement(a.Ay,{type:"primary",loading:K,disabled:X,onClick:it},"保存接口")))):r.createElement("div",{className:"mm-panel-empty"},r.createElement(ue.A,{description:"选择接口,开始编辑规则和响应"}),r.createElement(a.Ay,{type:"primary",disabled:!x,onClick:ot},"新建接口")))))}var gn=n(770),bn=n(1019);function wn(e){return wn="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},wn(e)}function xn(){xn=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==wn(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(wn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 En(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 An(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){En(o,r,a,i,c,"next",e)}function c(e){En(o,r,a,i,c,"throw",e)}i(void 0)}))}}function kn(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)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 On(){var e=(0,$.DP)(),t=e.currentTheme,n=e.setTheme,o=wt.A.useApp().message,i=kn((0,r.useState)({interfaceParamMatcherEnabled:!0,responseParamMatcherEnabled:!0,webDavSyncEnabled:!1}),2),c=i[0],l=i[1],s=kn((0,r.useState)(!0),2),u=s[0],m=s[1],p=kn((0,r.useState)(""),2),f=p[0],d=p[1],h=kn((0,r.useState)(""),2),y=h[0],b=h[1],w=function(){var e=An(xn().mark((function e(){var t,n;return xn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return m(!0),b(""),e.prev=2,e.next=5,ke.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=An(xn().mark((function e(t,n){var r,a;return xn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d(t),e.prev=1,e.next=4,ke.A.put("/cgi-bin/settings",(i={},s=n,(c=function(e){var t=function(e){if("object"!=wn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=wn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==wn(t)?t:t+""}(c=t))in i?Object.defineProperty(i,c,{value:s,enumerable:!0,configurable:!0,writable:!0}):i[c]=s,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,s}),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(de.A,null,r.createElement(ce.A.Text,{type:"secondary"},c[e]?"已开启":"已关闭"),r.createElement(Ue.A,{"aria-label":t,checked:!0===c[e],disabled:!!f||!!y,loading:f===e,onChange:function(t){return x(e,t)}})))};return r.createElement("div",{className:"page-container"},r.createElement(rt.A,{kicker:"PREFERENCES",title:"系统设置",description:"外观偏好保存在当前浏览器,匹配和同步设置保存到插件。"}),y&&r.createElement(g.A,{type:"error",message:y,action:r.createElement(a.Ay,{onClick:w},"重试")}),r.createElement(v.A,{spinning:u},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(le.A,{id:"appearance",title:"外观",className:"mm-settings-section"},r.createElement(bn.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=kn(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(le.A,{id:"matching",title:"匹配规则",className:"mm-settings-section"},E("interfaceParamMatcherEnabled","接口入参匹配","按请求参数选择接口,同时显示接口匹配条件;关闭后跳过接口级参数检查。"),E("responseParamMatcherEnabled","响应入参匹配","按请求参数选择同一接口的响应;关闭后使用默认响应(接口级目标响应仍优先)。"),r.createElement(g.A,{type:"info",showIcon:!0,message:"支持精确、包含、正则匹配和嵌套参数路径。响应条件按顺序检查;没有命中时使用默认响应。"})),r.createElement(le.A,{id:"sync",title:"数据同步",className:"mm-settings-section"},E("webDavSyncEnabled","WebDAV 同步入口","开启后可从功能模块页面连接 WebDAV、推送和拉取配置。关闭入口不会清除连接配置。"),r.createElement(ce.A.Text,{type:"secondary"},"连接状态与覆盖冲突会在同步窗口中单独显示。")),r.createElement(le.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(ce.A.Text,{type:"secondary"},"修改草稿需保存后生效;离开前提示未保存内容。旧版弹窗/抽屉偏好不再影响工作台。"))))))}var jn=n(6601),Ln=n(6544),Nn=n(7983);function Cn(e){return Cn="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},Cn(e)}function In(){In=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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==Cn(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(Cn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 Pn(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 Tn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(n),!0).forEach((function(t){_n(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _n(e,t,n){return(t=function(e){var t=function(e){if("object"!=Cn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Cn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Cn(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zn(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 Dn(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||Mn(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 Mn(e,t){if(e){if("string"==typeof e)return Fn(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)?Fn(e,t):void 0}}function Fn(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 Rn(){var e=(0,d.W6)(),t=(0,r.useRef)(0),n=Dn((0,r.useState)(null),2),o=n[0],i=n[1],c=Dn((0,r.useState)(""),2),l=c[0],s=c[1],u=Dn((0,r.useState)(null),2),m=u[0],p=u[1],f=Dn((0,r.useState)(!0),2),h=f[0],y=f[1],b=Dn((0,r.useState)(""),2),w=b[0],x=b[1],E=function(){var e,n=(e=In().mark((function e(){var n,r,a;return In().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=++t.current,y(!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 ke.A.get("/cgi-bin/stats",{params:Tn(Tn({},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&&y(!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){zn(o,r,a,i,c,"next",e)}function c(e){zn(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 Fn(e)}(A=O.map((function(e){return Dn(e,2)[1]})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(A)||Mn(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(rt.A,{kicker:"OBSERVABILITY",title:"请求统计",description:"查看已记录请求的命中情况。默认最近 7 天;过滤条件同时作用于全部统计。",actions:r.createElement(a.Ay,{icon:r.createElement(Ae.A,null),onClick:E,loading:h},"刷新")}),r.createElement("div",{className:"mm-stats-filters"},r.createElement(jn.A.RangePicker,{value:o,onChange:i,allowClear:!0}),r.createElement(fe.A.Search,{allowClear:!0,placeholder:"筛选请求 URL",value:l,onChange:function(e){return s(e.target.value)},style:{maxWidth:320}})),w&&r.createElement(g.A,{type:"error",showIcon:!0,message:"统计加载失败",description:w,action:r.createElement(a.Ay,{onClick:E},"重试")}),r.createElement(v.A,{spinning:h},r.createElement("div",{className:"mm-metrics"},r.createElement(le.A,null,r.createElement(Ln.A,{title:"已记录请求",value:k.totalRequests||0})),r.createElement(le.A,null,r.createElement(Ln.A,{title:"Mock 命中",value:k.totalHits||0})),r.createElement(le.A,null,r.createElement(Ln.A,{title:"透传 / 未命中",value:k.totalMisses||0})),r.createElement(le.A,null,r.createElement(Ln.A,{title:"命中率",value:k.hitRate||0,suffix:"%"}))),r.createElement(le.A,{title:"命中趋势",className:"mm-stats-section"},O.length?r.createElement("div",{className:"mm-timeline",role:"img","aria-label":O.map((function(e){var t=Dn(e,2),n=t[0],r=t[1];return"".concat(n,": ").concat(r," 次")})).join(";")},O.map((function(e){var t=Dn(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(ue.A,{description:"此时间范围暂无记录"})),r.createElement("div",{className:"mm-stats-columns"},r.createElement(le.A,{title:"热点接口"},r.createElement(q.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(Nn.A,{size:"small",percent:Number((t.count/Math.max(1,k.totalHits)*100).toFixed(1))})}}]})),r.createElement(le.A,{title:"热点模块"},r.createElement(q.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(le.A,{title:"最近命中记录 · 最多 20 条",className:"mm-stats-section"},r.createElement(q.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(pe.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 Gn=n(277),Jn=n(6143),qn=n(6325),Un=n(5850),Vn=n(9820);function Wn(e){return Wn="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},Wn(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 s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(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=u;var p="suspendedStart",f="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};s(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){s(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 s=l.arg,u=s.value;return u&&"object"==Wn(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(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 s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===y)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.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(Wn(t)+" is not iterable")}return g.prototype=b,a(A,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},k(S.prototype),s(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(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(A),s(A,l,"Generator"),s(A,i,(function(){return this})),s(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"),s=r.call(i,"finallyLoc");if(l&&s){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(!s)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 Hn(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 Yn(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Hn(o,r,a,i,c,"next",e)}function c(e){Hn(o,r,a,i,c,"throw",e)}i(void 0)}))}}function Kn(e){return function(e){if(Array.isArray(e))return tr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||er(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 $n(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 Qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$n(Object(n),!0).forEach((function(t){Xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xn(e,t,n){return(t=function(e){var t=function(e){if("object"!=Wn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Wn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Wn(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zn(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,s=!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){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||er(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 er(e,t){if(e){if("string"==typeof e)return tr(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)?tr(e,t):void 0}}function tr(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 nr=function(e){return Object.entries(e||{}).map((function(e){var t=Zn(e,2),n=t[0],r=t[1];return{id:(0,Ft.createId)(),key:n,value:r}}))},rr=function(e){return Object.fromEntries(e.filter((function(e){return e.key})).map((function(e){return[e.key,e.value]})))},ar=function(){try{var e=JSON.parse(localStorage.getItem("sniffer-history"));return Array.isArray(e)?e:[]}catch(e){return[]}};function or(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(fe.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?Qn(Qn({},t),{},{key:e.target.value}):t})))}}),r.createElement(fe.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?Qn(Qn({},t),{},{value:e.target.value}):t})))}}),r.createElement(a.Ay,{type:"text",danger:!0,icon:r.createElement(Qe.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(Xe.A,null),onClick:function(){return n([].concat(Kn(t),[{id:(0,Ft.createId)(),key:"",value:""}]))}},"添加",o))}function ir(){var e=wt.A.useApp().message,t=Zn((0,r.useState)(""),2),n=t[0],o=t[1],i=Zn((0,r.useState)("GET"),2),c=i[0],l=i[1],s=Zn((0,r.useState)([]),2),u=s[0],m=s[1],p=Zn((0,r.useState)([]),2),f=p[0],d=p[1],h=Zn((0,r.useState)("none"),2),y=h[0],v=h[1],b=Zn((0,r.useState)(""),2),w=b[0],x=b[1],E=Zn((0,r.useState)(null),2),A=E[0],k=E[1],S=Zn((0,r.useState)(!1),2),O=S[0],j=S[1],L=Zn((0,r.useState)(""),2),N=L[0],C=L[1],I=Zn((0,r.useState)(ar),2),P=I[0],T=I[1],_=Zn((0,r.useState)(!1),2),z=_[0],D=_[1],M=Zn((0,r.useState)(""),2),F=M[0],R=M[1],G=Zn((0,r.useState)(!1),2),J=G[0],U=G[1],V=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),R("")}catch(e){T(t),R("当前响应较大或浏览器存储已满;本次记录只保留在内存中,刷新后不会恢复。")}},W=function(){var t=Yn(Bn().mark((function t(){var r,a,o,i,l,s;return Bn().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:rr(f),queryParams:rr(u),body:w,bodyType:y},t.prev=26,t.next=29,ke.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=Qn(Qn({},i.data),{},{request:a}),k(l),V([{id:(0,Ft.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(Kn(P))),t.next=41;break;case 38:t.prev=38,t.t2=t.catch(26),C((null===(s=t.t2.response)||void 0===s||null===(s=s.data)||void 0===s?void 0:s.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)}}(),B=function(){var t=Yn(Bn().mark((function t(){return Bn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,navigator.clipboard.writeText((null==A?void 0: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(rt.A,{kicker:"REQUEST LAB",title:"接口嗅探",description:"发送真实请求,保留完整响应并转换为 Mock。",actions:r.createElement(a.Ay,{icon:r.createElement(qn.A,null),onClick:function(){return D(!0)}},"历史记录(",P.length,")")}),r.createElement("div",{className:"mm-request-bar"},r.createElement(Be.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(fe.A,{"aria-label":"请求 URL",className:"mm-code",placeholder:"https://api.example.com/users",value:n,onChange:function(e){return o(e.target.value)},onPressEnter:W}),r.createElement(a.Ay,{type:"primary",icon:r.createElement(Un.A,null),loading:O,onClick:W},"发送请求")),N&&r.createElement(g.A,{type:"error",showIcon:!0,message:"请求失败",description:N})," ",F&&r.createElement(g.A,{type:"warning",showIcon:!0,message:F}),r.createElement("div",{className:"mm-sniffer-columns"},r.createElement(le.A,{title:"请求配置"},r.createElement(Gn.A,{items:[{key:"query",label:"Query",children:r.createElement(or,{label:"参数",value:u,onChange:m})},{key:"headers",label:"Headers",children:r.createElement(or,{label:"Header",value:f,onChange:d})},{key:"body",label:"Body",children:r.createElement(r.Fragment,null,r.createElement(Be.A,{"aria-label":"请求体类型",value:y,onChange:v,options:[{value:"none",label:"无请求体"},{value:"json",label:"JSON"},{value:"form",label:"表单"},{value:"text",label:"纯文本"}]}),"none"!==y&&r.createElement(fe.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(le.A,{title:r.createElement(de.A,null,"响应",A&&r.createElement(pe.A,{color:A.status>=400?"error":"success"},A.status," ",A.statusText)),extra:A&&r.createElement(de.A,{wrap:!0},r.createElement(a.Ay,{size:"small",icon:r.createElement(jt.A,null),onClick:B},"复制"),r.createElement(a.Ay,{size:"small",disabled:A.incomplete,onClick:function(){return U(!0)}},"保存为 Mock"))},A?r.createElement(r.Fragment,null,A.incomplete&&r.createElement(g.A,{type:"warning",message:"这是旧历史的摘要,请重新发送获取完整响应。"}),r.createElement(Gn.A,{items:[{key:"body",label:"Body",children:r.createElement(fe.A.TextArea,{"aria-label":"响应内容",className:"mm-response-code",value:function(e){if("string"!=typeof e)return JSON.stringify(e,null,2);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(ue.A,{description:O?"正在请求真实接口…":"发送请求后在这里查看响应"})))),r.createElement(Jn.A,{title:"请求历史",open:z,onClose:function(){return D(!1)},width:"min(880px, 100vw)",extra:r.createElement(ye.A,{title:"清空历史记录?",onConfirm:function(){return V([])}},r.createElement(a.Ay,{danger:!0},"清空"))},r.createElement(q.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(de.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(nr(n.queryParams)),d(nr(n.headers)),v(n.bodyType||"none"),x("string"==typeof n.body?n.body:JSON.stringify(n.body||"")),k(e.response?Qn(Qn({},e.response),{},{request:n}):{status:e.status,body:e.preview,headers:{},request:n,incomplete:!0}),void D(!1);var e,n}},"加载"),r.createElement(ye.A,{title:"删除此记录?",onConfirm:function(){return V(P.filter((function(e){return e.id!==t.id})))}},r.createElement(a.Ay,{danger:!0},"删除")))}}]})),r.createElement(Vn.A,{open:J,onClose:function(){return U(!1)},response:A}))}var cr=n(4956),lr=n(8794),sr={};sr.styleTagTransform=I(),sr.setAttributes=j(),sr.insert=S().bind(null,"head"),sr.domAPI=A(),sr.insertStyleElement=N(),x()(lr.A,sr),lr.A&&lr.A.locals&&lr.A.locals;const ur=function(){return r.createElement(h.I9,null,r.createElement("div",{className:"App"},r.createElement($.Ay,null,r.createElement(ne,null,r.createElement(d.dO,null,r.createElement(d.qh,{exact:!0,path:"/",component:bt}),r.createElement(d.qh,{exact:!0,path:"/interface",component:vn}),r.createElement(d.qh,{path:"/interface/:featureId",component:vn}),r.createElement(d.qh,{path:"/stats",component:Rn}),r.createElement(d.qh,{path:"/network",component:cr.A}),r.createElement(d.qh,{path:"/sniffer",component:ir}),r.createElement(d.qh,{path:"/settings",component:On}),r.createElement(d.rd,{to:"/"}))))))}},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\n/* Stretch the native title link over the card, keeping controls above it. */\n.mm-module-card { position:relative; }\n.mm-module-card:hover { border-color:var(--mm-primary); }\n.mm-module-card-link { color:var(--mm-text); font-size:16px; font-weight:600; overflow-wrap:anywhere; }\n.mm-module-card-link::after { content:''; position:absolute; inset:0; z-index:1; border-radius:inherit; cursor:pointer; }\n.mm-module-card-header>.ant-switch,.mm-module-card-actions { position:relative; z-index:2; }\n.mm-module-card-link:focus-visible { outline:none; }\n.mm-module-card-link:focus-visible::after { outline:2px solid var(--mm-primary); outline-offset:2px; }\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\n.mm-config-sections { margin:12px 0; background:var(--mm-surface); border-color:var(--mm-border); }\n.mm-config-sections .ant-collapse-header { align-items:center!important; padding:10px 12px!important; }\n.mm-config-sections .ant-collapse-content-box { padding:12px!important; }\n.mm-section-label { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; }\n.mm-section-label strong { color:var(--mm-text); font-size:13px; font-weight:550; }\n.mm-section-label>span { color:var(--mm-muted); font-size:12px; overflow-wrap:anywhere; }\n.mm-response-main>h3 { margin:20px 0 0; color:var(--mm-text); font-size:14px; }\n.mm-response-settings .mm-editor-section { margin-top:14px; }\n.mm-sniffer-hint { display:flex; flex-wrap:wrap; align-items:center; margin:18px 0 0; font-size:12px; }\n",""]);const c=i}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|