pixivflow 2.0.38 → 2.0.39
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/dist/commands/DownloadCommand.d.ts.map +1 -1
- package/dist/commands/DownloadCommand.js +50 -2
- package/dist/commands/DownloadCommand.js.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +11 -3
- package/dist/config/validation.js.map +1 -1
- package/dist/index.js +37 -14
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/pixiv/AuthClient.d.ts.map +1 -1
- package/dist/pixiv/AuthClient.js +56 -7
- package/dist/pixiv/AuthClient.js.map +1 -1
- package/dist/storage/Database.d.ts +22 -0
- package/dist/storage/Database.d.ts.map +1 -1
- package/dist/storage/Database.js +19 -0
- package/dist/storage/Database.js.map +1 -1
- package/dist/storage/DatabaseMigration.d.ts.map +1 -1
- package/dist/storage/DatabaseMigration.js +29 -0
- package/dist/storage/DatabaseMigration.js.map +1 -1
- package/dist/storage/repositories/TaskHistoryRepository.d.ts +61 -0
- package/dist/storage/repositories/TaskHistoryRepository.d.ts.map +1 -0
- package/dist/storage/repositories/TaskHistoryRepository.js +171 -0
- package/dist/storage/repositories/TaskHistoryRepository.js.map +1 -0
- package/dist/utils/errors.js +11 -11
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/pixiv-url-parser.d.ts +7 -1
- package/dist/utils/pixiv-url-parser.d.ts.map +1 -1
- package/dist/utils/pixiv-url-parser.js +75 -8
- package/dist/utils/pixiv-url-parser.js.map +1 -1
- package/dist/utils/token-manager.d.ts.map +1 -1
- package/dist/utils/token-manager.js +73 -5
- package/dist/utils/token-manager.js.map +1 -1
- package/dist/webui/package.json +1 -1
- package/dist/webui/routes/download.d.ts.map +1 -1
- package/dist/webui/routes/download.js +2 -0
- package/dist/webui/routes/download.js.map +1 -1
- package/dist/webui/routes/handlers/download-basic-handlers.d.ts +11 -0
- package/dist/webui/routes/handlers/download-basic-handlers.d.ts.map +1 -1
- package/dist/webui/routes/handlers/download-basic-handlers.js +199 -8
- package/dist/webui/routes/handlers/download-basic-handlers.js.map +1 -1
- package/dist/webui/services/DownloadTaskManager.d.ts.map +1 -1
- package/dist/webui/services/DownloadTaskManager.js +75 -3
- package/dist/webui/services/DownloadTaskManager.js.map +1 -1
- package/package.json +1 -1
- package/dist/webui/assets/ActionButton-DWq-fh3_.js +0 -2
- package/dist/webui/assets/ActionButton-DWq-fh3_.js.map +0 -1
- package/dist/webui/assets/CheckCircleOutlined-Can0-7ew.js +0 -2
- package/dist/webui/assets/CheckCircleOutlined-Can0-7ew.js.map +0 -1
- package/dist/webui/assets/CloseCircleOutlined-DfRmL2eG.js +0 -2
- package/dist/webui/assets/CloseCircleOutlined-DfRmL2eG.js.map +0 -1
- package/dist/webui/assets/Config-D9TWUGQR.js +0 -16
- package/dist/webui/assets/Config-D9TWUGQR.js.map +0 -1
- package/dist/webui/assets/Dashboard-CaGAH0y2.js +0 -2
- package/dist/webui/assets/Dashboard-CaGAH0y2.js.map +0 -1
- package/dist/webui/assets/DeleteOutlined-u-P2SpoK.js +0 -2
- package/dist/webui/assets/DeleteOutlined-u-P2SpoK.js.map +0 -1
- package/dist/webui/assets/Download-D9E4xrnM.js +0 -2
- package/dist/webui/assets/Download-D9E4xrnM.js.map +0 -1
- package/dist/webui/assets/Files-CKyc_PdW.js +0 -5
- package/dist/webui/assets/Files-CKyc_PdW.js.map +0 -1
- package/dist/webui/assets/PictureOutlined-C8Lbucj1.js +0 -2
- package/dist/webui/assets/PictureOutlined-C8Lbucj1.js.map +0 -1
- package/dist/webui/assets/SortDescendingOutlined-CR-hdhyW.js +0 -2
- package/dist/webui/assets/SortDescendingOutlined-CR-hdhyW.js.map +0 -1
- package/dist/webui/assets/ThunderboltOutlined-CiiB2de5.js +0 -2
- package/dist/webui/assets/ThunderboltOutlined-CiiB2de5.js.map +0 -1
- package/dist/webui/assets/UrlDownload-ClkUOXN_.js +0 -3
- package/dist/webui/assets/UrlDownload-ClkUOXN_.js.map +0 -1
- package/dist/webui/assets/dateUtils-CBk8bEa_.js +0 -2
- package/dist/webui/assets/dateUtils-CBk8bEa_.js.map +0 -1
- package/dist/webui/assets/errorCodeTranslator-DWsWq6B3.js +0 -3
- package/dist/webui/assets/errorCodeTranslator-DWsWq6B3.js.map +0 -1
- package/dist/webui/assets/index-BFgUdwJv.js +0 -214
- package/dist/webui/assets/index-BFgUdwJv.js.map +0 -1
- package/dist/webui/assets/index-CN3FylAF.js +0 -2
- package/dist/webui/assets/index-CN3FylAF.js.map +0 -1
- package/dist/webui/assets/index-CSoUPZat.js +0 -2
- package/dist/webui/assets/index-CSoUPZat.js.map +0 -1
- package/dist/webui/assets/index-CiHwNwrk.js +0 -19
- package/dist/webui/assets/index-CiHwNwrk.js.map +0 -1
- package/dist/webui/assets/index-DHwJxrFi.css +0 -1
- package/dist/webui/assets/index-DTU-FGA4.js +0 -2
- package/dist/webui/assets/index-DTU-FGA4.js.map +0 -1
- package/dist/webui/assets/index-DjpD0HQ5.js +0 -2
- package/dist/webui/assets/index-DjpD0HQ5.js.map +0 -1
- package/dist/webui/assets/index-Dycn6xoz.js +0 -2
- package/dist/webui/assets/index-Dycn6xoz.js.map +0 -1
- package/dist/webui/assets/index-G0EJCamt.js +0 -22
- package/dist/webui/assets/index-G0EJCamt.js.map +0 -1
- package/dist/webui/assets/index-WaraZQH0.js +0 -2
- package/dist/webui/assets/index-WaraZQH0.js.map +0 -1
- package/dist/webui/assets/index-k2rGFxEM.js +0 -8
- package/dist/webui/assets/index-k2rGFxEM.js.map +0 -1
- package/dist/webui/assets/index-lwTtspUb.js +0 -14
- package/dist/webui/assets/index-lwTtspUb.js.map +0 -1
- package/dist/webui/assets/index-pT0W4KjK.js +0 -47
- package/dist/webui/assets/index-pT0W4KjK.js.map +0 -1
- package/dist/webui/assets/index-wvielV9A.js +0 -2
- package/dist/webui/assets/index-wvielV9A.js.map +0 -1
- package/dist/webui/assets/row-FRqVdQDX.js +0 -20
- package/dist/webui/assets/row-FRqVdQDX.js.map +0 -1
- package/dist/webui/assets/useAuth-BMt6dHSB.js +0 -9
- package/dist/webui/assets/useAuth-BMt6dHSB.js.map +0 -1
- package/dist/webui/assets/useConfig-29Ugtjk4.js +0 -9
- package/dist/webui/assets/useConfig-29Ugtjk4.js.map +0 -1
- package/dist/webui/assets/useDownload-Dt6lsP8S.js +0 -2
- package/dist/webui/assets/useDownload-Dt6lsP8S.js.map +0 -1
- package/dist/webui/assets/useErrorHandler-DWHs3RlU.js +0 -84
- package/dist/webui/assets/useErrorHandler-DWHs3RlU.js.map +0 -1
- package/dist/webui/index.html +0 -15
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{a1 as h,h as Z,m as G,g as k,n as ee,a2 as W,_ as j,a3 as re,a4 as se,a5 as ne,a6 as le,w as ce,a7 as de,o as ue,a8 as ge,r as M,C as fe,t as me,v as ye,z as _,a9 as Ce,y as pe,aa as ve,A as he,ab as be,H as Ie,ac as xe,ad as U,ae as $e,af as J,I as Se,a as I,T as D,u as Y,Q as R}from"./index-BFgUdwJv.js";import{u as B}from"./errorCodeTranslator-DWsWq6B3.js";import{u as V}from"./useErrorHandler-DWHs3RlU.js";var ae=h.forwardRef(function(e,n){var a=e.prefixCls,t=e.forceRender,d=e.className,u=e.style,s=e.children,r=e.isActive,o=e.role,i=e.classNames,m=e.styles,g=h.useState(r||t),C=Z(g,2),c=C[0],f=C[1];return h.useEffect(function(){(t||r)&&f(!0)},[t,r]),c?h.createElement("div",{ref:n,className:G("".concat(a,"-content"),k(k({},"".concat(a,"-content-active"),r),"".concat(a,"-content-inactive"),!r),d),style:u,role:o},h.createElement("div",{className:G("".concat(a,"-content-box"),i?.body),style:m?.body},s)):null});ae.displayName="PanelContent";var we=["showArrow","headerClass","isActive","onItemClick","forceRender","className","classNames","styles","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],te=h.forwardRef(function(e,n){var a=e.showArrow,t=a===void 0?!0:a,d=e.headerClass,u=e.isActive,s=e.onItemClick,r=e.forceRender,o=e.className,i=e.classNames,m=i===void 0?{}:i,g=e.styles,C=g===void 0?{}:g,c=e.prefixCls,f=e.collapsible,p=e.accordion,x=e.panelKey,y=e.extra,v=e.header,b=e.expandIcon,l=e.openMotion,w=e.destroyInactivePanel,$=e.children,A=ee(e,we),S=f==="disabled",P=y!=null&&typeof y!="boolean",N=k(k(k({onClick:function(){s?.(x)},onKeyDown:function(O){(O.key==="Enter"||O.keyCode===W.ENTER||O.which===W.ENTER)&&s?.(x)},role:p?"tab":"button"},"aria-expanded",u),"aria-disabled",S),"tabIndex",S?-1:0),H=typeof b=="function"?b(e):h.createElement("i",{className:"arrow"}),z=H&&h.createElement("div",j({className:"".concat(c,"-expand-icon")},["header","icon"].includes(f)?N:{}),H),L=G("".concat(c,"-item"),k(k({},"".concat(c,"-item-active"),u),"".concat(c,"-item-disabled"),S),o),Q=G(d,"".concat(c,"-header"),k({},"".concat(c,"-collapsible-").concat(f),!!f),m.header),F=re({className:Q,style:C.header},["header","icon"].includes(f)?{}:N);return h.createElement("div",j({},A,{ref:n,className:L}),h.createElement("div",F,t&&z,h.createElement("span",j({className:"".concat(c,"-header-text")},f==="header"?N:{}),v),P&&h.createElement("div",{className:"".concat(c,"-extra")},y)),h.createElement(se,j({visible:u,leavedClassName:"".concat(c,"-content-hidden")},l,{forceRender:r,removeOnLeave:w}),function(E,O){var T=E.className,q=E.style;return h.createElement(ae,{ref:O,prefixCls:c,className:T,classNames:m,style:q,styles:C,isActive:u,forceRender:r,role:p?"tabpanel":void 0},$)}))}),Pe=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],Ne=function(n,a){var t=a.prefixCls,d=a.accordion,u=a.collapsible,s=a.destroyInactivePanel,r=a.onItemClick,o=a.activeKey,i=a.openMotion,m=a.expandIcon;return n.map(function(g,C){var c=g.children,f=g.label,p=g.key,x=g.collapsible,y=g.onItemClick,v=g.destroyInactivePanel,b=ee(g,Pe),l=String(p??C),w=x??u,$=v??s,A=function(N){w!=="disabled"&&(r(N),y?.(N))},S=!1;return d?S=o[0]===l:S=o.indexOf(l)>-1,h.createElement(te,j({},b,{prefixCls:t,key:l,panelKey:l,isActive:S,accordion:d,openMotion:i,expandIcon:m,header:f,collapsible:w,onItemClick:A,destroyInactivePanel:$}),c)})},Ae=function(n,a,t){if(!n)return null;var d=t.prefixCls,u=t.accordion,s=t.collapsible,r=t.destroyInactivePanel,o=t.onItemClick,i=t.activeKey,m=t.openMotion,g=t.expandIcon,C=n.key||String(a),c=n.props,f=c.header,p=c.headerClass,x=c.destroyInactivePanel,y=c.collapsible,v=c.onItemClick,b=!1;u?b=i[0]===C:b=i.indexOf(C)>-1;var l=y??s,w=function(S){l!=="disabled"&&(o(S),v?.(S))},$={key:C,panelKey:C,header:f,headerClass:p,isActive:b,prefixCls:d,destroyInactivePanel:x??r,openMotion:m,accordion:u,children:n.props.children,onItemClick:w,expandIcon:g,collapsible:l};return typeof n.type=="string"?n:(Object.keys($).forEach(function(A){typeof $[A]>"u"&&delete $[A]}),h.cloneElement(n,$))};function Fe(e,n,a){return Array.isArray(e)?Ne(e,a):ne(n).map(function(t,d){return Ae(t,d,a)})}function Ee(e){var n=e;if(!Array.isArray(n)){var a=ue(n);n=a==="number"||a==="string"?[n]:[]}return n.map(function(t){return String(t)})}var Oe=h.forwardRef(function(e,n){var a=e.prefixCls,t=a===void 0?"rc-collapse":a,d=e.destroyInactivePanel,u=d===void 0?!1:d,s=e.style,r=e.accordion,o=e.className,i=e.children,m=e.collapsible,g=e.openMotion,C=e.expandIcon,c=e.activeKey,f=e.defaultActiveKey,p=e.onChange,x=e.items,y=G(t,o),v=le([],{value:c,onChange:function(P){return p?.(P)},defaultValue:f,postState:Ee}),b=Z(v,2),l=b[0],w=b[1],$=function(P){return w(function(){if(r)return l[0]===P?[]:[P];var N=l.indexOf(P),H=N>-1;return H?l.filter(function(z){return z!==P}):[].concat(ge(l),[P])})};ce(!i,"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.");var A=Fe(x,i,{prefixCls:t,accordion:r,openMotion:g,expandIcon:C,collapsible:m,destroyInactivePanel:u,onItemClick:$,activeKey:l});return h.createElement("div",j({ref:n,className:y,style:s,role:r?"tablist":void 0},de(e,{aria:!0,data:!0})),A)});const X=Object.assign(Oe,{Panel:te});X.Panel;const Me=M.forwardRef((e,n)=>{const{getPrefixCls:a}=M.useContext(fe),{prefixCls:t,className:d,showArrow:u=!0}=e,s=a("collapse",t),r=G({[`${s}-no-arrow`]:!u},d);return M.createElement(X.Panel,Object.assign({ref:n},e,{prefixCls:s,className:r}))}),Re=e=>{const{componentCls:n,contentBg:a,padding:t,headerBg:d,headerPadding:u,collapseHeaderPaddingSM:s,collapseHeaderPaddingLG:r,collapsePanelBorderRadius:o,lineWidth:i,lineType:m,colorBorder:g,colorText:C,colorTextHeading:c,colorTextDisabled:f,fontSizeLG:p,lineHeight:x,lineHeightLG:y,marginSM:v,paddingSM:b,paddingLG:l,paddingXS:w,motionDurationSlow:$,fontSizeIcon:A,contentPadding:S,fontHeight:P,fontHeightLG:N}=e,H=`${_(i)} ${m} ${g}`;return{[n]:Object.assign(Object.assign({},pe(e)),{backgroundColor:d,border:H,borderRadius:o,"&-rtl":{direction:"rtl"},[`& > ${n}-item`]:{borderBottom:H,"&:first-child":{[`
|
|
2
|
-
&,
|
|
3
|
-
& > ${n}-header`]:{borderRadius:`${_(o)} ${_(o)} 0 0`}},"&:last-child":{[`
|
|
4
|
-
&,
|
|
5
|
-
& > ${n}-header`]:{borderRadius:`0 0 ${_(o)} ${_(o)}`}},[`> ${n}-header`]:Object.assign(Object.assign({position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:u,color:c,lineHeight:x,cursor:"pointer",transition:`all ${$}, visibility 0s`},ve(e)),{[`> ${n}-header-text`]:{flex:"auto"},[`${n}-expand-icon`]:{height:P,display:"flex",alignItems:"center",paddingInlineEnd:v},[`${n}-arrow`]:Object.assign(Object.assign({},he()),{fontSize:A,transition:`transform ${$}`,svg:{transition:`transform ${$}`}}),[`${n}-header-text`]:{marginInlineEnd:"auto"}}),[`${n}-collapsible-header`]:{cursor:"default",[`${n}-header-text`]:{flex:"none",cursor:"pointer"},[`${n}-expand-icon`]:{cursor:"pointer"}},[`${n}-collapsible-icon`]:{cursor:"unset",[`${n}-expand-icon`]:{cursor:"pointer"}}},[`${n}-content`]:{color:C,backgroundColor:a,borderTop:H,[`& > ${n}-content-box`]:{padding:S},"&-hidden":{display:"none"}},"&-small":{[`> ${n}-item`]:{[`> ${n}-header`]:{padding:s,paddingInlineStart:w,[`> ${n}-expand-icon`]:{marginInlineStart:e.calc(b).sub(w).equal()}},[`> ${n}-content > ${n}-content-box`]:{padding:b}}},"&-large":{[`> ${n}-item`]:{fontSize:p,lineHeight:y,[`> ${n}-header`]:{padding:r,paddingInlineStart:t,[`> ${n}-expand-icon`]:{height:N,marginInlineStart:e.calc(l).sub(t).equal()}},[`> ${n}-content > ${n}-content-box`]:{padding:l}}},[`${n}-item:last-child`]:{borderBottom:0,[`> ${n}-content`]:{borderRadius:`0 0 ${_(o)} ${_(o)}`}},[`& ${n}-item-disabled > ${n}-header`]:{"\n &,\n & > .arrow\n ":{color:f,cursor:"not-allowed"}},[`&${n}-icon-position-end`]:{[`& > ${n}-item`]:{[`> ${n}-header`]:{[`${n}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:v}}}}})}},_e=e=>{const{componentCls:n}=e,a=`> ${n}-item > ${n}-header ${n}-arrow`;return{[`${n}-rtl`]:{[a]:{transform:"rotate(180deg)"}}}},Ke=e=>{const{componentCls:n,headerBg:a,borderlessContentPadding:t,borderlessContentBg:d,colorBorder:u}=e;return{[`${n}-borderless`]:{backgroundColor:a,border:0,[`> ${n}-item`]:{borderBottom:`1px solid ${u}`},[`
|
|
6
|
-
> ${n}-item:last-child,
|
|
7
|
-
> ${n}-item:last-child ${n}-header
|
|
8
|
-
`]:{borderRadius:0},[`> ${n}-item:last-child`]:{borderBottom:0},[`> ${n}-item > ${n}-content`]:{backgroundColor:d,borderTop:0},[`> ${n}-item > ${n}-content > ${n}-content-box`]:{padding:t}}}},He=e=>{const{componentCls:n,paddingSM:a}=e;return{[`${n}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${n}-item`]:{borderBottom:0,[`> ${n}-content`]:{backgroundColor:"transparent",border:0,[`> ${n}-content-box`]:{paddingBlock:a}}}}}},ke=e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:"transparent"}),Be=me("Collapse",e=>{const n=ye(e,{collapseHeaderPaddingSM:`${_(e.paddingXS)} ${_(e.paddingSM)}`,collapseHeaderPaddingLG:`${_(e.padding)} ${_(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[Re(n),Ke(n),He(n),_e(n),Ce(n)]},ke),Ge=M.forwardRef((e,n)=>{const{getPrefixCls:a,direction:t,expandIcon:d,className:u,style:s}=be("collapse"),{prefixCls:r,className:o,rootClassName:i,style:m,bordered:g=!0,ghost:C,size:c,expandIconPosition:f="start",children:p,destroyInactivePanel:x,destroyOnHidden:y,expandIcon:v}=e,b=Ie(F=>{var E;return(E=c??F)!==null&&E!==void 0?E:"middle"}),l=a("collapse",r),w=a(),[$,A,S]=Be(l),P=M.useMemo(()=>f==="left"?"start":f==="right"?"end":f,[f]),N=v??d,H=M.useCallback((F={})=>{const E=typeof N=="function"?N(F):M.createElement(xe,{rotate:F.isActive?t==="rtl"?-90:90:void 0,"aria-label":F.isActive?"expanded":"collapsed"});return U(E,()=>{var O;return{className:G((O=E.props)===null||O===void 0?void 0:O.className,`${l}-arrow`)}})},[N,l,t]),z=G(`${l}-icon-position-${P}`,{[`${l}-borderless`]:!g,[`${l}-rtl`]:t==="rtl",[`${l}-ghost`]:!!C,[`${l}-${b}`]:b!=="middle"},u,o,i,A,S),L=M.useMemo(()=>Object.assign(Object.assign({},$e(w)),{motionAppear:!1,leavedClassName:`${l}-content-hidden`}),[w,l]),Q=M.useMemo(()=>p?ne(p).map((F,E)=>{var O,T;const q=F.props;if(q?.disabled){const ie=(O=F.key)!==null&&O!==void 0?O:String(E),oe=Object.assign(Object.assign({},J(F.props,["disabled"])),{key:ie,collapsible:(T=q.collapsible)!==null&&T!==void 0?T:"disabled"});return U(F,oe)}return F}):null,[p]);return $(M.createElement(X,Object.assign({ref:n,openMotion:L},J(e,["rootClassName"]),{expandIcon:H,prefixCls:l,className:z,style:Object.assign(Object.assign({},s),m),destroyInactivePanel:y??x}),Q))}),Qe=Object.assign(Ge,{Panel:Me});var je={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"},qe=function(n,a){return M.createElement(Se,j({},n,{ref:a,icon:je}))},De=M.forwardRef(qe);const K={async getConfig(){return(await I.getConfig()).data.data},async updateConfig(e){return(await I.updateConfig(e)).data.data},async validateConfig(e){return(await I.validateConfig(e)).data.data},async backupConfig(){return(await I.backupConfig()).data.data},async restoreConfig(e){return(await I.restoreConfig(e)).data.data},async getConfigHistory(){return(await I.getConfigHistory()).data.data},async saveConfigHistory(e,n,a){return{id:(await I.saveConfigHistory(e,n,a)).data.data.id,name:e,description:a??null,config:n,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),is_active:0}},async applyConfigHistory(e){await I.applyConfigHistory(e)},async deleteConfigHistory(e){await I.deleteConfigHistory(e)},async listConfigFiles(){return(await I.listConfigFiles()).data.data},async switchConfigFile(e){await I.switchConfigFile(e)},async importConfigFile(e,n){const t=(await I.importConfigFile(e,n)).data.data;return{filename:t.filename,path:t.path,pathRelative:t.pathRelative,modifiedTime:new Date().toISOString(),size:0,isActive:!1}},async deleteConfigFile(e){await I.deleteConfigFile(e)},async getConfigFileContent(e){return(await I.getConfigFileContent(e)).data.data},async updateConfigFileContent(e,n){await I.updateConfigFileContent(e,n)},async diagnoseConfig(){return(await I.diagnoseConfig()).data.data},async repairConfig(e=!0){return(await I.repairConfig(e)).data.data}};function Ye(){const e=D(),{handleError:n}=V(),{data:a,isLoading:t,error:d,refetch:u}=Y({queryKey:R.CONFIG,queryFn:()=>K.getConfig()}),s=B({mutationFn:o=>K.updateConfig(o),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG})},onError:o=>n(o)}),r=B({mutationFn:o=>K.validateConfig(o),onError:o=>n(o)});return{config:a,isLoading:t,error:d,refetch:u,update:s.mutate,updateAsync:s.mutateAsync,isUpdating:s.isPending,validate:r.mutate,validateAsync:r.mutateAsync,isValidating:r.isPending,validationResult:r.data}}function Ve(){const e=D(),{handleError:n}=V(),{data:a,isLoading:t,error:d,refetch:u}=Y({queryKey:R.CONFIG_FILES,queryFn:()=>K.listConfigFiles()}),s=B({mutationFn:i=>K.switchConfigFile(i),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_FILES}),e.invalidateQueries({queryKey:R.CONFIG})},onError:i=>n(i)}),r=B({mutationFn:({config:i,name:m})=>K.importConfigFile(i,m),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_FILES})},onError:i=>n(i)}),o=B({mutationFn:i=>K.deleteConfigFile(i),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_FILES})},onError:i=>n(i)});return{configFiles:a||[],isLoading:t,error:d,refetch:u,switchFile:s.mutate,switchFileAsync:s.mutateAsync,isSwitching:s.isPending,importFile:r.mutate,importFileAsync:r.mutateAsync,isImporting:r.isPending,deleteFile:o.mutate,deleteFileAsync:o.mutateAsync,isDeleting:o.isPending}}function Xe(){const e=D(),{handleError:n}=V(),{data:a,isLoading:t,error:d,refetch:u}=Y({queryKey:R.CONFIG_HISTORY,queryFn:()=>K.getConfigHistory()}),s=B({mutationFn:({name:i,config:m,description:g})=>K.saveConfigHistory(i,m,g),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_HISTORY})},onError:i=>n(i)}),r=B({mutationFn:i=>K.applyConfigHistory(i),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_HISTORY}),e.invalidateQueries({queryKey:R.CONFIG})},onError:i=>n(i)}),o=B({mutationFn:i=>K.deleteConfigHistory(i),onSuccess:()=>{e.invalidateQueries({queryKey:R.CONFIG_HISTORY})},onError:i=>n(i)});return{history:a||[],isLoading:t,error:d,refetch:u,save:s.mutate,saveAsync:s.mutateAsync,isSaving:s.isPending,apply:r.mutate,applyAsync:r.mutateAsync,isApplying:r.isPending,delete:o.mutate,deleteAsync:o.mutateAsync,isDeleting:o.isPending}}export{Qe as C,De as R,Ve as a,Xe as b,K as c,Ye as u};
|
|
9
|
-
//# sourceMappingURL=useConfig-29Ugtjk4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConfig-29Ugtjk4.js","sources":["../../node_modules/rc-collapse/es/PanelContent.js","../../node_modules/rc-collapse/es/Panel.js","../../node_modules/rc-collapse/es/hooks/useItems.js","../../node_modules/rc-collapse/es/Collapse.js","../../node_modules/rc-collapse/es/index.js","../../node_modules/antd/es/collapse/CollapsePanel.js","../../node_modules/antd/es/collapse/style/index.js","../../node_modules/antd/es/collapse/Collapse.js","../../node_modules/@ant-design/icons-svg/es/asn/PlayCircleOutlined.js","../../node_modules/@ant-design/icons/es/icons/PlayCircleOutlined.js","../../src/services/configService.ts","../../src/hooks/useConfig.ts"],"sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classnames from 'classnames';\nimport React from 'react';\nvar PanelContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n forceRender = props.forceRender,\n className = props.className,\n style = props.style,\n children = props.children,\n isActive = props.isActive,\n role = props.role,\n customizeClassNames = props.classNames,\n styles = props.styles;\n var _React$useState = React.useState(isActive || forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n rendered = _React$useState2[0],\n setRendered = _React$useState2[1];\n React.useEffect(function () {\n if (forceRender || isActive) {\n setRendered(true);\n }\n }, [forceRender, isActive]);\n if (!rendered) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: classnames(\"\".concat(prefixCls, \"-content\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-content-active\"), isActive), \"\".concat(prefixCls, \"-content-inactive\"), !isActive), className),\n style: style,\n role: role\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-content-box\"), customizeClassNames === null || customizeClassNames === void 0 ? void 0 : customizeClassNames.body),\n style: styles === null || styles === void 0 ? void 0 : styles.body\n }, children));\n});\nPanelContent.displayName = 'PanelContent';\nexport default PanelContent;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"showArrow\", \"headerClass\", \"isActive\", \"onItemClick\", \"forceRender\", \"className\", \"classNames\", \"styles\", \"prefixCls\", \"collapsible\", \"accordion\", \"panelKey\", \"extra\", \"header\", \"expandIcon\", \"openMotion\", \"destroyInactivePanel\", \"children\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport React from 'react';\nimport PanelContent from \"./PanelContent\";\nvar CollapsePanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n headerClass = props.headerClass,\n isActive = props.isActive,\n onItemClick = props.onItemClick,\n forceRender = props.forceRender,\n className = props.className,\n _props$classNames = props.classNames,\n customizeClassNames = _props$classNames === void 0 ? {} : _props$classNames,\n _props$styles = props.styles,\n styles = _props$styles === void 0 ? {} : _props$styles,\n prefixCls = props.prefixCls,\n collapsible = props.collapsible,\n accordion = props.accordion,\n panelKey = props.panelKey,\n extra = props.extra,\n header = props.header,\n expandIcon = props.expandIcon,\n openMotion = props.openMotion,\n destroyInactivePanel = props.destroyInactivePanel,\n children = props.children,\n resetProps = _objectWithoutProperties(props, _excluded);\n var disabled = collapsible === 'disabled';\n var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean';\n var collapsibleProps = _defineProperty(_defineProperty(_defineProperty({\n onClick: function onClick() {\n onItemClick === null || onItemClick === void 0 || onItemClick(panelKey);\n },\n onKeyDown: function onKeyDown(e) {\n if (e.key === 'Enter' || e.keyCode === KeyCode.ENTER || e.which === KeyCode.ENTER) {\n onItemClick === null || onItemClick === void 0 || onItemClick(panelKey);\n }\n },\n role: accordion ? 'tab' : 'button'\n }, 'aria-expanded', isActive), 'aria-disabled', disabled), \"tabIndex\", disabled ? -1 : 0);\n\n // ======================== Icon ========================\n var iconNodeInner = typeof expandIcon === 'function' ? expandIcon(props) : /*#__PURE__*/React.createElement(\"i\", {\n className: \"arrow\"\n });\n var iconNode = iconNodeInner && /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-expand-icon\")\n }, ['header', 'icon'].includes(collapsible) ? collapsibleProps : {}), iconNodeInner);\n var collapsePanelClassNames = classNames(\"\".concat(prefixCls, \"-item\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item-active\"), isActive), \"\".concat(prefixCls, \"-item-disabled\"), disabled), className);\n var headerClassName = classNames(headerClass, \"\".concat(prefixCls, \"-header\"), _defineProperty({}, \"\".concat(prefixCls, \"-collapsible-\").concat(collapsible), !!collapsible), customizeClassNames.header);\n\n // ======================== HeaderProps ========================\n var headerProps = _objectSpread({\n className: headerClassName,\n style: styles.header\n }, ['header', 'icon'].includes(collapsible) ? {} : collapsibleProps);\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, resetProps, {\n ref: ref,\n className: collapsePanelClassNames\n }), /*#__PURE__*/React.createElement(\"div\", headerProps, showArrow && iconNode, /*#__PURE__*/React.createElement(\"span\", _extends({\n className: \"\".concat(prefixCls, \"-header-text\")\n }, collapsible === 'header' ? collapsibleProps : {}), header), ifExtraExist && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: isActive,\n leavedClassName: \"\".concat(prefixCls, \"-content-hidden\")\n }, openMotion, {\n forceRender: forceRender,\n removeOnLeave: destroyInactivePanel\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(PanelContent, {\n ref: motionRef,\n prefixCls: prefixCls,\n className: motionClassName,\n classNames: customizeClassNames,\n style: motionStyle,\n styles: styles,\n isActive: isActive,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : void 0\n }, children);\n }));\n});\nexport default CollapsePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"label\", \"key\", \"collapsible\", \"onItemClick\", \"destroyInactivePanel\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport React from 'react';\nimport CollapsePanel from \"../Panel\";\nvar convertItemsToNodes = function convertItemsToNodes(items, props) {\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n return items.map(function (item, index) {\n var children = item.children,\n label = item.label,\n rawKey = item.key,\n rawCollapsible = item.collapsible,\n rawOnItemClick = item.onItemClick,\n rawDestroyInactivePanel = item.destroyInactivePanel,\n restProps = _objectWithoutProperties(item, _excluded);\n\n // You may be puzzled why you want to convert them all into strings, me too.\n // Maybe: https://github.com/react-component/collapse/blob/aac303a8b6ff30e35060b4f8fecde6f4556fcbe2/src/Collapse.tsx#L15\n var key = String(rawKey !== null && rawKey !== void 0 ? rawKey : index);\n var mergeCollapsible = rawCollapsible !== null && rawCollapsible !== void 0 ? rawCollapsible : collapsible;\n var mergeDestroyInactivePanel = rawDestroyInactivePanel !== null && rawDestroyInactivePanel !== void 0 ? rawDestroyInactivePanel : destroyInactivePanel;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n rawOnItemClick === null || rawOnItemClick === void 0 || rawOnItemClick(value);\n };\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n return /*#__PURE__*/React.createElement(CollapsePanel, _extends({}, restProps, {\n prefixCls: prefixCls,\n key: key,\n panelKey: key,\n isActive: isActive,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n header: label,\n collapsible: mergeCollapsible,\n onItemClick: handleItemClick,\n destroyInactivePanel: mergeDestroyInactivePanel\n }), children);\n });\n};\n\n/**\n * @deprecated The next major version will be removed\n */\nvar getNewChild = function getNewChild(child, index, props) {\n if (!child) return null;\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n var key = child.key || String(index);\n var _child$props = child.props,\n header = _child$props.header,\n headerClass = _child$props.headerClass,\n childDestroyInactivePanel = _child$props.destroyInactivePanel,\n childCollapsible = _child$props.collapsible,\n childOnItemClick = _child$props.onItemClick;\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n var mergeCollapsible = childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n childOnItemClick === null || childOnItemClick === void 0 || childOnItemClick(value);\n };\n var childProps = {\n key: key,\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: childDestroyInactivePanel !== null && childDestroyInactivePanel !== void 0 ? childDestroyInactivePanel : destroyInactivePanel,\n openMotion: openMotion,\n accordion: accordion,\n children: child.props.children,\n onItemClick: handleItemClick,\n expandIcon: expandIcon,\n collapsible: mergeCollapsible\n };\n\n // https://github.com/ant-design/ant-design/issues/20479\n if (typeof child.type === 'string') {\n return child;\n }\n Object.keys(childProps).forEach(function (propName) {\n if (typeof childProps[propName] === 'undefined') {\n delete childProps[propName];\n }\n });\n return /*#__PURE__*/React.cloneElement(child, childProps);\n};\nfunction useItems(items, rawChildren, props) {\n if (Array.isArray(items)) {\n return convertItemsToNodes(items, props);\n }\n return toArray(rawChildren).map(function (child, index) {\n return getNewChild(child, index, props);\n });\n}\nexport default useItems;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport useItems from \"./hooks/useItems\";\nimport CollapsePanel from \"./Panel\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nfunction getActiveKeysArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n var activeKeyType = _typeof(currentActiveKey);\n currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];\n }\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\nvar Collapse = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,\n _props$destroyInactiv = props.destroyInactivePanel,\n destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,\n style = props.style,\n accordion = props.accordion,\n className = props.className,\n children = props.children,\n collapsible = props.collapsible,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon,\n rawActiveKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey,\n _onChange = props.onChange,\n items = props.items;\n var collapseClassName = classNames(prefixCls, className);\n var _useMergedState = useMergedState([], {\n value: rawActiveKey,\n onChange: function onChange(v) {\n return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);\n },\n defaultValue: defaultActiveKey,\n postState: getActiveKeysArray\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n activeKey = _useMergedState2[0],\n setActiveKey = _useMergedState2[1];\n var onItemClick = function onItemClick(key) {\n return setActiveKey(function () {\n if (accordion) {\n return activeKey[0] === key ? [] : [key];\n }\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n return activeKey.filter(function (item) {\n return item !== key;\n });\n }\n return [].concat(_toConsumableArray(activeKey), [key]);\n });\n };\n\n // ======================== Children ========================\n warning(!children, '[rc-collapse] `children` will be removed in next major version. Please use `items` instead.');\n var mergedChildren = useItems(items, children, {\n prefixCls: prefixCls,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n collapsible: collapsible,\n destroyInactivePanel: destroyInactivePanel,\n onItemClick: onItemClick,\n activeKey: activeKey\n });\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: collapseClassName,\n style: style,\n role: accordion ? 'tablist' : undefined\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), mergedChildren);\n});\nexport default Object.assign(Collapse, {\n /**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\n Panel: CollapsePanel\n});","import Collapse from \"./Collapse\";\nexport default Collapse;\n\n/**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\nvar Panel = Collapse.Panel;\nexport { Panel };","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nconst CollapsePanel = /*#__PURE__*/React.forwardRef((props, ref) => {\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Collapse.Panel');\n warning.deprecated(!('disabled' in props), 'disabled', 'collapsible=\"disabled\"');\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showArrow = true\n } = props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const collapsePanelClassName = classNames({\n [`${prefixCls}-no-arrow`]: !showArrow\n }, className);\n return /*#__PURE__*/React.createElement(RcCollapse.Panel, Object.assign({\n ref: ref\n }, props, {\n prefixCls: prefixCls,\n className: collapsePanelClassName\n }));\n});\nexport default CollapsePanel;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const genBaseStyle = token => {\n const {\n componentCls,\n contentBg,\n padding,\n headerBg,\n headerPadding,\n collapseHeaderPaddingSM,\n collapseHeaderPaddingLG,\n collapsePanelBorderRadius,\n lineWidth,\n lineType,\n colorBorder,\n colorText,\n colorTextHeading,\n colorTextDisabled,\n fontSizeLG,\n lineHeight,\n lineHeightLG,\n marginSM,\n paddingSM,\n paddingLG,\n paddingXS,\n motionDurationSlow,\n fontSizeIcon,\n contentPadding,\n fontHeight,\n fontHeightLG\n } = token;\n const borderBase = `${unit(lineWidth)} ${lineType} ${colorBorder}`;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n backgroundColor: headerBg,\n border: borderBase,\n borderRadius: collapsePanelBorderRadius,\n '&-rtl': {\n direction: 'rtl'\n },\n [`& > ${componentCls}-item`]: {\n borderBottom: borderBase,\n '&:first-child': {\n [`\n &,\n & > ${componentCls}-header`]: {\n borderRadius: `${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)} 0 0`\n }\n },\n '&:last-child': {\n [`\n &,\n & > ${componentCls}-header`]: {\n borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n }\n },\n [`> ${componentCls}-header`]: Object.assign(Object.assign({\n position: 'relative',\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n padding: headerPadding,\n color: colorTextHeading,\n lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}, visibility 0s`\n }, genFocusStyle(token)), {\n [`> ${componentCls}-header-text`]: {\n flex: 'auto'\n },\n // >>>>> Arrow\n [`${componentCls}-expand-icon`]: {\n height: fontHeight,\n display: 'flex',\n alignItems: 'center',\n paddingInlineEnd: marginSM\n },\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n // when `transform: rotate()` is applied to icon's root element\n transition: `transform ${motionDurationSlow}`,\n // when `transform: rotate()` is applied to icon's child element\n svg: {\n transition: `transform ${motionDurationSlow}`\n }\n }),\n // >>>>> Text\n [`${componentCls}-header-text`]: {\n marginInlineEnd: 'auto'\n }\n }),\n [`${componentCls}-collapsible-header`]: {\n cursor: 'default',\n [`${componentCls}-header-text`]: {\n flex: 'none',\n cursor: 'pointer'\n },\n [`${componentCls}-expand-icon`]: {\n cursor: 'pointer'\n }\n },\n [`${componentCls}-collapsible-icon`]: {\n cursor: 'unset',\n [`${componentCls}-expand-icon`]: {\n cursor: 'pointer'\n }\n }\n },\n [`${componentCls}-content`]: {\n color: colorText,\n backgroundColor: contentBg,\n borderTop: borderBase,\n [`& > ${componentCls}-content-box`]: {\n padding: contentPadding\n },\n '&-hidden': {\n display: 'none'\n }\n },\n '&-small': {\n [`> ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingSM,\n paddingInlineStart: paddingXS,\n [`> ${componentCls}-expand-icon`]: {\n // Arrow offset\n marginInlineStart: token.calc(paddingSM).sub(paddingXS).equal()\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingSM\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-item`]: {\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingLG,\n paddingInlineStart: padding,\n [`> ${componentCls}-expand-icon`]: {\n height: fontHeightLG,\n // Arrow offset\n marginInlineStart: token.calc(paddingLG).sub(padding).equal()\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingLG\n }\n }\n },\n [`${componentCls}-item:last-child`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n }\n },\n [`& ${componentCls}-item-disabled > ${componentCls}-header`]: {\n [`\n &,\n & > .arrow\n `]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================== Icon Position ==========================\n [`&${componentCls}-icon-position-end`]: {\n [`& > ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n [`${componentCls}-expand-icon`]: {\n order: 1,\n paddingInlineEnd: 0,\n paddingInlineStart: marginSM\n }\n }\n }\n }\n })\n };\n};\nconst genArrowStyle = token => {\n const {\n componentCls\n } = token;\n const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow`;\n return {\n [`${componentCls}-rtl`]: {\n [fixedSelector]: {\n transform: `rotate(180deg)`\n }\n }\n };\n};\nconst genBorderlessStyle = token => {\n const {\n componentCls,\n headerBg,\n borderlessContentPadding,\n borderlessContentBg,\n colorBorder\n } = token;\n return {\n [`${componentCls}-borderless`]: {\n backgroundColor: headerBg,\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: `1px solid ${colorBorder}`\n },\n [`\n > ${componentCls}-item:last-child,\n > ${componentCls}-item:last-child ${componentCls}-header\n `]: {\n borderRadius: 0\n },\n [`> ${componentCls}-item:last-child`]: {\n borderBottom: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content`]: {\n backgroundColor: borderlessContentBg,\n borderTop: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: borderlessContentPadding\n }\n }\n };\n};\nconst genGhostStyle = token => {\n const {\n componentCls,\n paddingSM\n } = token;\n return {\n [`${componentCls}-ghost`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-content-box`]: {\n paddingBlock: paddingSM\n }\n }\n }\n }\n };\n};\nexport const prepareComponentToken = token => ({\n headerPadding: `${token.paddingSM}px ${token.padding}px`,\n headerBg: token.colorFillAlter,\n contentPadding: `${token.padding}px 16px`,\n // Fixed Value\n contentBg: token.colorBgContainer,\n borderlessContentPadding: `${token.paddingXXS}px 16px ${token.padding}px`,\n borderlessContentBg: 'transparent'\n});\nexport default genStyleHooks('Collapse', token => {\n const collapseToken = mergeToken(token, {\n collapseHeaderPaddingSM: `${unit(token.paddingXS)} ${unit(token.paddingSM)}`,\n collapseHeaderPaddingLG: `${unit(token.padding)} ${unit(token.paddingLG)}`,\n collapsePanelBorderRadius: token.borderRadiusLG\n });\n return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), genCollapseMotion(collapseToken)];\n}, prepareComponentToken);","\"use client\";\n\nimport * as React from 'react';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { useComponentConfig } from '../config-provider/context';\nimport useSize from '../config-provider/hooks/useSize';\nimport CollapsePanel from './CollapsePanel';\nimport useStyle from './style';\nconst Collapse = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n expandIcon: contextExpandIcon,\n className: contextClassName,\n style: contextStyle\n } = useComponentConfig('collapse');\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n bordered = true,\n ghost,\n size: customizeSize,\n expandIconPosition = 'start',\n children,\n destroyInactivePanel,\n destroyOnHidden,\n expandIcon\n } = props;\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : ctx) !== null && _a !== void 0 ? _a : 'middle';\n });\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Collapse');\n // Warning if use legacy type `expandIconPosition`\n process.env.NODE_ENV !== \"production\" ? warning(expandIconPosition !== 'left' && expandIconPosition !== 'right', 'deprecated', '`expandIconPosition` with `left` or `right` is deprecated. Please use `start` or `end` instead.') : void 0;\n warning.deprecated(!('destroyInactivePanel' in props), 'destroyInactivePanel', 'destroyOnHidden');\n }\n // Align with logic position\n const mergedExpandIconPosition = React.useMemo(() => {\n if (expandIconPosition === 'left') {\n return 'start';\n }\n return expandIconPosition === 'right' ? 'end' : expandIconPosition;\n }, [expandIconPosition]);\n const mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;\n const renderExpandIcon = React.useCallback((panelProps = {}) => {\n const icon = typeof mergedExpandIcon === 'function' ? mergedExpandIcon(panelProps) : (/*#__PURE__*/React.createElement(RightOutlined, {\n rotate: panelProps.isActive ? direction === 'rtl' ? -90 : 90 : undefined,\n \"aria-label\": panelProps.isActive ? 'expanded' : 'collapsed'\n }));\n return cloneElement(icon, () => {\n var _a;\n return {\n className: classNames((_a = icon.props) === null || _a === void 0 ? void 0 : _a.className, `${prefixCls}-arrow`)\n };\n });\n }, [mergedExpandIcon, prefixCls, direction]);\n const collapseClassName = classNames(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-ghost`]: !!ghost,\n [`${prefixCls}-${mergedSize}`]: mergedSize !== 'middle'\n }, contextClassName, className, rootClassName, hashId, cssVarCls);\n const openMotion = React.useMemo(() => Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false,\n leavedClassName: `${prefixCls}-content-hidden`\n }), [rootPrefixCls, prefixCls]);\n const items = React.useMemo(() => {\n if (!children) {\n return null;\n }\n return toArray(children).map((child, index) => {\n var _a, _b;\n const childProps = child.props;\n if (childProps === null || childProps === void 0 ? void 0 : childProps.disabled) {\n const key = (_a = child.key) !== null && _a !== void 0 ? _a : String(index);\n const mergedChildProps = Object.assign(Object.assign({}, omit(child.props, ['disabled'])), {\n key,\n collapsible: (_b = childProps.collapsible) !== null && _b !== void 0 ? _b : 'disabled'\n });\n return cloneElement(child, mergedChildProps);\n }\n return child;\n });\n }, [children]);\n return wrapCSSVar(\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(RcCollapse, Object.assign({\n ref: ref,\n openMotion: openMotion\n }, omit(props, ['rootClassName']), {\n expandIcon: renderExpandIcon,\n prefixCls: prefixCls,\n className: collapseClassName,\n style: Object.assign(Object.assign({}, contextStyle), style),\n // TODO: In the future, destroyInactivePanel in rc-collapse needs to be upgrade to destroyOnHidden\n destroyInactivePanel: destroyOnHidden !== null && destroyOnHidden !== void 0 ? destroyOnHidden : destroyInactivePanel\n }), items));\n});\nif (process.env.NODE_ENV !== 'production') {\n Collapse.displayName = 'Collapse';\n}\nexport default Object.assign(Collapse, {\n Panel: CollapsePanel\n});","// This icon file is generated automatically.\nvar PlayCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z\" } }] }, \"name\": \"play-circle\", \"theme\": \"outlined\" };\nexport default PlayCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlayCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlayCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlayCircleOutlined = function PlayCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlayCircleOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PlayCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PlayCircleOutlined';\n}\nexport default RefIcon;","import {\n api,\n ConfigData,\n ConfigHistoryEntry,\n ConfigFileInfo,\n ConfigFileContent,\n ConfigDiagnoseResult,\n ConfigRepairResult,\n} from './api';\n\n/**\n * Configuration Service\n * Encapsulates all configuration-related API calls\n */\nexport const configService = {\n /**\n * Get current configuration\n */\n async getConfig(): Promise<ConfigData> {\n const response = await api.getConfig();\n return response.data.data;\n },\n\n /**\n * Update configuration\n */\n async updateConfig(config: Partial<ConfigData>): Promise<ConfigData> {\n const response = await api.updateConfig(config);\n return response.data.data;\n },\n\n /**\n * Validate configuration without saving\n */\n async validateConfig(config: Partial<ConfigData>): Promise<{ valid: boolean; errors?: string[] }> {\n const response = await api.validateConfig(config);\n return response.data.data;\n },\n\n /**\n * Backup current configuration\n */\n async backupConfig(): Promise<{ backupPath: string }> {\n const response = await api.backupConfig();\n return response.data.data;\n },\n\n /**\n * Restore configuration from backup\n */\n async restoreConfig(backupPath: string): Promise<ConfigData> {\n const response = await api.restoreConfig(backupPath);\n return response.data.data;\n },\n\n /**\n * Get configuration history\n */\n async getConfigHistory(): Promise<ConfigHistoryEntry[]> {\n const response = await api.getConfigHistory();\n return response.data.data;\n },\n\n /**\n * Save configuration to history\n */\n async saveConfigHistory(\n name: string,\n config: Partial<ConfigData>,\n description?: string\n ): Promise<ConfigHistoryEntry> {\n const response = await api.saveConfigHistory(name, config, description);\n // API returns { id: number }, but we need to fetch the full entry\n // For now, return a minimal entry - the actual entry will be fetched via listConfigHistory\n return {\n id: response.data.data.id,\n name,\n description: description ?? null,\n config: config as ConfigData,\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n is_active: 0,\n };\n },\n\n /**\n * Apply a configuration history entry\n */\n async applyConfigHistory(id: number): Promise<void> {\n await api.applyConfigHistory(id);\n },\n\n /**\n * Delete a configuration history entry\n */\n async deleteConfigHistory(id: number): Promise<void> {\n await api.deleteConfigHistory(id);\n },\n\n /**\n * List all configuration files\n */\n async listConfigFiles(): Promise<ConfigFileInfo[]> {\n const response = await api.listConfigFiles();\n return response.data.data;\n },\n\n /**\n * Switch to a different configuration file\n */\n async switchConfigFile(path: string): Promise<void> {\n await api.switchConfigFile(path);\n },\n\n /**\n * Import a configuration file\n */\n async importConfigFile(\n config: Partial<ConfigData>,\n name?: string\n ): Promise<ConfigFileInfo> {\n const response = await api.importConfigFile(config, name);\n const data = response.data.data;\n // API returns { path, pathRelative, filename }, but we need full ConfigFileInfo\n // Return a minimal ConfigFileInfo - full info will be available via listConfigFiles\n return {\n filename: data.filename,\n path: data.path,\n pathRelative: data.pathRelative,\n modifiedTime: new Date().toISOString(),\n size: 0,\n isActive: false,\n };\n },\n\n /**\n * Delete a configuration file\n */\n async deleteConfigFile(filename: string): Promise<void> {\n await api.deleteConfigFile(filename);\n },\n\n /**\n * Get configuration file content\n */\n async getConfigFileContent(filename: string): Promise<ConfigFileContent> {\n const response = await api.getConfigFileContent(filename);\n return response.data.data;\n },\n\n /**\n * Update configuration file content\n */\n async updateConfigFileContent(filename: string, content: string): Promise<void> {\n await api.updateConfigFileContent(filename, content);\n },\n\n /**\n * Diagnose configuration\n */\n async diagnoseConfig(): Promise<ConfigDiagnoseResult> {\n const response = await api.diagnoseConfig();\n return response.data.data;\n },\n\n /**\n * Repair configuration\n */\n async repairConfig(createBackup = true): Promise<ConfigRepairResult> {\n const response = await api.repairConfig(createBackup);\n return response.data.data;\n },\n};\n\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { configService } from '../services/configService';\nimport {\n ConfigData,\n ConfigFileInfo,\n ConfigHistoryEntry,\n ConfigDiagnoseResult,\n ConfigRepairResult,\n} from '../services/api';\nimport { useErrorHandler } from './useErrorHandler';\nimport { QUERY_KEYS } from '../constants';\n\n/**\n * Hook for managing configuration\n */\nexport function useConfig() {\n const queryClient = useQueryClient();\n const { handleError } = useErrorHandler();\n\n const {\n data: config,\n isLoading,\n error,\n refetch,\n } = useQuery<ConfigData>({\n queryKey: QUERY_KEYS.CONFIG,\n queryFn: () => configService.getConfig(),\n });\n\n const updateMutation = useMutation<ConfigData, unknown, Partial<ConfigData>>({\n mutationFn: (config: Partial<ConfigData>) => configService.updateConfig(config),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG });\n },\n onError: (error) => handleError(error),\n });\n\n const validateMutation = useMutation<{ valid: boolean; errors?: string[] }, unknown, Partial<ConfigData>>({\n mutationFn: (config: Partial<ConfigData>) => configService.validateConfig(config),\n onError: (error) => handleError(error),\n });\n\n return {\n config: config,\n isLoading,\n error,\n refetch,\n update: updateMutation.mutate,\n updateAsync: updateMutation.mutateAsync,\n isUpdating: updateMutation.isPending,\n validate: validateMutation.mutate,\n validateAsync: validateMutation.mutateAsync,\n isValidating: validateMutation.isPending,\n validationResult: validateMutation.data,\n };\n}\n\n/**\n * Hook for managing configuration files\n */\nexport function useConfigFiles() {\n const queryClient = useQueryClient();\n const { handleError } = useErrorHandler();\n\n const {\n data: configFiles,\n isLoading,\n error,\n refetch,\n } = useQuery<ConfigFileInfo[]>({\n queryKey: QUERY_KEYS.CONFIG_FILES,\n queryFn: () => configService.listConfigFiles(),\n });\n\n const switchMutation = useMutation<void, unknown, string>({\n mutationFn: (path: string) => configService.switchConfigFile(path),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_FILES });\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG });\n },\n onError: (error) => handleError(error),\n });\n\n const importMutation = useMutation<ConfigFileInfo, unknown, { config: Partial<ConfigData>; name?: string }>({\n mutationFn: ({ config, name }: { config: Partial<ConfigData>; name?: string }) =>\n configService.importConfigFile(config, name),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_FILES });\n },\n onError: (error) => handleError(error),\n });\n\n const deleteMutation = useMutation<void, unknown, string>({\n mutationFn: (filename: string) => configService.deleteConfigFile(filename),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_FILES });\n },\n onError: (error) => handleError(error),\n });\n\n return {\n configFiles: configFiles || [],\n isLoading,\n error,\n refetch,\n switchFile: switchMutation.mutate,\n switchFileAsync: switchMutation.mutateAsync,\n isSwitching: switchMutation.isPending,\n importFile: importMutation.mutate,\n importFileAsync: importMutation.mutateAsync,\n isImporting: importMutation.isPending,\n deleteFile: deleteMutation.mutate,\n deleteFileAsync: deleteMutation.mutateAsync,\n isDeleting: deleteMutation.isPending,\n };\n}\n\n/**\n * Hook for managing configuration history\n */\nexport function useConfigHistory() {\n const queryClient = useQueryClient();\n const { handleError } = useErrorHandler();\n\n const {\n data: history,\n isLoading,\n error,\n refetch,\n } = useQuery<ConfigHistoryEntry[]>({\n queryKey: QUERY_KEYS.CONFIG_HISTORY,\n queryFn: () => configService.getConfigHistory(),\n });\n\n const saveMutation = useMutation<\n ConfigHistoryEntry,\n unknown,\n { name: string; config: Partial<ConfigData>; description?: string }\n >({\n mutationFn: ({\n name,\n config,\n description,\n }: {\n name: string;\n config: Partial<ConfigData>;\n description?: string;\n }) => configService.saveConfigHistory(name, config, description),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_HISTORY });\n },\n onError: (error) => handleError(error),\n });\n\n const applyMutation = useMutation<void, unknown, number>({\n mutationFn: (id: number) => configService.applyConfigHistory(id),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_HISTORY });\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG });\n },\n onError: (error) => handleError(error),\n });\n\n const deleteMutation = useMutation<void, unknown, number>({\n mutationFn: (id: number) => configService.deleteConfigHistory(id),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.CONFIG_HISTORY });\n },\n onError: (error) => handleError(error),\n });\n\n return {\n history: history || [],\n isLoading,\n error,\n refetch,\n save: saveMutation.mutate,\n saveAsync: saveMutation.mutateAsync,\n isSaving: saveMutation.isPending,\n apply: applyMutation.mutate,\n applyAsync: applyMutation.mutateAsync,\n isApplying: applyMutation.isPending,\n delete: deleteMutation.mutate,\n deleteAsync: deleteMutation.mutateAsync,\n isDeleting: deleteMutation.isPending,\n };\n}\n\n/**\n * Hook for configuration validation\n */\nexport function useConfigValidation() {\n const { handleError } = useErrorHandler();\n\n const validateMutation = useMutation<{ valid: boolean; errors?: string[] }, unknown, Partial<ConfigData>>({\n mutationFn: (config: Partial<ConfigData>) => configService.validateConfig(config),\n onError: (error) => handleError(error),\n });\n\n const diagnoseQuery = useQuery<ConfigDiagnoseResult>({\n queryKey: QUERY_KEYS.CONFIG_DIAGNOSE,\n queryFn: () => configService.diagnoseConfig(),\n enabled: false, // Only run when explicitly called\n });\n\n const repairMutation = useMutation<ConfigRepairResult, unknown, boolean | undefined>({\n mutationFn: (createBackup: boolean = true) => configService.repairConfig(createBackup),\n onError: (error) => handleError(error),\n });\n\n return {\n validate: validateMutation.mutate,\n validateAsync: validateMutation.mutateAsync,\n isValidating: validateMutation.isPending,\n validationResult: validateMutation.data,\n diagnose: diagnoseQuery.refetch,\n isDiagnosing: diagnoseQuery.isFetching,\n diagnoseResult: diagnoseQuery.data,\n repair: repairMutation.mutate,\n repairAsync: repairMutation.mutateAsync,\n isRepairing: repairMutation.isPending,\n repairResult: repairMutation.data,\n };\n}\n\n"],"names":["PanelContent","React","props","ref","prefixCls","forceRender","className","style","children","isActive","role","customizeClassNames","styles","_React$useState","_React$useState2","_slicedToArray","rendered","setRendered","classnames","_defineProperty","_excluded","CollapsePanel","_props$showArrow","showArrow","headerClass","onItemClick","_props$classNames","_props$styles","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","resetProps","_objectWithoutProperties","disabled","ifExtraExist","collapsibleProps","e","KeyCode","iconNodeInner","iconNode","_extends","collapsePanelClassNames","classNames","headerClassName","headerProps","_objectSpread","CSSMotion","_ref","motionRef","motionClassName","motionStyle","convertItemsToNodes","items","activeKey","item","index","label","rawKey","rawCollapsible","rawOnItemClick","rawDestroyInactivePanel","restProps","key","mergeCollapsible","mergeDestroyInactivePanel","handleItemClick","value","getNewChild","child","_child$props","childDestroyInactivePanel","childCollapsible","childOnItemClick","childProps","propName","useItems","rawChildren","toArray","getActiveKeysArray","currentActiveKey","activeKeyType","_typeof","Collapse","_props$prefixCls","_props$destroyInactiv","rawActiveKey","defaultActiveKey","_onChange","collapseClassName","_useMergedState","useMergedState","v","_useMergedState2","setActiveKey","_toConsumableArray","warning","mergedChildren","pickAttrs","Collapse$3","React.forwardRef","getPrefixCls","React.useContext","ConfigContext","customizePrefixCls","collapsePanelClassName","React.createElement","RcCollapse","genBaseStyle","token","componentCls","contentBg","padding","headerBg","headerPadding","collapseHeaderPaddingSM","collapseHeaderPaddingLG","collapsePanelBorderRadius","lineWidth","lineType","colorBorder","colorText","colorTextHeading","colorTextDisabled","fontSizeLG","lineHeight","lineHeightLG","marginSM","paddingSM","paddingLG","paddingXS","motionDurationSlow","fontSizeIcon","contentPadding","fontHeight","fontHeightLG","borderBase","unit","resetComponent","genFocusStyle","resetIcon","genArrowStyle","fixedSelector","genBorderlessStyle","borderlessContentPadding","borderlessContentBg","genGhostStyle","prepareComponentToken","useStyle","genStyleHooks","collapseToken","mergeToken","genCollapseMotion","direction","contextExpandIcon","contextClassName","contextStyle","useComponentConfig","rootClassName","bordered","ghost","customizeSize","expandIconPosition","destroyOnHidden","mergedSize","useSize","ctx","_a","rootPrefixCls","wrapCSSVar","hashId","cssVarCls","mergedExpandIconPosition","React.useMemo","mergedExpandIcon","renderExpandIcon","React.useCallback","panelProps","icon","RightOutlined","cloneElement","initCollapseMotion","_b","mergedChildProps","omit","Collapse$1","PlayCircleOutlined","AntdIcon","PlayCircleOutlinedSvg","RefIcon","configService","api","config","backupPath","name","description","id","path","data","filename","content","createBackup","useConfig","queryClient","useQueryClient","handleError","useErrorHandler","isLoading","error","refetch","useQuery","QUERY_KEYS","updateMutation","useMutation","validateMutation","useConfigFiles","configFiles","switchMutation","importMutation","deleteMutation","useConfigHistory","history","saveMutation","applyMutation"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as D,I as A,_ as S,a as o,T as g,u as y,Q as r}from"./index-BFgUdwJv.js";import{u as d}from"./errorCodeTranslator-DWsWq6B3.js";import{u as T}from"./useErrorHandler-DWHs3RlU.js";var k={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"},f=function(t,a){return D.createElement(A,S({},t,{ref:a,icon:k}))},v=D.forwardRef(f);const i={async startDownload(e,t,a){return(await o.startDownload(e,t,a)).data.data},async stopDownload(e){await o.stopDownload(e)},async getDownloadStatus(e){return(await o.getDownloadStatus(e)).data.data},async getTaskLogs(e,t){return(await o.getTaskLogs(e,t)).data.data},async getDownloadHistory(e){return(await o.getDownloadHistory(e)).data.data},async runAllDownloads(e){return(await o.runAllDownloads(e)).data.data},async randomDownload(e){return(await o.randomDownload(e)).data.data},async getIncompleteTasks(){return(await o.getIncompleteTasks()).data.data},async resumeDownload(e,t){return(await o.resumeDownload(e,t)).data.data},async deleteIncompleteTask(e){await o.deleteIncompleteTask(e)},async deleteAllIncompleteTasks(){return(await o.deleteAllIncompleteTasks()).data.data}};function q(){const e=g(),{handleError:t}=T(),a=d({mutationFn:({targetId:s,config:c,configPaths:u})=>i.startDownload(s,c,u),onSuccess:()=>{e.invalidateQueries({queryKey:r.DOWNLOAD_STATUS()})},onError:s=>t(s)}),n=d({mutationFn:s=>i.stopDownload(s),onSuccess:()=>{e.invalidateQueries({queryKey:r.DOWNLOAD_STATUS()})},onError:s=>t(s)});return{start:a.mutate,startAsync:a.mutateAsync,isStarting:a.isPending,stop:n.mutate,stopAsync:n.mutateAsync,isStopping:n.isPending}}function I(e,t){const{data:a,isLoading:n,error:s,refetch:c}=y({queryKey:r.DOWNLOAD_STATUS(e),queryFn:()=>i.getDownloadStatus(e),refetchInterval:t});return{status:a,isLoading:n,error:s,refetch:c,hasActiveTask:a?.hasActiveTask??!1,activeTask:a?.activeTask,allTasks:a?.allTasks??[]}}function K(e,t,a){const{data:n,isLoading:s,error:c,refetch:u}=y({queryKey:r.DOWNLOAD_LOGS(e),queryFn:()=>i.getTaskLogs(e,t),enabled:!!e,refetchInterval:e&&a?a:!1});return{logs:n?.logs??[],isLoading:s,error:c,refetch:u}}function h(e){const{data:t,isLoading:a,error:n,refetch:s}=y({queryKey:r.DOWNLOAD_HISTORY(e),queryFn:()=>i.getDownloadHistory(e)});return{items:t?.items??[],total:t?.total??0,page:t?.page??1,limit:t?.limit??20,isLoading:a,error:n,refetch:s}}function C(){const e=g(),{handleError:t}=T(),{data:a,isLoading:n,error:s,refetch:c}=y({queryKey:r.INCOMPLETE_TASKS,queryFn:()=>i.getIncompleteTasks()}),u=d({mutationFn:({tag:l,type:w})=>i.resumeDownload(l,w),onSuccess:()=>{e.invalidateQueries({queryKey:r.INCOMPLETE_TASKS}),e.invalidateQueries({queryKey:r.DOWNLOAD_STATUS()})},onError:l=>t(l)}),m=d({mutationFn:l=>i.deleteIncompleteTask(l),onSuccess:()=>{e.invalidateQueries({queryKey:r.INCOMPLETE_TASKS})},onError:l=>t(l)}),p=d({mutationFn:()=>i.deleteAllIncompleteTasks(),onSuccess:()=>{e.invalidateQueries({queryKey:r.INCOMPLETE_TASKS})},onError:l=>t(l)});return{tasks:a?.tasks??[],isLoading:n,error:s,refetch:c,resume:u.mutate,resumeAsync:u.mutateAsync,isResuming:u.isPending,delete:m.mutate,deleteAsync:m.mutateAsync,isDeleting:m.isPending,deleteAll:p.mutate,deleteAllAsync:p.mutateAsync,isDeletingAll:p.isPending}}export{v as R,I as a,K as b,C as c,h as d,q as u};
|
|
2
|
-
//# sourceMappingURL=useDownload-Dt6lsP8S.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDownload-Dt6lsP8S.js","sources":["../../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../../src/services/downloadService.ts","../../src/hooks/useDownload.ts"],"sourcesContent":["// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ClockCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ClockCircleOutlined';\n}\nexport default RefIcon;","import { api, ConfigData } from './api';\n\n/**\n * Download Service\n * Encapsulates all download-related API calls\n */\nexport const downloadService = {\n /**\n * Start a download task\n */\n async startDownload(targetId?: string, config?: Partial<ConfigData>, configPaths?: string[]) {\n const response = await api.startDownload(targetId, config, configPaths);\n return response.data.data;\n },\n\n /**\n * Stop a running download task\n */\n async stopDownload(taskId: string): Promise<void> {\n await api.stopDownload(taskId);\n },\n\n /**\n * Get download status\n */\n async getDownloadStatus(taskId?: string) {\n const response = await api.getDownloadStatus(taskId);\n return response.data.data;\n },\n\n /**\n * Get logs for a specific task\n */\n async getTaskLogs(taskId: string, limit?: number) {\n const response = await api.getTaskLogs(taskId, limit);\n return response.data.data;\n },\n\n /**\n * Get download history\n */\n async getDownloadHistory(params?: {\n page?: number;\n limit?: number;\n type?: string;\n tag?: string;\n author?: string;\n startDate?: string;\n endDate?: string;\n sortBy?: 'downloadedAt' | 'title' | 'author' | 'pixivId';\n sortOrder?: 'asc' | 'desc';\n }) {\n const response = await api.getDownloadHistory(params);\n return response.data.data;\n },\n\n /**\n * Run all configured download targets\n */\n async runAllDownloads(configPaths?: string[]) {\n const response = await api.runAllDownloads(configPaths);\n return response.data.data;\n },\n\n /**\n * Download random works\n */\n async randomDownload(type?: 'illustration' | 'novel') {\n const response = await api.randomDownload(type);\n return response.data.data;\n },\n\n /**\n * Get list of incomplete download tasks\n */\n async getIncompleteTasks() {\n const response = await api.getIncompleteTasks();\n return response.data.data;\n },\n\n /**\n * Resume an incomplete download\n */\n async resumeDownload(tag: string, type: 'illustration' | 'novel') {\n const response = await api.resumeDownload(tag, type);\n return response.data.data;\n },\n\n /**\n * Delete a single incomplete task\n */\n async deleteIncompleteTask(id: number): Promise<void> {\n await api.deleteIncompleteTask(id);\n },\n\n /**\n * Delete all incomplete tasks\n */\n async deleteAllIncompleteTasks() {\n const response = await api.deleteAllIncompleteTasks();\n return response.data.data;\n },\n};\n\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { downloadService } from '../services/downloadService';\nimport { ConfigData } from '../services/api';\nimport { useErrorHandler } from './useErrorHandler';\nimport { QUERY_KEYS } from '../constants';\n\n/**\n * Hook for managing download tasks\n */\nexport function useDownload() {\n const queryClient = useQueryClient();\n const { handleError } = useErrorHandler();\n\n const startMutation = useMutation({\n mutationFn: ({\n targetId,\n config,\n configPaths,\n }: {\n targetId?: string;\n config?: Partial<ConfigData>;\n configPaths?: string[];\n }) => downloadService.startDownload(targetId, config, configPaths),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.DOWNLOAD_STATUS() });\n },\n onError: (error) => handleError(error),\n });\n\n const stopMutation = useMutation({\n mutationFn: (taskId: string) => downloadService.stopDownload(taskId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.DOWNLOAD_STATUS() });\n },\n onError: (error) => handleError(error),\n });\n\n return {\n start: startMutation.mutate,\n startAsync: startMutation.mutateAsync,\n isStarting: startMutation.isPending,\n stop: stopMutation.mutate,\n stopAsync: stopMutation.mutateAsync,\n isStopping: stopMutation.isPending,\n };\n}\n\n/**\n * Hook for managing download status\n */\nexport function useDownloadStatus(taskId?: string, refetchInterval?: number | false) {\n const {\n data: status,\n isLoading,\n error,\n refetch,\n } = useQuery({\n queryKey: QUERY_KEYS.DOWNLOAD_STATUS(taskId),\n queryFn: () => downloadService.getDownloadStatus(taskId),\n refetchInterval: refetchInterval ?? 2000,\n });\n\n return {\n status,\n isLoading,\n error,\n refetch,\n hasActiveTask: status?.hasActiveTask ?? false,\n activeTask: status?.activeTask,\n allTasks: status?.allTasks ?? [],\n };\n}\n\n/**\n * Hook for managing download task logs\n */\nexport function useDownloadLogs(taskId: string | undefined, limit?: number, refetchInterval?: number | false) {\n const {\n data: logsData,\n isLoading,\n error,\n refetch,\n } = useQuery({\n queryKey: QUERY_KEYS.DOWNLOAD_LOGS(taskId!),\n queryFn: () => downloadService.getTaskLogs(taskId!, limit),\n enabled: !!taskId,\n refetchInterval: taskId && (refetchInterval ?? 2000) ? refetchInterval ?? 2000 : false,\n });\n\n return {\n logs: logsData?.logs ?? [],\n isLoading,\n error,\n refetch,\n };\n}\n\n/**\n * Hook for managing download history\n */\nexport function useDownloadHistory(params?: {\n page?: number;\n limit?: number;\n type?: string;\n tag?: string;\n author?: string;\n startDate?: string;\n endDate?: string;\n sortBy?: 'downloadedAt' | 'title' | 'author' | 'pixivId';\n sortOrder?: 'asc' | 'desc';\n}) {\n const {\n data: historyData,\n isLoading,\n error,\n refetch,\n } = useQuery({\n queryKey: QUERY_KEYS.DOWNLOAD_HISTORY(params),\n queryFn: () => downloadService.getDownloadHistory(params),\n });\n\n return {\n items: historyData?.items ?? [],\n total: historyData?.total ?? 0,\n page: historyData?.page ?? 1,\n limit: historyData?.limit ?? 20,\n isLoading,\n error,\n refetch,\n };\n}\n\n/**\n * Hook for managing incomplete download tasks\n */\nexport function useIncompleteTasks() {\n const queryClient = useQueryClient();\n const { handleError } = useErrorHandler();\n\n const {\n data: incompleteTasksData,\n isLoading,\n error,\n refetch,\n } = useQuery({\n queryKey: QUERY_KEYS.INCOMPLETE_TASKS,\n queryFn: () => downloadService.getIncompleteTasks(),\n });\n\n const resumeMutation = useMutation({\n mutationFn: ({ tag, type }: { tag: string; type: 'illustration' | 'novel' }) =>\n downloadService.resumeDownload(tag, type),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.INCOMPLETE_TASKS });\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.DOWNLOAD_STATUS() });\n },\n onError: (error) => handleError(error),\n });\n\n const deleteMutation = useMutation({\n mutationFn: (id: number) => downloadService.deleteIncompleteTask(id),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.INCOMPLETE_TASKS });\n },\n onError: (error) => handleError(error),\n });\n\n const deleteAllMutation = useMutation({\n mutationFn: () => downloadService.deleteAllIncompleteTasks(),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.INCOMPLETE_TASKS });\n },\n onError: (error) => handleError(error),\n });\n\n return {\n tasks: incompleteTasksData?.tasks ?? [],\n isLoading,\n error,\n refetch,\n resume: resumeMutation.mutate,\n resumeAsync: resumeMutation.mutateAsync,\n isResuming: resumeMutation.isPending,\n delete: deleteMutation.mutate,\n deleteAsync: deleteMutation.mutateAsync,\n isDeleting: deleteMutation.isPending,\n deleteAll: deleteAllMutation.mutate,\n deleteAllAsync: deleteAllMutation.mutateAsync,\n isDeletingAll: deleteAllMutation.isPending,\n };\n}\n\n"],"names":["ClockCircleOutlined","props","ref","AntdIcon","_extends","ClockCircleOutlinedSvg","RefIcon","React.forwardRef","downloadService","targetId","config","configPaths","api","taskId","limit","params","type","tag","id","useDownload","queryClient","useQueryClient","handleError","useErrorHandler","startMutation","useMutation","QUERY_KEYS","error","stopMutation","useDownloadStatus","refetchInterval","status","isLoading","refetch","useQuery","useDownloadLogs","logsData","useDownloadHistory","historyData","useIncompleteTasks","incompleteTasksData","resumeMutation","deleteMutation","deleteAllMutation"],"mappings":"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","x_google_ignoreList":[0,1]}
|