@gkd-kit/inspect 0.0.1756715340160 → 0.0.1758081556944

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/404.html +3 -3
  2. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-C6v5UzI9.js +17 -0
  3. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-C6v5UzI9.js.map +1 -0
  4. package/dist/assets/DevicePage-BFnJKico.js +49 -0
  5. package/dist/assets/DevicePage-BFnJKico.js.map +1 -0
  6. package/dist/assets/{HomePage-Ckec0Lnr.js → HomePage-DW24KLDn.js} +7 -7
  7. package/dist/assets/{HomePage-Ckec0Lnr.js.map → HomePage-DW24KLDn.js.map} +1 -1
  8. package/dist/assets/{ImportPage-CY2laQkD.js → ImportPage-6z7fBRPl.js} +2 -2
  9. package/dist/assets/{ImportPage-CY2laQkD.js.map → ImportPage-6z7fBRPl.js.map} +1 -1
  10. package/dist/assets/Input-BiQ2YQPd.js +260 -0
  11. package/dist/assets/Input-BiQ2YQPd.js.map +1 -0
  12. package/dist/assets/{SelectorPage-Dfsz__tN.js → SelectorPage-B1FVARmT.js} +2 -2
  13. package/dist/assets/SelectorPage-B1FVARmT.js.map +1 -0
  14. package/dist/assets/SnapshotPage--iNpyIbS.js +278 -0
  15. package/dist/assets/SnapshotPage--iNpyIbS.js.map +1 -0
  16. package/dist/assets/{SvgPage-C1zjQVfl.js → SvgPage-Dltl_R3H.js} +2 -2
  17. package/dist/assets/{SvgPage-C1zjQVfl.js.map → SvgPage-Dltl_R3H.js.map} +1 -1
  18. package/dist/assets/{TrackGraph-9kJxOprr.js → TrackGraph-De07fYKN.js} +3 -3
  19. package/dist/assets/{TrackGraph-9kJxOprr.js.map → TrackGraph-De07fYKN.js.map} +1 -1
  20. package/dist/assets/_404Page-BjQuTr-4.js +2 -0
  21. package/dist/assets/{_404Page-Bn8vlGnA.js.map → _404Page-BjQuTr-4.js.map} +1 -1
  22. package/dist/assets/chunk-BcM-31Xg.js +3 -0
  23. package/dist/assets/{chunk-DI5b2YDy.js.map → chunk-BcM-31Xg.js.map} +1 -1
  24. package/dist/assets/{dayjs.min-DBvJpvjN.js → dayjs.min-CIGJGAmK.js} +3 -3
  25. package/dist/assets/{dayjs.min-DBvJpvjN.js.map → dayjs.min-CIGJGAmK.js.map} +1 -1
  26. package/dist/assets/{error-BeYrEikB.js → error-Dx-Q4QA4.js} +2 -2
  27. package/dist/assets/{error-BeYrEikB.js.map → error-Dx-Q4QA4.js.map} +1 -1
  28. package/dist/assets/{import-CAlhG5XC.js → import-CrFFEti7.js} +2 -2
  29. package/dist/assets/{import-CAlhG5XC.js.map → import-CrFFEti7.js.map} +1 -1
  30. package/dist/assets/{index-BOn7cIqR.css → index-BowVL0Z1.css} +1 -1
  31. package/dist/assets/index-D17uyErR.js +980 -0
  32. package/dist/assets/index-D17uyErR.js.map +1 -0
  33. package/dist/assets/{index-D0bRFMVs.js → index-DxOIes5N.js} +3 -3
  34. package/dist/assets/{index-D0bRFMVs.js.map → index-DxOIes5N.js.map} +1 -1
  35. package/dist/assets/{jszip.min-_1impF28.js → jszip.min-DP9jnM1V.js} +2 -2
  36. package/dist/assets/{jszip.min-_1impF28.js.map → jszip.min-DP9jnM1V.js.map} +1 -1
  37. package/dist/assets/node-DTu3PkoD.js +126 -0
  38. package/dist/assets/node-DTu3PkoD.js.map +1 -0
  39. package/dist/assets/polyfills-DPQP8bt_.js +2 -0
  40. package/dist/assets/polyfills-DPQP8bt_.js.map +1 -0
  41. package/dist/assets/snapshot-DhE3UxkB.js +3 -0
  42. package/dist/assets/snapshot-DhE3UxkB.js.map +1 -0
  43. package/dist/assets/{table-Bd0KeboP.js → table-Gdhks37q.js} +51 -51
  44. package/dist/assets/table-Gdhks37q.js.map +1 -0
  45. package/dist/index.html +3 -3
  46. package/package.json +32 -32
  47. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-D9C2Puxf.js +0 -17
  48. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-D9C2Puxf.js.map +0 -1
  49. package/dist/assets/DevicePage-D2bRCKLk.js +0 -49
  50. package/dist/assets/DevicePage-D2bRCKLk.js.map +0 -1
  51. package/dist/assets/Input-0Oeqy0g_.js +0 -260
  52. package/dist/assets/Input-0Oeqy0g_.js.map +0 -1
  53. package/dist/assets/SelectorPage-Dfsz__tN.js.map +0 -1
  54. package/dist/assets/SnapshotPage-D74GPDdI.js +0 -272
  55. package/dist/assets/SnapshotPage-D74GPDdI.js.map +0 -1
  56. package/dist/assets/_404Page-Bn8vlGnA.js +0 -2
  57. package/dist/assets/chunk-DI5b2YDy.js +0 -3
  58. package/dist/assets/index-DQpmpBAn.js +0 -977
  59. package/dist/assets/index-DQpmpBAn.js.map +0 -1
  60. package/dist/assets/node-TE3TnSn0.js +0 -126
  61. package/dist/assets/node-TE3TnSn0.js.map +0 -1
  62. package/dist/assets/polyfills-DHsnwdd7.js +0 -2
  63. package/dist/assets/polyfills-DHsnwdd7.js.map +0 -1
  64. package/dist/assets/snapshot-BCm8BOZh.js +0 -3
  65. package/dist/assets/snapshot-BCm8BOZh.js.map +0 -1
  66. package/dist/assets/table-Bd0KeboP.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{d as ze,c as Ne,a as ge,b as r,e as re,f as W,g as ve,i as me,h as Ie,j as se,k as b,r as O,N as We,l as De,u as Ue,m as Be,n as Te,o as de,t as Fe,p as Pe,q as ee,s as K,v as ue,w as D,x as Le,y as ce,z as H,A as Me,B as be,C as pe,D as Oe,E as fe,F as Ke,G as t,H as He,I as we,J as xe,K as _e,L as x,M as o,O as Ee,P as i,Q as Ae,R as Qe,S as ke,T as h,U as je,V as ye,_ as Ze,W as qe,X as Ge,Y as Xe,Z as Ye,$ as Je}from"./index-DQpmpBAn.js";import{_ as et,b as tt,a as nt,w as Ce,c as ot,s as Se,d as at}from"./ActionCard.vue_vue_type_script_setup_true_lang-D9C2Puxf.js";import{i as it,a as lt}from"./import-CAlhG5XC.js";import{g as Re,_ as rt,a as st}from"./node-TE3TnSn0.js";import{s as dt,a as $e}from"./snapshot-BCm8BOZh.js";import{u as ut,_ as ct,r as pt}from"./table-Bd0KeboP.js";import{u as E,_ as ft,a as ht}from"./dayjs.min-DBvJpvjN.js";import{_ as gt}from"./Input-0Oeqy0g_.js";import"./chunk-DI5b2YDy.js";const vt={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};function mt(a){const{primaryColor:g,opacityDisabled:y,borderRadius:v,textColor3:f}=a;return Object.assign(Object.assign({},vt),{iconColor:f,textColor:"white",loadingColor:g,opacityDisabled:y,railColor:"rgba(0, 0, 0, .14)",railColorActive:g,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:v,railBorderRadiusMedium:v,railBorderRadiusLarge:v,buttonBorderRadiusSmall:v,buttonBorderRadiusMedium:v,buttonBorderRadiusLarge:v,boxShadowFocus:`0 0 0 2px ${Ne(g,{alpha:.2})}`})}const bt={common:ze,self:mt},wt=ge("switch",`
1
+ import{d as ze,c as Ne,a as ge,b as r,e as re,f as W,g as ve,i as me,h as Ie,j as se,k as b,r as O,N as We,l as De,u as Ue,m as Be,n as Te,o as de,t as Fe,p as Pe,q as ee,s as K,v as ue,w as D,x as Le,y as ce,z as H,A as Me,B as be,C as pe,D as Oe,E as fe,F as Ke,G as t,H as He,I as we,J as xe,K as ke,L as x,M as o,O as Ee,P as i,Q as Ae,R as Qe,S as ye,T as h,U as je,V as Ce,_ as Ze,W as qe,X as Ge,Y as Xe,Z as Ye,$ as Je}from"./index-D17uyErR.js";import{_ as et,b as tt,a as nt,w as _e,c as ot,s as Se,d as at}from"./ActionCard.vue_vue_type_script_setup_true_lang-C6v5UzI9.js";import{i as it,a as lt}from"./import-CrFFEti7.js";import{g as Re,_ as rt,a as st}from"./node-DTu3PkoD.js";import{s as dt,a as $e}from"./snapshot-DhE3UxkB.js";import{u as ut,_ as ct,r as pt}from"./table-Gdhks37q.js";import{u as E,_ as ft,a as ht}from"./dayjs.min-CIGJGAmK.js";import{_ as gt}from"./Input-BiQ2YQPd.js";import"./chunk-BcM-31Xg.js";const vt={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};function mt(a){const{primaryColor:g,opacityDisabled:C,borderRadius:v,textColor3:f}=a;return Object.assign(Object.assign({},vt),{iconColor:f,textColor:"white",loadingColor:g,opacityDisabled:C,railColor:"rgba(0, 0, 0, .14)",railColorActive:g,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:v,railBorderRadiusMedium:v,railBorderRadiusLarge:v,buttonBorderRadiusSmall:v,buttonBorderRadiusMedium:v,buttonBorderRadiusLarge:v,boxShadowFocus:`0 0 0 2px ${Ne(g,{alpha:.2})}`})}const bt={common:ze,self:mt},wt=ge("switch",`
2
2
  height: var(--n-height);
3
3
  min-width: var(--n-width);
4
4
  vertical-align: middle;
@@ -99,14 +99,14 @@ import{d as ze,c as Ne,a as ge,b as r,e as re,f as W,g as ve,i as me,h as Ie,j a
99
99
  `)]),W("disabled",[r("rail",`
100
100
  cursor: not-allowed;
101
101
  opacity: .5;
102
- `)])]),xt=Object.assign(Object.assign({},Be.props),{size:{type:String,default:"medium"},value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},onChange:[Function,Array]});let J;const _t=Ie({name:"Switch",props:xt,slots:Object,setup(a){J===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?J=CSS.supports("width","max(1px)"):J=!1:J=!0);const{mergedClsPrefixRef:g,inlineThemeDisabled:y}=Ue(a),v=Be("Switch","-switch",wt,bt,a,g),f=Te(a),{mergedSizeRef:m,mergedDisabledRef:_}=f,$=de(a.defaultValue),U=Fe(a,"value"),I=Pe(U,$),B=ee(()=>I.value===a.checkedValue),V=de(!1),u=de(!1),k=ee(()=>{const{railStyle:l}=a;if(l)return l({focused:u.value,checked:B.value})});function C(l){const{"onUpdate:value":Q,onChange:P,onUpdateValue:L}=a,{nTriggerFormInput:j,nTriggerFormChange:Z}=f;Q&&ce(Q,l),L&&ce(L,l),P&&ce(P,l),$.value=l,j(),Z()}function oe(){const{nTriggerFormFocus:l}=f;l()}function ae(){const{nTriggerFormBlur:l}=f;l()}function ie(){a.loading||_.value||(I.value!==a.checkedValue?C(a.checkedValue):C(a.uncheckedValue))}function A(){u.value=!0,oe()}function le(){u.value=!1,ae(),V.value=!1}function z(l){a.loading||_.value||l.key===" "&&(I.value!==a.checkedValue?C(a.checkedValue):C(a.uncheckedValue),V.value=!1)}function T(l){a.loading||_.value||l.key===" "&&(l.preventDefault(),V.value=!0)}const F=ee(()=>{const{value:l}=m,{self:{opacityDisabled:Q,railColor:P,railColorActive:L,buttonBoxShadow:j,buttonColor:Z,boxShadowFocus:M,loadingColor:te,textColor:n,iconColor:e,[K("buttonHeight",l)]:s,[K("buttonWidth",l)]:w,[K("buttonWidthPressed",l)]:c,[K("railHeight",l)]:S,[K("railWidth",l)]:R,[K("railBorderRadius",l)]:X,[K("buttonBorderRadius",l)]:N},common:{cubicBezierEaseInOut:ne}}=v.value;let Y,q,G;return J?(Y=`calc((${S} - ${s}) / 2)`,q=`max(${S}, ${s})`,G=`max(${R}, calc(${R} + ${s} - ${S}))`):(Y=ue((D(S)-D(s))/2),q=ue(Math.max(D(S),D(s))),G=D(S)>D(s)?R:ue(D(R)+D(s)-D(S))),{"--n-bezier":ne,"--n-button-border-radius":N,"--n-button-box-shadow":j,"--n-button-color":Z,"--n-button-width":w,"--n-button-width-pressed":c,"--n-button-height":s,"--n-height":q,"--n-offset":Y,"--n-opacity-disabled":Q,"--n-rail-border-radius":X,"--n-rail-color":P,"--n-rail-color-active":L,"--n-rail-height":S,"--n-rail-width":R,"--n-width":G,"--n-box-shadow-focus":M,"--n-loading-color":te,"--n-text-color":n,"--n-icon-color":e}}),p=y?Le("switch",ee(()=>m.value[0]),F,a):void 0;return{handleClick:ie,handleBlur:le,handleFocus:A,handleKeyup:z,handleKeydown:T,mergedRailStyle:k,pressed:V,mergedClsPrefix:g,mergedValue:I,checked:B,mergedDisabled:_,cssVars:y?void 0:F,themeClass:p==null?void 0:p.themeClass,onRender:p==null?void 0:p.onRender}},render(){const{mergedClsPrefix:a,mergedDisabled:g,checked:y,mergedRailStyle:v,onRender:f,$slots:m}=this;f==null||f();const{checked:_,unchecked:$,icon:U,"checked-icon":I,"unchecked-icon":B}=m,V=!(se(U)&&se(I)&&se(B));return b("div",{role:"switch","aria-checked":y,class:[`${a}-switch`,this.themeClass,V&&`${a}-switch--icon`,y&&`${a}-switch--active`,g&&`${a}-switch--disabled`,this.round&&`${a}-switch--round`,this.loading&&`${a}-switch--loading`,this.pressed&&`${a}-switch--pressed`,this.rubberBand&&`${a}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},b("div",{class:`${a}-switch__rail`,"aria-hidden":"true",style:v},O(_,u=>O($,k=>u||k?b("div",{"aria-hidden":!0,class:`${a}-switch__children-placeholder`},b("div",{class:`${a}-switch__rail-placeholder`},b("div",{class:`${a}-switch__button-placeholder`}),u),b("div",{class:`${a}-switch__rail-placeholder`},b("div",{class:`${a}-switch__button-placeholder`}),k)):null)),b("div",{class:`${a}-switch__button`},O(U,u=>O(I,k=>O(B,C=>b(We,null,{default:()=>this.loading?b(De,{key:"loading",clsPrefix:a,strokeWidth:20}):this.checked&&(k||u)?b("div",{class:`${a}-switch__button-icon`,key:k?"checked-icon":"icon"},k||u):!this.checked&&(C||u)?b("div",{class:`${a}-switch__button-icon`,key:C?"unchecked-icon":"icon"},C||u):null})))),O(_,u=>u&&b("div",{key:"checked",class:`${a}-switch__checked`},u)),O($,u=>u&&b("div",{key:"unchecked",class:`${a}-switch__unchecked`},u)))))}}),kt={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},yt={flex:""},Ct={"h-full":"",flex:"","flex-items-center":""},St={flex:"","gap-24px":"","items-center":"","pr-8px":"",class:"[--svg-h:24px]"},Rt={flex:"",href:"https://github.com/orgs/gkd-kit/discussions",target:"_blank",rel:"noopener noreferrer"},$t={flex:"",href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},It={flex:"","gap-10px":""},Pt=Ie({__name:"HomePage",setup(a){const{settingsStore:g}=Ge(),y=H([]),v=H(!0),f=async()=>{v.value=!0,y.value=(await dt.getAllItems()).reverse(),p.value=[],v.value=!1};Me(f);const m=be({query:"",actualQuery:"",updateQuery:()=>{m.actualQuery=m.query.trim(),p.value=[]}}),_=ee(()=>{const n=m.actualQuery;return n?y.value.filter(e=>(Re(e).name||"").includes(n)||(e.appId||"").includes(n)||(e.activityId||"").includes(n)):y.value}),$=E(async n=>{await it(n)&&await f()});pe(document.body,"drop",async n=>{n.preventDefault(),await $.invoke(Oe(n))}),pe(document.body,"dragover",n=>{n.preventDefault()});const{activityIdCol:U,appIdCol:I,appNameCol:B,ctimeCol:V,mtimeCol:u,deviceCol:k,appVersionCodeCol:C,appVersionNameCol:oe,resetColWidth:ae}=ut();fe(()=>{const n=_.value.reduce((e,s)=>(e.add(pt(s)),e),new Set);if(n.size<=1){k.filterOptions=void 0;return}k.filterOptions=[...n.values()].map(e=>({value:e,label:e}))}),fe(()=>{const n=_.value.reduce((e,s)=>(e.add(Re(s).name),e),new Set);if(n.size<=1){B.filterOptions=void 0;return}B.filterOptions=[...n.values()].map(e=>({value:e,label:e}))}),fe(()=>{const n=_.value.reduce((e,s)=>(e.add(s.activityId),e),new Set);if(n.size<=1){U.filterOptions=void 0;return}U.filterOptions=[...n.values()].map(e=>({value:e,label:e}))});const ie=Ke([{type:"selection"},V,u,k,B,I,C,oe,U,{key:"actions",title:"操作",fixed:"right",width:"160px",render(n){return t(et,{snapshot:n,onDelete:f},null)}}]),A=be({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:n=>{A.page=n},onUpdatePageSize:n=>{A.pageSize=n,A.page=1}});He(A,ae);const le=n=>{[V,u].forEach(e=>{n.columnKey!=e.key?e.sortOrder=void 0:e.sortOrder=n.order})};u.sortOrder="descend";const z=H(!1),T=H(""),F=E(async()=>{const n=T.value.trim().split(`
103
- `).map(s=>s.trim()).filter(s=>Je(s));n.length==0||!await lt(n)||(await f(),T.value="")});pe(document.body,"paste",n=>{if(z.value)return;const e=n.target;if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||(e.className||"").includes("input"))return;const s=n.clipboardData;if(!s)return;const w=(s.getData("text")||"").trim();(w.startsWith("https://")||w.startsWith("http://"))&&(T.value=w,z.value=!0)});const p=H([]),l=()=>Promise.all(p.value.map(n=>$e.getItem(n))),Q=E(async()=>{await new Promise((n,e)=>{Ye.warning({title:"删除",content:`是否批量删除 ${p.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:e,onEsc:e,onMaskClick:e,onNegativeClick:e,onPositiveClick:n})}),await Promise.all(p.value.map(n=>$e.removeItem(n))),await f()}),P=E(async()=>{await nt(await l())}),L=E(async()=>{await tt(await l())}),j=E(async()=>{await Ce();const n=await at(await l());Se({content:n.map(e=>Xe(e)).join(`
102
+ `)])]),xt=Object.assign(Object.assign({},Be.props),{size:{type:String,default:"medium"},value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},onChange:[Function,Array]});let J;const kt=Ie({name:"Switch",props:xt,slots:Object,setup(a){J===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?J=CSS.supports("width","max(1px)"):J=!1:J=!0);const{mergedClsPrefixRef:g,inlineThemeDisabled:C}=Ue(a),v=Be("Switch","-switch",wt,bt,a,g),f=Te(a),{mergedSizeRef:m,mergedDisabledRef:k}=f,$=de(a.defaultValue),U=Fe(a,"value"),I=Pe(U,$),B=ee(()=>I.value===a.checkedValue),V=de(!1),u=de(!1),y=ee(()=>{const{railStyle:l}=a;if(l)return l({focused:u.value,checked:B.value})});function _(l){const{"onUpdate:value":Q,onChange:P,onUpdateValue:L}=a,{nTriggerFormInput:j,nTriggerFormChange:Z}=f;Q&&ce(Q,l),L&&ce(L,l),P&&ce(P,l),$.value=l,j(),Z()}function oe(){const{nTriggerFormFocus:l}=f;l()}function ae(){const{nTriggerFormBlur:l}=f;l()}function ie(){a.loading||k.value||(I.value!==a.checkedValue?_(a.checkedValue):_(a.uncheckedValue))}function A(){u.value=!0,oe()}function le(){u.value=!1,ae(),V.value=!1}function z(l){a.loading||k.value||l.key===" "&&(I.value!==a.checkedValue?_(a.checkedValue):_(a.uncheckedValue),V.value=!1)}function T(l){a.loading||k.value||l.key===" "&&(l.preventDefault(),V.value=!0)}const F=ee(()=>{const{value:l}=m,{self:{opacityDisabled:Q,railColor:P,railColorActive:L,buttonBoxShadow:j,buttonColor:Z,boxShadowFocus:M,loadingColor:te,textColor:n,iconColor:e,[K("buttonHeight",l)]:s,[K("buttonWidth",l)]:w,[K("buttonWidthPressed",l)]:c,[K("railHeight",l)]:S,[K("railWidth",l)]:R,[K("railBorderRadius",l)]:X,[K("buttonBorderRadius",l)]:N},common:{cubicBezierEaseInOut:ne}}=v.value;let Y,q,G;return J?(Y=`calc((${S} - ${s}) / 2)`,q=`max(${S}, ${s})`,G=`max(${R}, calc(${R} + ${s} - ${S}))`):(Y=ue((D(S)-D(s))/2),q=ue(Math.max(D(S),D(s))),G=D(S)>D(s)?R:ue(D(R)+D(s)-D(S))),{"--n-bezier":ne,"--n-button-border-radius":N,"--n-button-box-shadow":j,"--n-button-color":Z,"--n-button-width":w,"--n-button-width-pressed":c,"--n-button-height":s,"--n-height":q,"--n-offset":Y,"--n-opacity-disabled":Q,"--n-rail-border-radius":X,"--n-rail-color":P,"--n-rail-color-active":L,"--n-rail-height":S,"--n-rail-width":R,"--n-width":G,"--n-box-shadow-focus":M,"--n-loading-color":te,"--n-text-color":n,"--n-icon-color":e}}),p=C?Le("switch",ee(()=>m.value[0]),F,a):void 0;return{handleClick:ie,handleBlur:le,handleFocus:A,handleKeyup:z,handleKeydown:T,mergedRailStyle:y,pressed:V,mergedClsPrefix:g,mergedValue:I,checked:B,mergedDisabled:k,cssVars:C?void 0:F,themeClass:p==null?void 0:p.themeClass,onRender:p==null?void 0:p.onRender}},render(){const{mergedClsPrefix:a,mergedDisabled:g,checked:C,mergedRailStyle:v,onRender:f,$slots:m}=this;f==null||f();const{checked:k,unchecked:$,icon:U,"checked-icon":I,"unchecked-icon":B}=m,V=!(se(U)&&se(I)&&se(B));return b("div",{role:"switch","aria-checked":C,class:[`${a}-switch`,this.themeClass,V&&`${a}-switch--icon`,C&&`${a}-switch--active`,g&&`${a}-switch--disabled`,this.round&&`${a}-switch--round`,this.loading&&`${a}-switch--loading`,this.pressed&&`${a}-switch--pressed`,this.rubberBand&&`${a}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},b("div",{class:`${a}-switch__rail`,"aria-hidden":"true",style:v},O(k,u=>O($,y=>u||y?b("div",{"aria-hidden":!0,class:`${a}-switch__children-placeholder`},b("div",{class:`${a}-switch__rail-placeholder`},b("div",{class:`${a}-switch__button-placeholder`}),u),b("div",{class:`${a}-switch__rail-placeholder`},b("div",{class:`${a}-switch__button-placeholder`}),y)):null)),b("div",{class:`${a}-switch__button`},O(U,u=>O(I,y=>O(B,_=>b(We,null,{default:()=>this.loading?b(De,{key:"loading",clsPrefix:a,strokeWidth:20}):this.checked&&(y||u)?b("div",{class:`${a}-switch__button-icon`,key:y?"checked-icon":"icon"},y||u):!this.checked&&(_||u)?b("div",{class:`${a}-switch__button-icon`,key:_?"unchecked-icon":"icon"},_||u):null})))),O(k,u=>u&&b("div",{key:"checked",class:`${a}-switch__checked`},u)),O($,u=>u&&b("div",{key:"unchecked",class:`${a}-switch__unchecked`},u)))))}}),yt={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},Ct={flex:""},_t={"h-full":"",flex:"","flex-items-center":""},St={flex:"","gap-24px":"","items-center":"","pr-8px":"",class:"[--svg-h:24px]"},Rt={flex:"",href:"https://github.com/orgs/gkd-kit/discussions",target:"_blank",rel:"noopener noreferrer"},$t={flex:"",href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},It={flex:"","gap-10px":""},Pt=Ie({__name:"HomePage",setup(a){const{settingsStore:g}=Ge(),C=H([]),v=H(!0),f=async()=>{v.value=!0,C.value=(await dt.getAllItems()).reverse(),p.value=[],v.value=!1};Me(f);const m=be({query:"",actualQuery:"",updateQuery:()=>{m.actualQuery=m.query.trim(),p.value=[]}}),k=ee(()=>{const n=m.actualQuery;return n?C.value.filter(e=>(Re(e).name||"").includes(n)||(e.appId||"").includes(n)||(e.activityId||"").includes(n)):C.value}),$=E(async n=>{await it(n)&&await f()});pe(document.body,"drop",async n=>{n.preventDefault(),await $.invoke(Oe(n))}),pe(document.body,"dragover",n=>{n.preventDefault()});const{activityIdCol:U,appIdCol:I,appNameCol:B,ctimeCol:V,mtimeCol:u,deviceCol:y,appVersionCodeCol:_,appVersionNameCol:oe,resetColWidth:ae}=ut();fe(()=>{const n=k.value.reduce((e,s)=>(e.add(pt(s)),e),new Set);if(n.size<=1){y.filterOptions=void 0;return}y.filterOptions=[...n.values()].map(e=>({value:e,label:e}))}),fe(()=>{const n=k.value.reduce((e,s)=>(e.add(Re(s).name),e),new Set);if(n.size<=1){B.filterOptions=void 0;return}B.filterOptions=[...n.values()].map(e=>({value:e,label:e}))}),fe(()=>{const n=k.value.reduce((e,s)=>(e.add(s.activityId),e),new Set);if(n.size<=1){U.filterOptions=void 0;return}U.filterOptions=[...n.values()].map(e=>({value:e,label:e}))});const ie=Ke([{type:"selection"},V,u,y,B,I,_,oe,U,{key:"actions",title:"操作",fixed:"right",width:"160px",render(n){return t(et,{snapshot:n,onDelete:f},null)}}]),A=be({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:n=>{A.page=n},onUpdatePageSize:n=>{A.pageSize=n,A.page=1}});He(A,ae);const le=n=>{[V,u].forEach(e=>{n.columnKey!=e.key?e.sortOrder=void 0:e.sortOrder=n.order})};u.sortOrder="descend";const z=H(!1),T=H(""),F=E(async()=>{const n=T.value.trim().split(`
103
+ `).map(s=>s.trim()).filter(s=>Je(s));n.length==0||!await lt(n)||(await f(),T.value="")});pe(document.body,"paste",n=>{if(z.value)return;const e=n.target;if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||(e.className||"").includes("input"))return;const s=n.clipboardData;if(!s)return;const w=(s.getData("text")||"").trim();(w.startsWith("https://")||w.startsWith("http://"))&&(T.value=w,z.value=!0)});const p=H([]),l=()=>Promise.all(p.value.map(n=>$e.getItem(n))),Q=E(async()=>{await new Promise((n,e)=>{Ye.warning({title:"删除",content:`是否批量删除 ${p.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:e,onEsc:e,onMaskClick:e,onNegativeClick:e,onPositiveClick:n})}),await Promise.all(p.value.map(n=>$e.removeItem(n))),await f()}),P=E(async()=>{await nt(await l())}),L=E(async()=>{await tt(await l())}),j=E(async()=>{await _e();const n=await at(await l());Se({content:n.map(e=>Xe(e)).join(`
104
104
  `)+`
105
- `})}),Z=E(async()=>{await Ce();const n=await ot(await l());Se({content:n.map(e=>location.origin+"/i/"+e).join(`
105
+ `})}),Z=E(async()=>{await _e();const n=await ot(await l());Se({content:n.map(e=>location.origin+"/i/"+e).join(`
106
106
  `)+`
107
- `})}),M=H(!1),te=H();return(n,e)=>{const s=gt,w=we("SvgIcon"),c=Qe,S=ft,R=ht,X=rt,N=st,ne=we("RouterLink"),Y=ct,q=Ze,G=qe,Ve=_t;return _e(),xe(ke,null,[x("div",kt,[x("div",yt,[t(R,null,{default:o(()=>[t(S,null,{default:o(()=>[t(s,{value:i(m).query,"onUpdate:value":e[0]||(e[0]=d=>i(m).query=d),placeholder:"请输入应用名称/应用ID/界面ID",clearable:"",class:"min-w-320px",onKeyup:Ae(i(m).updateQuery,["enter"]),onChange:i(m).updateQuery},null,8,["value","onKeyup","onChange"]),t(c,{onClick:i(m).updateQuery},{icon:o(()=>[t(w,{name:"search"})]),_:1},8,["onClick"])]),_:1}),i(p).length?(_e(),xe(ke,{key:0},[t(X,null,{trigger:o(()=>[t(c,null,{default:o(()=>e[16]||(e[16]=[h(" 批量下载 ")])),_:1,__:[16]})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(c,{loading:i(L).loading,onClick:i(L).invoke},{default:o(()=>e[17]||(e[17]=[h(" 批量下载-快照 ")])),_:1,__:[17]},8,["loading","onClick"]),t(c,{loading:i(P).loading,onClick:i(P).invoke},{default:o(()=>e[18]||(e[18]=[h(" 批量下载-图片 ")])),_:1,__:[18]},8,["loading","onClick"])]),_:1})]),_:1}),t(X,null,{trigger:o(()=>[t(c,null,{default:o(()=>e[19]||(e[19]=[h(" 批量分享 ")])),_:1,__:[19]})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(c,{loading:i(Z).loading,onClick:i(Z).invoke},{default:o(()=>e[20]||(e[20]=[h(" 批量生成链接-快照 ")])),_:1,__:[20]},8,["loading","onClick"]),t(c,{loading:i(j).loading,onClick:i(j).invoke},{default:o(()=>e[21]||(e[21]=[h(" 批量生成链接-图片 ")])),_:1,__:[21]},8,["loading","onClick"])]),_:1})]),_:1}),t(c,{onClick:i(Q).invoke},{default:o(()=>e[22]||(e[22]=[h(" 批量删除 ")])),_:1,__:[22]},8,["onClick"]),x("div",Ct,je(`已选中 ${i(p).length} 个快照`),1)],64)):Ee("",!0)]),_:1}),e[32]||(e[32]=x("div",{"flex-1":""},null,-1)),x("div",St,[t(N,null,{trigger:o(()=>[t(c,{text:"",onClick:e[1]||(e[1]=d=>M.value=!0)},{default:o(()=>[t(w,{name:"settings"})]),_:1})]),default:o(()=>[e[23]||(e[23]=h(" 设置 "))]),_:1,__:[23]}),t(N,null,{trigger:o(()=>[t(ne,{flex:"",to:"/selector"},{default:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"terminal"})]),_:1})]),_:1})]),default:o(()=>[e[24]||(e[24]=h(" 测试选择器 "))]),_:1,__:[24]}),t(X,null,{trigger:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"import"})]),_:1})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(N,{placement:"left"},{trigger:o(()=>[t(c,{loading:i($).loading,onClick:e[2]||(e[2]=d=>i($).invoke())},{default:o(()=>e[25]||(e[25]=[h(" 导入本地文件 ")])),_:1,__:[25]},8,["loading"])]),default:o(()=>[e[26]||(e[26]=x("div",{class:"whitespace-nowrap"},"支持拖拽文件到页面任意位置",-1))]),_:1,__:[26]}),t(N,{placement:"left"},{trigger:o(()=>[t(c,{loading:i(F).loading,onClick:e[3]||(e[3]=d=>z.value=!0)},{default:o(()=>e[27]||(e[27]=[h(" 导入网络文件 ")])),_:1,__:[27]},8,["loading"])]),default:o(()=>[e[28]||(e[28]=x("div",{class:"whitespace-nowrap"}," 支持任意位置粘贴(Ctrl+V)文本触发导入 ",-1))]),_:1,__:[28]})]),_:1})]),_:1}),t(N,null,{trigger:o(()=>[t(ne,{flex:"",to:"/device"},{default:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"device"})]),_:1})]),_:1})]),default:o(()=>[e[29]||(e[29]=h(" 连接设备 "))]),_:1,__:[29]}),t(N,null,{trigger:o(()=>[x("a",Rt,[t(c,{text:""},{default:o(()=>[t(w,{name:"discussion"})]),_:1})])]),default:o(()=>[e[30]||(e[30]=h(" 讨论交流 "))]),_:1,__:[30]}),t(N,null,{trigger:o(()=>[x("a",$t,[t(c,{text:""},{default:o(()=>[t(w,{name:"github"})]),_:1})])]),default:o(()=>[e[31]||(e[31]=h(" Github "))]),_:1,__:[31]})])]),t(Y,{checkedRowKeys:i(p),"onUpdate:checkedRowKeys":e[4]||(e[4]=d=>ye(p)?p.value=d:null),striped:"",virtualScroll:"",data:i(_),columns:i(ie),scrollX:1800,rowKey:d=>d.id,size:"small",class:"flex-1","flex-height":"",loading:i(v),"onUpdate:sorter":le},null,8,["checkedRowKeys","data","columns","rowKey","loading"])]),t(q,{show:i(z),preset:"dialog",title:"导入网络文件",showIcon:!1,positiveText:"确认",negativeText:"取消",style:{width:"800px"},loading:i(F).loading,onPositiveClick:i(F).invoke,onNegativeClick:e[6]||(e[6]=d=>z.value=!1),onClose:e[7]||(e[7]=d=>z.value=!1),onEsc:e[8]||(e[8]=d=>z.value=!1),onAfterEnter:e[9]||(e[9]=d=>{var he;return(he=i(te))==null?void 0:he.focus()}),onAfterLeave:e[10]||(e[10]=d=>T.value="")},{default:o(()=>[t(s,{ref_key:"inputImportRef",ref:te,value:i(T),type:"textarea",placeholder:`1.支持ZIP文件链接
107
+ `})}),M=H(!1),te=H();return(n,e)=>{const s=gt,w=we("SvgIcon"),c=Qe,S=ft,R=ht,X=rt,N=st,ne=we("RouterLink"),Y=ct,q=Ze,G=qe,Ve=kt;return ke(),xe(ye,null,[x("div",yt,[x("div",Ct,[t(R,null,{default:o(()=>[t(S,null,{default:o(()=>[t(s,{value:i(m).query,"onUpdate:value":e[0]||(e[0]=d=>i(m).query=d),placeholder:"请输入应用名称/应用ID/界面ID",clearable:"",class:"min-w-320px",onKeyup:Ae(i(m).updateQuery,["enter"]),onChange:i(m).updateQuery},null,8,["value","onKeyup","onChange"]),t(c,{onClick:i(m).updateQuery},{icon:o(()=>[t(w,{name:"search"})]),_:1},8,["onClick"])]),_:1}),i(p).length?(ke(),xe(ye,{key:0},[t(X,null,{trigger:o(()=>[t(c,null,{default:o(()=>[...e[16]||(e[16]=[h(" 批量下载 ",-1)])]),_:1})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(c,{loading:i(L).loading,onClick:i(L).invoke},{default:o(()=>[...e[17]||(e[17]=[h(" 批量下载-快照 ",-1)])]),_:1},8,["loading","onClick"]),t(c,{loading:i(P).loading,onClick:i(P).invoke},{default:o(()=>[...e[18]||(e[18]=[h(" 批量下载-图片 ",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1}),t(X,null,{trigger:o(()=>[t(c,null,{default:o(()=>[...e[19]||(e[19]=[h(" 批量分享 ",-1)])]),_:1})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(c,{loading:i(Z).loading,onClick:i(Z).invoke},{default:o(()=>[...e[20]||(e[20]=[h(" 批量生成链接-快照 ",-1)])]),_:1},8,["loading","onClick"]),t(c,{loading:i(j).loading,onClick:i(j).invoke},{default:o(()=>[...e[21]||(e[21]=[h(" 批量生成链接-图片 ",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1}),t(c,{onClick:i(Q).invoke},{default:o(()=>[...e[22]||(e[22]=[h(" 批量删除 ",-1)])]),_:1},8,["onClick"]),x("div",_t,je(`已选中 ${i(p).length} 个快照`),1)],64)):Ee("",!0)]),_:1}),e[32]||(e[32]=x("div",{"flex-1":""},null,-1)),x("div",St,[t(N,null,{trigger:o(()=>[t(c,{text:"",onClick:e[1]||(e[1]=d=>M.value=!0)},{default:o(()=>[t(w,{name:"settings"})]),_:1})]),default:o(()=>[e[23]||(e[23]=h(" 设置 ",-1))]),_:1}),t(N,null,{trigger:o(()=>[t(ne,{flex:"",to:"/selector"},{default:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"terminal"})]),_:1})]),_:1})]),default:o(()=>[e[24]||(e[24]=h(" 测试选择器 ",-1))]),_:1}),t(X,null,{trigger:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"import"})]),_:1})]),default:o(()=>[t(R,{vertical:""},{default:o(()=>[t(N,{placement:"left"},{trigger:o(()=>[t(c,{loading:i($).loading,onClick:e[2]||(e[2]=d=>i($).invoke())},{default:o(()=>[...e[25]||(e[25]=[h(" 导入本地文件 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[e[26]||(e[26]=x("div",{class:"whitespace-nowrap"},"支持拖拽文件到页面任意位置",-1))]),_:1}),t(N,{placement:"left"},{trigger:o(()=>[t(c,{loading:i(F).loading,onClick:e[3]||(e[3]=d=>z.value=!0)},{default:o(()=>[...e[27]||(e[27]=[h(" 导入网络文件 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[e[28]||(e[28]=x("div",{class:"whitespace-nowrap"}," 支持任意位置粘贴(Ctrl+V)文本触发导入 ",-1))]),_:1})]),_:1})]),_:1}),t(N,null,{trigger:o(()=>[t(ne,{flex:"",to:"/device"},{default:o(()=>[t(c,{text:""},{default:o(()=>[t(w,{name:"device"})]),_:1})]),_:1})]),default:o(()=>[e[29]||(e[29]=h(" 连接设备 ",-1))]),_:1}),t(N,null,{trigger:o(()=>[x("a",Rt,[t(c,{text:""},{default:o(()=>[t(w,{name:"discussion"})]),_:1})])]),default:o(()=>[e[30]||(e[30]=h(" 讨论交流 ",-1))]),_:1}),t(N,null,{trigger:o(()=>[x("a",$t,[t(c,{text:""},{default:o(()=>[t(w,{name:"github"})]),_:1})])]),default:o(()=>[e[31]||(e[31]=h(" Github ",-1))]),_:1})])]),t(Y,{checkedRowKeys:i(p),"onUpdate:checkedRowKeys":e[4]||(e[4]=d=>Ce(p)?p.value=d:null),striped:"",virtualScroll:"",data:i(k),columns:i(ie),scrollX:1800,rowKey:d=>d.id,size:"small",class:"flex-1","flex-height":"",loading:i(v),"onUpdate:sorter":le},null,8,["checkedRowKeys","data","columns","rowKey","loading"])]),t(q,{show:i(z),preset:"dialog",title:"导入网络文件",showIcon:!1,positiveText:"确认",negativeText:"取消",style:{width:"800px"},loading:i(F).loading,onPositiveClick:i(F).invoke,onNegativeClick:e[6]||(e[6]=d=>z.value=!1),onClose:e[7]||(e[7]=d=>z.value=!1),onEsc:e[8]||(e[8]=d=>z.value=!1),onAfterEnter:e[9]||(e[9]=d=>{var he;return(he=i(te))==null?void 0:he.focus()}),onAfterLeave:e[10]||(e[10]=d=>T.value="")},{default:o(()=>[t(s,{ref_key:"inputImportRef",ref:te,value:i(T),type:"textarea",placeholder:`1.支持ZIP文件链接
108
108
  2.支持快照链接
109
109
  每行一个
110
110
  空白行自动忽略
111
- 非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"},"onUpdate:value":e[5]||(e[5]=d=>{i(F).loading||(T.value=d)})},null,8,["value"])]),_:1},8,["show","loading","onPositiveClick"]),t(q,{show:i(M),"onUpdate:show":e[14]||(e[14]=d=>ye(M)?M.value=d:null),preset:"dialog",title:"设置",showIcon:!1,positiveText:"关闭",style:{width:"600px"},onPositiveClick:e[15]||(e[15]=d=>M.value=!1)},{default:o(()=>[t(G,{checked:i(g).ignoreUploadWarn,"onUpdate:checked":e[11]||(e[11]=d=>i(g).ignoreUploadWarn=d)},{default:o(()=>e[33]||(e[33]=[h(" 关闭生成分享链接弹窗提醒 ")])),_:1,__:[33]},8,["checked"]),e[36]||(e[36]=x("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),t(G,{checked:i(g).ignoreWasmWarn,"onUpdate:checked":e[12]||(e[12]=d=>i(g).ignoreWasmWarn=d)},{default:o(()=>e[34]||(e[34]=[h(" 关闭浏览器版本正则表达式 WASM(GC) 提醒 ")])),_:1,__:[34]},8,["checked"]),e[37]||(e[37]=x("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),x("div",It,[t(Ve,{value:i(g).autoUploadImport,"onUpdate:value":e[13]||(e[13]=d=>i(g).autoUploadImport=d)},null,8,["value"]),e[35]||(e[35]=x("div",null,"打开快照页面自动生成分享链接(请确保不含隐私)",-1))])]),_:1,__:[36,37]},8,["show"])],64)}}});export{Pt as default};
112
- //# sourceMappingURL=HomePage-Ckec0Lnr.js.map
111
+ 非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"},"onUpdate:value":e[5]||(e[5]=d=>{i(F).loading||(T.value=d)})},null,8,["value"])]),_:1},8,["show","loading","onPositiveClick"]),t(q,{show:i(M),"onUpdate:show":e[14]||(e[14]=d=>Ce(M)?M.value=d:null),preset:"dialog",title:"设置",showIcon:!1,positiveText:"关闭",style:{width:"600px"},onPositiveClick:e[15]||(e[15]=d=>M.value=!1)},{default:o(()=>[t(G,{checked:i(g).ignoreUploadWarn,"onUpdate:checked":e[11]||(e[11]=d=>i(g).ignoreUploadWarn=d)},{default:o(()=>[...e[33]||(e[33]=[h(" 关闭生成分享链接弹窗提醒 ",-1)])]),_:1},8,["checked"]),e[36]||(e[36]=x("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),t(G,{checked:i(g).ignoreWasmWarn,"onUpdate:checked":e[12]||(e[12]=d=>i(g).ignoreWasmWarn=d)},{default:o(()=>[...e[34]||(e[34]=[h(" 关闭浏览器版本正则表达式 WASM(GC) 提醒 ",-1)])]),_:1},8,["checked"]),e[37]||(e[37]=x("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),x("div",It,[t(Ve,{value:i(g).autoUploadImport,"onUpdate:value":e[13]||(e[13]=d=>i(g).autoUploadImport=d)},null,8,["value"]),e[35]||(e[35]=x("div",null,"打开快照页面自动生成分享链接(请确保不含隐私)",-1))])]),_:1},8,["show"])],64)}}});export{Pt as default};
112
+ //# sourceMappingURL=HomePage-DW24KLDn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HomePage-Ckec0Lnr.js","sources":["../../node_modules/.pnpm/naive-ui@2.42.0_vue@3.5.17_typescript@5.8.3_/node_modules/naive-ui/es/switch/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.42.0_vue@3.5.17_typescript@5.8.3_/node_modules/naive-ui/es/switch/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.42.0_vue@3.5.17_typescript@5.8.3_/node_modules/naive-ui/es/switch/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.42.0_vue@3.5.17_typescript@5.8.3_/node_modules/naive-ui/es/switch/src/Switch.mjs","../../src/views/home/HomePage.vue"],"sourcesContent":["export default {\n buttonHeightSmall: '14px',\n buttonHeightMedium: '18px',\n buttonHeightLarge: '22px',\n buttonWidthSmall: '14px',\n buttonWidthMedium: '18px',\n buttonWidthLarge: '22px',\n buttonWidthPressedSmall: '20px',\n buttonWidthPressedMedium: '24px',\n buttonWidthPressedLarge: '28px',\n railHeightSmall: '18px',\n railHeightMedium: '22px',\n railHeightLarge: '26px',\n railWidthSmall: '32px',\n railWidthMedium: '40px',\n railWidthLarge: '48px'\n};","import { changeColor } from 'seemly';\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nfunction self(vars) {\n const {\n primaryColor,\n opacityDisabled,\n borderRadius,\n textColor3\n } = vars;\n const railOverlayColor = 'rgba(0, 0, 0, .14)';\n return Object.assign(Object.assign({}, commonVars), {\n iconColor: textColor3,\n textColor: 'white',\n loadingColor: primaryColor,\n opacityDisabled,\n railColor: railOverlayColor,\n railColorActive: primaryColor,\n buttonBoxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n buttonColor: '#FFF',\n railBorderRadiusSmall: borderRadius,\n railBorderRadiusMedium: borderRadius,\n railBorderRadiusLarge: borderRadius,\n buttonBorderRadiusSmall: borderRadius,\n buttonBorderRadiusMedium: borderRadius,\n buttonBorderRadiusLarge: borderRadius,\n boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`\n });\n}\nconst switchLight = {\n name: 'Switch',\n common: commonLight,\n self\n};\nexport default switchLight;","import { iconSwitchTransition } from \"../../../_styles/transitions/icon-switch.cssr.mjs\";\nimport { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-button-border-radius\n// --n-button-box-shadow\n// --n-button-color\n// --n-button-width\n// --n-button-width-pressed\n// --n-height\n// --n-offset\n// --n-rail-border-radius\n// --n-rail-color\n// --n-rail-color-active\n// --n-rail-height\n// --n-rail-width\n// --n-width\n// --n-box-shadow-focus\n// --n-loading-color\n// --n-text-color\n// --n-icon-color\nexport default cB('switch', `\n height: var(--n-height);\n min-width: var(--n-width);\n vertical-align: middle;\n user-select: none;\n -webkit-user-select: none;\n display: inline-flex;\n outline: none;\n justify-content: center;\n align-items: center;\n`, [cE('children-placeholder', `\n height: var(--n-rail-height);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n `), cE('rail-placeholder', `\n display: flex;\n flex-wrap: none;\n `), cE('button-placeholder', `\n width: calc(1.75 * var(--n-rail-height));\n height: var(--n-rail-height);\n `), cB('base-loading', `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n font-size: calc(var(--n-button-width) - 4px);\n color: var(--n-loading-color);\n transition: color .3s var(--n-bezier);\n `, [iconSwitchTransition({\n left: '50%',\n top: '50%',\n originalTransform: 'translateX(-50%) translateY(-50%)'\n})]), cE('checked, unchecked', `\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n box-sizing: border-box;\n position: absolute;\n white-space: nowrap;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n line-height: 1;\n `), cE('checked', `\n right: 0;\n padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), cE('unchecked', `\n left: 0;\n justify-content: flex-end;\n padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), c('&:focus', [cE('rail', `\n box-shadow: var(--n-box-shadow-focus);\n `)]), cM('round', [cE('rail', 'border-radius: calc(var(--n-rail-height) / 2);', [cE('button', 'border-radius: calc(var(--n-button-height) / 2);')])]), cNotM('disabled', [cNotM('icon', [cM('rubber-band', [cM('pressed', [cE('rail', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cE('rail', [c('&:active', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cM('active', [cM('pressed', [cE('rail', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])]), cE('rail', [c('&:active', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])])])])])]), cM('active', [cE('rail', [cE('button', 'left: calc(100% - var(--n-button-width) - var(--n-offset))')])]), cE('rail', `\n overflow: hidden;\n height: var(--n-rail-height);\n min-width: var(--n-rail-width);\n border-radius: var(--n-rail-border-radius);\n cursor: pointer;\n position: relative;\n transition:\n opacity .3s var(--n-bezier),\n background .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n background-color: var(--n-rail-color);\n `, [cE('button-icon', `\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n font-size: calc(var(--n-button-height) - 4px);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n `, [iconSwitchTransition()]), cE('button', `\n align-items: center; \n top: var(--n-offset);\n left: var(--n-offset);\n height: var(--n-button-height);\n width: var(--n-button-width-pressed);\n max-width: var(--n-button-width);\n border-radius: var(--n-button-border-radius);\n background-color: var(--n-button-color);\n box-shadow: var(--n-button-box-shadow);\n box-sizing: border-box;\n cursor: inherit;\n content: \"\";\n position: absolute;\n transition:\n background-color .3s var(--n-bezier),\n left .3s var(--n-bezier),\n opacity .3s var(--n-bezier),\n max-width .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n `)]), cM('active', [cE('rail', 'background-color: var(--n-rail-color-active);')]), cM('loading', [cE('rail', `\n cursor: wait;\n `)]), cM('disabled', [cE('rail', `\n cursor: not-allowed;\n opacity: .5;\n `)])]);","import { depx, pxfy } from 'seemly';\nimport { useMergedState } from 'vooks';\nimport { computed, defineComponent, h, ref, toRef, watchEffect } from 'vue';\nimport { NBaseLoading, NIconSwitchTransition } from \"../../_internal/index.mjs\";\nimport { useConfig, useFormItem, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { call, createKey, isSlotEmpty, resolveWrappedSlot, warnOnce } from \"../../_utils/index.mjs\";\nimport { switchLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const switchProps = Object.assign(Object.assign({}, useTheme.props), {\n size: {\n type: String,\n default: 'medium'\n },\n value: {\n type: [String, Number, Boolean],\n default: undefined\n },\n loading: Boolean,\n defaultValue: {\n type: [String, Number, Boolean],\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n round: {\n type: Boolean,\n default: true\n },\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array],\n checkedValue: {\n type: [String, Number, Boolean],\n default: true\n },\n uncheckedValue: {\n type: [String, Number, Boolean],\n default: false\n },\n railStyle: Function,\n rubberBand: {\n type: Boolean,\n default: true\n },\n /** @deprecated */\n onChange: [Function, Array]\n});\nlet supportCssMax;\nexport default defineComponent({\n name: 'Switch',\n props: switchProps,\n slots: Object,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.onChange) {\n warnOnce('switch', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n });\n }\n if (supportCssMax === undefined) {\n if (typeof CSS !== 'undefined') {\n if (typeof CSS.supports !== 'undefined') {\n supportCssMax = CSS.supports('width', 'max(1px)');\n } else {\n supportCssMax = false;\n }\n } else {\n // If you are using SSR, we assume that you are targeting browsers with\n // recent versions\n supportCssMax = true;\n }\n }\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Switch', '-switch', style, switchLight, props, mergedClsPrefixRef);\n const formItem = useFormItem(props);\n const {\n mergedSizeRef,\n mergedDisabledRef\n } = formItem;\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const checkedRef = computed(() => {\n return mergedValueRef.value === props.checkedValue;\n });\n const pressedRef = ref(false);\n const focusedRef = ref(false);\n const mergedRailStyleRef = computed(() => {\n const {\n railStyle\n } = props;\n if (!railStyle) return undefined;\n return railStyle({\n focused: focusedRef.value,\n checked: checkedRef.value\n });\n });\n function doUpdateValue(value) {\n const {\n 'onUpdate:value': _onUpdateValue,\n onChange,\n onUpdateValue\n } = props;\n const {\n nTriggerFormInput,\n nTriggerFormChange\n } = formItem;\n if (_onUpdateValue) call(_onUpdateValue, value);\n if (onUpdateValue) call(onUpdateValue, value);\n if (onChange) call(onChange, value);\n uncontrolledValueRef.value = value;\n nTriggerFormInput();\n nTriggerFormChange();\n }\n function doFocus() {\n const {\n nTriggerFormFocus\n } = formItem;\n nTriggerFormFocus();\n }\n function doBlur() {\n const {\n nTriggerFormBlur\n } = formItem;\n nTriggerFormBlur();\n }\n function handleClick() {\n if (props.loading || mergedDisabledRef.value) return;\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n }\n function handleFocus() {\n focusedRef.value = true;\n doFocus();\n }\n function handleBlur() {\n focusedRef.value = false;\n doBlur();\n pressedRef.value = false;\n }\n function handleKeyup(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n pressedRef.value = false;\n }\n }\n function handleKeydown(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n e.preventDefault();\n pressedRef.value = true;\n }\n }\n const cssVarsRef = computed(() => {\n const {\n value: size\n } = mergedSizeRef;\n const {\n self: {\n opacityDisabled,\n railColor,\n railColorActive,\n buttonBoxShadow,\n buttonColor,\n boxShadowFocus,\n loadingColor,\n textColor,\n iconColor,\n [createKey('buttonHeight', size)]: buttonHeight,\n [createKey('buttonWidth', size)]: buttonWidth,\n [createKey('buttonWidthPressed', size)]: buttonWidthPressed,\n [createKey('railHeight', size)]: railHeight,\n [createKey('railWidth', size)]: railWidth,\n [createKey('railBorderRadius', size)]: railBorderRadius,\n [createKey('buttonBorderRadius', size)]: buttonBorderRadius\n },\n common: {\n cubicBezierEaseInOut\n }\n } = themeRef.value;\n let offset;\n let height;\n let width;\n if (supportCssMax) {\n offset = `calc((${railHeight} - ${buttonHeight}) / 2)`;\n height = `max(${railHeight}, ${buttonHeight})`;\n width = `max(${railWidth}, calc(${railWidth} + ${buttonHeight} - ${railHeight}))`;\n } else {\n offset = pxfy((depx(railHeight) - depx(buttonHeight)) / 2);\n height = pxfy(Math.max(depx(railHeight), depx(buttonHeight)));\n width = depx(railHeight) > depx(buttonHeight) ? railWidth : pxfy(depx(railWidth) + depx(buttonHeight) - depx(railHeight));\n }\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-button-border-radius': buttonBorderRadius,\n '--n-button-box-shadow': buttonBoxShadow,\n '--n-button-color': buttonColor,\n '--n-button-width': buttonWidth,\n '--n-button-width-pressed': buttonWidthPressed,\n '--n-button-height': buttonHeight,\n '--n-height': height,\n '--n-offset': offset,\n '--n-opacity-disabled': opacityDisabled,\n '--n-rail-border-radius': railBorderRadius,\n '--n-rail-color': railColor,\n '--n-rail-color-active': railColorActive,\n '--n-rail-height': railHeight,\n '--n-rail-width': railWidth,\n '--n-width': width,\n '--n-box-shadow-focus': boxShadowFocus,\n '--n-loading-color': loadingColor,\n '--n-text-color': textColor,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('switch', computed(() => {\n return mergedSizeRef.value[0];\n }), cssVarsRef, props) : undefined;\n return {\n handleClick,\n handleBlur,\n handleFocus,\n handleKeyup,\n handleKeydown,\n mergedRailStyle: mergedRailStyleRef,\n pressed: pressedRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedValue: mergedValueRef,\n checked: checkedRef,\n mergedDisabled: mergedDisabledRef,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,\n onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender\n };\n },\n render() {\n const {\n mergedClsPrefix,\n mergedDisabled,\n checked,\n mergedRailStyle,\n onRender,\n $slots\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n const {\n checked: checkedSlot,\n unchecked: uncheckedSlot,\n icon: iconSlot,\n 'checked-icon': checkedIconSlot,\n 'unchecked-icon': uncheckedIconSlot\n } = $slots;\n const hasIcon = !(isSlotEmpty(iconSlot) && isSlotEmpty(checkedIconSlot) && isSlotEmpty(uncheckedIconSlot));\n return h(\"div\", {\n role: \"switch\",\n \"aria-checked\": checked,\n class: [`${mergedClsPrefix}-switch`, this.themeClass, hasIcon && `${mergedClsPrefix}-switch--icon`, checked && `${mergedClsPrefix}-switch--active`, mergedDisabled && `${mergedClsPrefix}-switch--disabled`, this.round && `${mergedClsPrefix}-switch--round`, this.loading && `${mergedClsPrefix}-switch--loading`, this.pressed && `${mergedClsPrefix}-switch--pressed`, this.rubberBand && `${mergedClsPrefix}-switch--rubber-band`],\n tabindex: !this.mergedDisabled ? 0 : undefined,\n style: this.cssVars,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyup: this.handleKeyup,\n onKeydown: this.handleKeydown\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail`,\n \"aria-hidden\": \"true\",\n style: mergedRailStyle\n }, resolveWrappedSlot(checkedSlot, checkedSlotChildren => resolveWrappedSlot(uncheckedSlot, uncheckedSlotChildren => {\n if (checkedSlotChildren || uncheckedSlotChildren) {\n return h(\"div\", {\n \"aria-hidden\": true,\n class: `${mergedClsPrefix}-switch__children-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), checkedSlotChildren), h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), uncheckedSlotChildren));\n }\n return null;\n })), h(\"div\", {\n class: `${mergedClsPrefix}-switch__button`\n }, resolveWrappedSlot(iconSlot, icon => resolveWrappedSlot(checkedIconSlot, checkedIcon => resolveWrappedSlot(uncheckedIconSlot, uncheckedIcon => {\n return h(NIconSwitchTransition, null, {\n default: () => this.loading ? h(NBaseLoading, {\n key: \"loading\",\n clsPrefix: mergedClsPrefix,\n strokeWidth: 20\n }) : this.checked && (checkedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: checkedIcon ? 'checked-icon' : 'icon'\n }, checkedIcon || icon) : !this.checked && (uncheckedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: uncheckedIcon ? 'unchecked-icon' : 'icon'\n }, uncheckedIcon || icon) : null\n });\n }))), resolveWrappedSlot(checkedSlot, children => children && h(\"div\", {\n key: \"checked\",\n class: `${mergedClsPrefix}-switch__checked`\n }, children)), resolveWrappedSlot(uncheckedSlot, children => children && h(\"div\", {\n key: \"unchecked\",\n class: `${mergedClsPrefix}-switch__unchecked`\n }, children)))));\n }\n});","<script lang=\"tsx\" setup>\nimport ActionCard from '@/components/ActionCard.vue';\nimport { toValidURL } from '@/utils/check';\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { dialog } from '@/utils/discrete';\nimport {\n batchCreateImageId,\n batchCreateZipUrl,\n batchImageDownloadZip,\n batchZipDownloadZip,\n} from '@/utils/export';\nimport { importFromLocal, importFromNetwork } from '@/utils/import';\nimport { getAppInfo } from '@/utils/node';\nimport { getDragEventFiles } from '@/utils/others';\nimport { shallowSnapshotStorage, snapshotStorage } from '@/utils/snapshot';\nimport { renderDevice, useSnapshotColumns } from '@/utils/table';\nimport { useTask } from '@/utils/task';\nimport { getImagUrl } from '@/utils/url';\nimport type { DataTableColumns, PaginationProps } from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\n\nconst { settingsStore } = useStorageStore();\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nconst loading = shallowRef(true);\nconst updateSnapshots = async () => {\n loading.value = true;\n snapshots.value = (await shallowSnapshotStorage.getAllItems()).reverse();\n checkedRowKeys.value = [];\n loading.value = false;\n};\nonMounted(updateSnapshots);\nconst filterOption = shallowReactive({\n query: ``,\n actualQuery: ``,\n updateQuery: () => {\n filterOption.actualQuery = filterOption.query.trim();\n checkedRowKeys.value = [];\n },\n});\nconst filterSnapshots = computed(() => {\n const actualQuery = filterOption.actualQuery;\n if (!actualQuery) return snapshots.value;\n return snapshots.value.filter((s) => {\n return (\n (getAppInfo(s).name || ``).includes(actualQuery) ||\n (s.appId || ``).includes(actualQuery) ||\n (s.activityId || ``).includes(actualQuery)\n );\n });\n});\n\nconst importLocal = useTask(async (_files?: File[]) => {\n if (await importFromLocal(_files)) {\n await updateSnapshots();\n }\n});\n\nuseEventListener(document.body, 'drop', async (e) => {\n e.preventDefault();\n await importLocal.invoke(getDragEventFiles(e));\n});\nuseEventListener(document.body, 'dragover', (e) => {\n e.preventDefault();\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n mtimeCol,\n deviceCol,\n appVersionCodeCol,\n appVersionNameCol,\n resetColWidth,\n} = useSnapshotColumns();\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(renderDevice(c)), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n deviceCol.filterOptions = undefined;\n return;\n }\n deviceCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(getAppInfo(c).name), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n appNameCol.filterOptions = undefined;\n return;\n }\n appNameCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(c.activityId), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n activityIdCol.filterOptions = undefined;\n return;\n }\n activityIdCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nconst columns: DataTableColumns<Snapshot> = reactive([\n {\n type: 'selection',\n },\n ctimeCol,\n mtimeCol,\n deviceCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `160px`,\n render(row) {\n return <ActionCard snapshot={row} onDelete={updateSnapshots} />;\n },\n },\n]);\n\nconst pagination = shallowReactive<PaginationProps>({\n page: 1,\n pageSize: 50,\n showSizePicker: true,\n pageSizes: [50, 100],\n onChange: (page: number) => {\n pagination.page = page;\n },\n onUpdatePageSize: (pageSize: number) => {\n pagination.pageSize = pageSize;\n pagination.page = 1;\n },\n});\nwatch(pagination, resetColWidth);\n\nconst handleSorterChange = (sorter: SortState) => {\n [ctimeCol, mtimeCol].forEach((c) => {\n if (sorter.columnKey != c.key) {\n c.sortOrder = undefined;\n } else {\n c.sortOrder = sorter.order;\n }\n });\n};\nmtimeCol.sortOrder = `descend`;\nconst showImportModal = shallowRef(false);\nconst textImportValue = shallowRef(``);\nconst importNetwork = useTask(async () => {\n const urls = textImportValue.value\n .trim()\n .split(`\\n`)\n .map((u) => u.trim())\n .filter((u) => toValidURL(u));\n if (urls.length == 0) return;\n const r = await importFromNetwork(urls);\n if (!r) return;\n await updateSnapshots();\n textImportValue.value = ``;\n});\n\nuseEventListener(document.body, 'paste', (e) => {\n if (showImportModal.value) return;\n const target = e.target as HTMLElement;\n if (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n (target.className || '').includes('input')\n ) {\n return;\n }\n const dataTransfer = e.clipboardData;\n if (!dataTransfer) return;\n const text = (dataTransfer.getData('text') || '').trim();\n if (text.startsWith('https://') || text.startsWith('http://')) {\n textImportValue.value = text;\n showImportModal.value = true;\n }\n});\n\nconst checkedRowKeys = shallowRef<number[]>([]);\nconst checkedSnapshots = () => {\n return Promise.all(\n checkedRowKeys.value.map(\n (id) => snapshotStorage.getItem(id) as Promise<Snapshot>,\n ),\n );\n};\nconst batchDelete = useTask(async () => {\n await new Promise((res, rej) => {\n dialog.warning({\n title: `删除`,\n content: `是否批量删除 ${checkedRowKeys.value.length} 个快照`,\n negativeText: `取消`,\n positiveText: `确认`,\n onClose: rej,\n onEsc: rej,\n onMaskClick: rej,\n onNegativeClick: rej,\n onPositiveClick: res,\n });\n });\n\n await Promise.all(\n checkedRowKeys.value.map((k) => snapshotStorage.removeItem(k)),\n );\n await updateSnapshots();\n});\nconst batchDownloadImage = useTask(async () => {\n await batchImageDownloadZip(await checkedSnapshots());\n});\nconst batchDownloadZip = useTask(async () => {\n await batchZipDownloadZip(await checkedSnapshots());\n});\n\nconst batchShareImageUrl = useTask(async () => {\n await waitShareAgree();\n const imageIds = await batchCreateImageId(await checkedSnapshots());\n showTextDLg({\n content: imageIds.map((s) => getImagUrl(s)).join(`\\n`) + `\\n`,\n });\n});\nconst batchShareZipUrl = useTask(async () => {\n await waitShareAgree();\n const zipUrls = await batchCreateZipUrl(await checkedSnapshots());\n showTextDLg({\n content: zipUrls.map((s) => location.origin + '/i/' + s).join(`\\n`) + `\\n`,\n });\n});\n\nconst settingsDlgShow = shallowRef(false);\n\nconst inputImportRef = shallowRef();\n</script>\n<template>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex>\n <NSpace>\n <NInputGroup>\n <NInput\n v-model:value=\"filterOption.query\"\n placeholder=\"请输入应用名称/应用ID/界面ID\"\n clearable\n class=\"min-w-320px\"\n @keyup.enter=\"filterOption.updateQuery\"\n @change=\"filterOption.updateQuery\"\n />\n <NButton @click=\"filterOption.updateQuery\">\n <template #icon>\n <SvgIcon name=\"search\" />\n </template>\n </NButton>\n </NInputGroup>\n <template v-if=\"checkedRowKeys.length\">\n <NPopover>\n <template #trigger>\n <NButton> 批量下载 </NButton>\n </template>\n <NSpace vertical>\n <NButton\n :loading=\"batchDownloadZip.loading\"\n @click=\"batchDownloadZip.invoke\"\n >\n 批量下载-快照\n </NButton>\n <NButton\n :loading=\"batchDownloadImage.loading\"\n @click=\"batchDownloadImage.invoke\"\n >\n 批量下载-图片\n </NButton>\n </NSpace>\n </NPopover>\n <NPopover>\n <template #trigger>\n <NButton> 批量分享 </NButton>\n </template>\n <NSpace vertical>\n <NButton\n :loading=\"batchShareZipUrl.loading\"\n @click=\"batchShareZipUrl.invoke\"\n >\n 批量生成链接-快照\n </NButton>\n <NButton\n :loading=\"batchShareImageUrl.loading\"\n @click=\"batchShareImageUrl.invoke\"\n >\n 批量生成链接-图片\n </NButton>\n </NSpace>\n </NPopover>\n <NButton @click=\"batchDelete.invoke\"> 批量删除 </NButton>\n <div h-full flex flex-items-center>\n {{ `已选中 ${checkedRowKeys.length} 个快照` }}\n </div>\n </template>\n </NSpace>\n <div flex-1 />\n <div flex gap-24px items-center pr-8px class=\"[--svg-h:24px]\">\n <NTooltip>\n <template #trigger>\n <NButton text @click=\"settingsDlgShow = true\">\n <SvgIcon name=\"settings\" />\n </NButton>\n </template>\n 设置\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <RouterLink flex to=\"/selector\">\n <NButton text>\n <SvgIcon name=\"terminal\" />\n </NButton>\n </RouterLink>\n </template>\n 测试选择器\n </NTooltip>\n <NPopover>\n <template #trigger>\n <NButton text>\n <SvgIcon name=\"import\" />\n </NButton>\n </template>\n <NSpace vertical>\n <NTooltip placement=\"left\">\n <template #trigger>\n <NButton\n :loading=\"importLocal.loading\"\n @click=\"importLocal.invoke()\"\n >\n 导入本地文件\n </NButton>\n </template>\n <div class=\"whitespace-nowrap\">支持拖拽文件到页面任意位置</div>\n </NTooltip>\n <NTooltip placement=\"left\">\n <template #trigger>\n <NButton\n :loading=\"importNetwork.loading\"\n @click=\"showImportModal = true\"\n >\n 导入网络文件\n </NButton>\n </template>\n <div class=\"whitespace-nowrap\">\n 支持任意位置粘贴(Ctrl+V)文本触发导入\n </div>\n </NTooltip>\n </NSpace>\n </NPopover>\n <NTooltip>\n <template #trigger>\n <RouterLink flex to=\"/device\">\n <NButton text>\n <SvgIcon name=\"device\" />\n </NButton>\n </RouterLink>\n </template>\n 连接设备\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <a\n flex\n href=\"https://github.com/orgs/gkd-kit/discussions\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton text>\n <SvgIcon name=\"discussion\" />\n </NButton>\n </a>\n </template>\n 讨论交流\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <a\n flex\n href=\"https://github.com/gkd-kit/inspect\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton text>\n <SvgIcon name=\"github\" />\n </NButton>\n </a>\n </template>\n Github\n </NTooltip>\n </div>\n </div>\n <NDataTable\n v-model:checkedRowKeys=\"checkedRowKeys\"\n striped\n virtualScroll\n :data=\"filterSnapshots\"\n :columns=\"columns\"\n :scrollX=\"1800\"\n :rowKey=\"(r:Snapshot)=>r.id\"\n size=\"small\"\n class=\"flex-1\"\n flex-height\n :loading=\"loading\"\n @update:sorter=\"handleSorterChange\"\n />\n </div>\n <NModal\n :show=\"showImportModal\"\n preset=\"dialog\"\n title=\"导入网络文件\"\n :showIcon=\"false\"\n positiveText=\"确认\"\n negativeText=\"取消\"\n style=\"width: 800px\"\n :loading=\"importNetwork.loading\"\n @positiveClick=\"importNetwork.invoke\"\n @negativeClick=\"showImportModal = false\"\n @close=\"showImportModal = false\"\n @esc=\"showImportModal = false\"\n @afterEnter=\"inputImportRef?.focus()\"\n @afterLeave=\"textImportValue = ``\"\n >\n <NInput\n ref=\"inputImportRef\"\n :value=\"textImportValue\"\n type=\"textarea\"\n :placeholder=\"`1.支持ZIP文件链接\\n2.支持快照链接\\n每行一个\\n空白行自动忽略\\n非法链接行自动忽略`\"\n :autosize=\"{\n minRows: 8,\n maxRows: 16,\n }\"\n :inputProps=\"{\n style: `white-space: nowrap;`,\n }\"\n @update:value=\"\n if (!importNetwork.loading) {\n textImportValue = $event;\n }\n \"\n />\n </NModal>\n\n <NModal\n v-model:show=\"settingsDlgShow\"\n preset=\"dialog\"\n title=\"设置\"\n :showIcon=\"false\"\n positiveText=\"关闭\"\n style=\"width: 600px\"\n @positiveClick=\"settingsDlgShow = false\"\n >\n <NCheckbox v-model:checked=\"settingsStore.ignoreUploadWarn\">\n 关闭生成分享链接弹窗提醒\n </NCheckbox>\n <div h-1px my-10px bg=\"#eee\" />\n <NCheckbox v-model:checked=\"settingsStore.ignoreWasmWarn\">\n 关闭浏览器版本正则表达式 WASM(GC) 提醒\n </NCheckbox>\n <div h-1px my-10px bg=\"#eee\" />\n <div flex gap-10px>\n <NSwitch v-model:value=\"settingsStore.autoUploadImport\" />\n <div>打开快照页面自动生成分享链接(请确保不含隐私)</div>\n </div>\n </NModal>\n</template>\n"],"names":["commonVars","self","vars","primaryColor","opacityDisabled","borderRadius","textColor3","changeColor","switchLight","commonLight","style","cB","cE","iconSwitchTransition","c","cM","cNotM","switchProps","useTheme","supportCssMax","__unplugin_components_9","defineComponent","props","mergedClsPrefixRef","inlineThemeDisabled","useConfig","themeRef","formItem","useFormItem","mergedSizeRef","mergedDisabledRef","uncontrolledValueRef","ref","controlledValueRef","toRef","mergedValueRef","useMergedState","checkedRef","computed","pressedRef","focusedRef","mergedRailStyleRef","railStyle","doUpdateValue","value","_onUpdateValue","onChange","onUpdateValue","nTriggerFormInput","nTriggerFormChange","call","doFocus","nTriggerFormFocus","doBlur","nTriggerFormBlur","handleClick","handleFocus","handleBlur","handleKeyup","e","handleKeydown","cssVarsRef","size","railColor","railColorActive","buttonBoxShadow","buttonColor","boxShadowFocus","loadingColor","textColor","iconColor","createKey","buttonHeight","buttonWidth","buttonWidthPressed","railHeight","railWidth","railBorderRadius","buttonBorderRadius","cubicBezierEaseInOut","offset","height","width","pxfy","depx","themeClassHandle","useThemeClass","mergedClsPrefix","mergedDisabled","checked","mergedRailStyle","onRender","$slots","checkedSlot","uncheckedSlot","iconSlot","checkedIconSlot","uncheckedIconSlot","hasIcon","isSlotEmpty","h","resolveWrappedSlot","checkedSlotChildren","uncheckedSlotChildren","icon","checkedIcon","uncheckedIcon","NIconSwitchTransition","NBaseLoading","children","settingsStore","useStorageStore","snapshots","shallowRef","loading","updateSnapshots","shallowSnapshotStorage","getAllItems","reverse","checkedRowKeys","onMounted","filterOption","shallowReactive","query","actualQuery","updateQuery","trim","filterSnapshots","filter","s","getAppInfo","name","includes","appId","activityId","importLocal","useTask","_files","importFromLocal","useEventListener","document","body","preventDefault","invoke","getDragEventFiles","activityIdCol","appIdCol","appNameCol","ctimeCol","mtimeCol","deviceCol","appVersionCodeCol","appVersionNameCol","resetColWidth","useSnapshotColumns","watchEffect","set","reduce","p","add","renderDevice","Set","filterOptions","undefined","values","map","label","columns","reactive","type","key","title","fixed","render","row","_createVNode2","ActionCard","pagination","page","pageSize","showSizePicker","pageSizes","onUpdatePageSize","watch","handleSorterChange","sorter","forEach","columnKey","sortOrder","order","showImportModal","textImportValue","importNetwork","urls","split","u","toValidURL","length","importFromNetwork","target","HTMLInputElement","HTMLTextAreaElement","className","dataTransfer","clipboardData","text","getData","startsWith","checkedSnapshots","Promise","all","id","snapshotStorage","getItem","batchDelete","res","rej","dialog","warning","content","negativeText","positiveText","onClose","onEsc","onMaskClick","onNegativeClick","onPositiveClick","k","removeItem","batchDownloadImage","batchImageDownloadZip","batchDownloadZip","batchZipDownloadZip","batchShareImageUrl","waitShareAgree","imageIds","batchCreateImageId","showTextDLg","getImagUrl","join","batchShareZipUrl","zipUrls","batchCreateZipUrl","location","origin","settingsDlgShow","inputImportRef","_createElementVNode","_hoisted_1","_hoisted_2","_createVNode","_component_NSpace","_component_NInputGroup","_component_NInput","_unref","_cache","$event","placeholder","clearable","class","onKeyup","_withKeys","_component_NButton","onClick","_component_SvgIcon","_createElementBlock","_Fragment","_component_NPopover","trigger","vertical","_hoisted_3","_toDisplayString","_hoisted_4","_component_NTooltip","_component_RouterLink","flex","to","placement","_hoisted_5","_hoisted_6","_component_NDataTable","striped","virtualScroll","data","scrollX","rowKey","r","_component_NModal","show","preset","showIcon","onAfterEnter","focus","onAfterLeave","autosize","inputProps","_component_NCheckbox","ignoreUploadWarn","bg","ignoreWasmWarn","_hoisted_7","_component_NSwitch","autoUploadImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"HomePage-DW24KLDn.js","sources":["../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/switch/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/switch/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/switch/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/switch/src/Switch.mjs","../../src/views/home/HomePage.vue"],"sourcesContent":["export default {\n buttonHeightSmall: '14px',\n buttonHeightMedium: '18px',\n buttonHeightLarge: '22px',\n buttonWidthSmall: '14px',\n buttonWidthMedium: '18px',\n buttonWidthLarge: '22px',\n buttonWidthPressedSmall: '20px',\n buttonWidthPressedMedium: '24px',\n buttonWidthPressedLarge: '28px',\n railHeightSmall: '18px',\n railHeightMedium: '22px',\n railHeightLarge: '26px',\n railWidthSmall: '32px',\n railWidthMedium: '40px',\n railWidthLarge: '48px'\n};","import { changeColor } from 'seemly';\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nfunction self(vars) {\n const {\n primaryColor,\n opacityDisabled,\n borderRadius,\n textColor3\n } = vars;\n const railOverlayColor = 'rgba(0, 0, 0, .14)';\n return Object.assign(Object.assign({}, commonVars), {\n iconColor: textColor3,\n textColor: 'white',\n loadingColor: primaryColor,\n opacityDisabled,\n railColor: railOverlayColor,\n railColorActive: primaryColor,\n buttonBoxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n buttonColor: '#FFF',\n railBorderRadiusSmall: borderRadius,\n railBorderRadiusMedium: borderRadius,\n railBorderRadiusLarge: borderRadius,\n buttonBorderRadiusSmall: borderRadius,\n buttonBorderRadiusMedium: borderRadius,\n buttonBorderRadiusLarge: borderRadius,\n boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`\n });\n}\nconst switchLight = {\n name: 'Switch',\n common: commonLight,\n self\n};\nexport default switchLight;","import { iconSwitchTransition } from \"../../../_styles/transitions/icon-switch.cssr.mjs\";\nimport { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-button-border-radius\n// --n-button-box-shadow\n// --n-button-color\n// --n-button-width\n// --n-button-width-pressed\n// --n-height\n// --n-offset\n// --n-rail-border-radius\n// --n-rail-color\n// --n-rail-color-active\n// --n-rail-height\n// --n-rail-width\n// --n-width\n// --n-box-shadow-focus\n// --n-loading-color\n// --n-text-color\n// --n-icon-color\nexport default cB('switch', `\n height: var(--n-height);\n min-width: var(--n-width);\n vertical-align: middle;\n user-select: none;\n -webkit-user-select: none;\n display: inline-flex;\n outline: none;\n justify-content: center;\n align-items: center;\n`, [cE('children-placeholder', `\n height: var(--n-rail-height);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n `), cE('rail-placeholder', `\n display: flex;\n flex-wrap: none;\n `), cE('button-placeholder', `\n width: calc(1.75 * var(--n-rail-height));\n height: var(--n-rail-height);\n `), cB('base-loading', `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n font-size: calc(var(--n-button-width) - 4px);\n color: var(--n-loading-color);\n transition: color .3s var(--n-bezier);\n `, [iconSwitchTransition({\n left: '50%',\n top: '50%',\n originalTransform: 'translateX(-50%) translateY(-50%)'\n})]), cE('checked, unchecked', `\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n box-sizing: border-box;\n position: absolute;\n white-space: nowrap;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n line-height: 1;\n `), cE('checked', `\n right: 0;\n padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), cE('unchecked', `\n left: 0;\n justify-content: flex-end;\n padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), c('&:focus', [cE('rail', `\n box-shadow: var(--n-box-shadow-focus);\n `)]), cM('round', [cE('rail', 'border-radius: calc(var(--n-rail-height) / 2);', [cE('button', 'border-radius: calc(var(--n-button-height) / 2);')])]), cNotM('disabled', [cNotM('icon', [cM('rubber-band', [cM('pressed', [cE('rail', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cE('rail', [c('&:active', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cM('active', [cM('pressed', [cE('rail', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])]), cE('rail', [c('&:active', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])])])])])]), cM('active', [cE('rail', [cE('button', 'left: calc(100% - var(--n-button-width) - var(--n-offset))')])]), cE('rail', `\n overflow: hidden;\n height: var(--n-rail-height);\n min-width: var(--n-rail-width);\n border-radius: var(--n-rail-border-radius);\n cursor: pointer;\n position: relative;\n transition:\n opacity .3s var(--n-bezier),\n background .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n background-color: var(--n-rail-color);\n `, [cE('button-icon', `\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n font-size: calc(var(--n-button-height) - 4px);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n `, [iconSwitchTransition()]), cE('button', `\n align-items: center; \n top: var(--n-offset);\n left: var(--n-offset);\n height: var(--n-button-height);\n width: var(--n-button-width-pressed);\n max-width: var(--n-button-width);\n border-radius: var(--n-button-border-radius);\n background-color: var(--n-button-color);\n box-shadow: var(--n-button-box-shadow);\n box-sizing: border-box;\n cursor: inherit;\n content: \"\";\n position: absolute;\n transition:\n background-color .3s var(--n-bezier),\n left .3s var(--n-bezier),\n opacity .3s var(--n-bezier),\n max-width .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n `)]), cM('active', [cE('rail', 'background-color: var(--n-rail-color-active);')]), cM('loading', [cE('rail', `\n cursor: wait;\n `)]), cM('disabled', [cE('rail', `\n cursor: not-allowed;\n opacity: .5;\n `)])]);","import { depx, pxfy } from 'seemly';\nimport { useMergedState } from 'vooks';\nimport { computed, defineComponent, h, ref, toRef, watchEffect } from 'vue';\nimport { NBaseLoading, NIconSwitchTransition } from \"../../_internal/index.mjs\";\nimport { useConfig, useFormItem, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { call, createKey, isSlotEmpty, resolveWrappedSlot, warnOnce } from \"../../_utils/index.mjs\";\nimport { switchLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const switchProps = Object.assign(Object.assign({}, useTheme.props), {\n size: {\n type: String,\n default: 'medium'\n },\n value: {\n type: [String, Number, Boolean],\n default: undefined\n },\n loading: Boolean,\n defaultValue: {\n type: [String, Number, Boolean],\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n round: {\n type: Boolean,\n default: true\n },\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array],\n checkedValue: {\n type: [String, Number, Boolean],\n default: true\n },\n uncheckedValue: {\n type: [String, Number, Boolean],\n default: false\n },\n railStyle: Function,\n rubberBand: {\n type: Boolean,\n default: true\n },\n /** @deprecated */\n onChange: [Function, Array]\n});\nlet supportCssMax;\nexport default defineComponent({\n name: 'Switch',\n props: switchProps,\n slots: Object,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.onChange) {\n warnOnce('switch', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n });\n }\n if (supportCssMax === undefined) {\n if (typeof CSS !== 'undefined') {\n if (typeof CSS.supports !== 'undefined') {\n supportCssMax = CSS.supports('width', 'max(1px)');\n } else {\n supportCssMax = false;\n }\n } else {\n // If you are using SSR, we assume that you are targeting browsers with\n // recent versions\n supportCssMax = true;\n }\n }\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Switch', '-switch', style, switchLight, props, mergedClsPrefixRef);\n const formItem = useFormItem(props);\n const {\n mergedSizeRef,\n mergedDisabledRef\n } = formItem;\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const checkedRef = computed(() => {\n return mergedValueRef.value === props.checkedValue;\n });\n const pressedRef = ref(false);\n const focusedRef = ref(false);\n const mergedRailStyleRef = computed(() => {\n const {\n railStyle\n } = props;\n if (!railStyle) return undefined;\n return railStyle({\n focused: focusedRef.value,\n checked: checkedRef.value\n });\n });\n function doUpdateValue(value) {\n const {\n 'onUpdate:value': _onUpdateValue,\n onChange,\n onUpdateValue\n } = props;\n const {\n nTriggerFormInput,\n nTriggerFormChange\n } = formItem;\n if (_onUpdateValue) call(_onUpdateValue, value);\n if (onUpdateValue) call(onUpdateValue, value);\n if (onChange) call(onChange, value);\n uncontrolledValueRef.value = value;\n nTriggerFormInput();\n nTriggerFormChange();\n }\n function doFocus() {\n const {\n nTriggerFormFocus\n } = formItem;\n nTriggerFormFocus();\n }\n function doBlur() {\n const {\n nTriggerFormBlur\n } = formItem;\n nTriggerFormBlur();\n }\n function handleClick() {\n if (props.loading || mergedDisabledRef.value) return;\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n }\n function handleFocus() {\n focusedRef.value = true;\n doFocus();\n }\n function handleBlur() {\n focusedRef.value = false;\n doBlur();\n pressedRef.value = false;\n }\n function handleKeyup(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n pressedRef.value = false;\n }\n }\n function handleKeydown(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n e.preventDefault();\n pressedRef.value = true;\n }\n }\n const cssVarsRef = computed(() => {\n const {\n value: size\n } = mergedSizeRef;\n const {\n self: {\n opacityDisabled,\n railColor,\n railColorActive,\n buttonBoxShadow,\n buttonColor,\n boxShadowFocus,\n loadingColor,\n textColor,\n iconColor,\n [createKey('buttonHeight', size)]: buttonHeight,\n [createKey('buttonWidth', size)]: buttonWidth,\n [createKey('buttonWidthPressed', size)]: buttonWidthPressed,\n [createKey('railHeight', size)]: railHeight,\n [createKey('railWidth', size)]: railWidth,\n [createKey('railBorderRadius', size)]: railBorderRadius,\n [createKey('buttonBorderRadius', size)]: buttonBorderRadius\n },\n common: {\n cubicBezierEaseInOut\n }\n } = themeRef.value;\n let offset;\n let height;\n let width;\n if (supportCssMax) {\n offset = `calc((${railHeight} - ${buttonHeight}) / 2)`;\n height = `max(${railHeight}, ${buttonHeight})`;\n width = `max(${railWidth}, calc(${railWidth} + ${buttonHeight} - ${railHeight}))`;\n } else {\n offset = pxfy((depx(railHeight) - depx(buttonHeight)) / 2);\n height = pxfy(Math.max(depx(railHeight), depx(buttonHeight)));\n width = depx(railHeight) > depx(buttonHeight) ? railWidth : pxfy(depx(railWidth) + depx(buttonHeight) - depx(railHeight));\n }\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-button-border-radius': buttonBorderRadius,\n '--n-button-box-shadow': buttonBoxShadow,\n '--n-button-color': buttonColor,\n '--n-button-width': buttonWidth,\n '--n-button-width-pressed': buttonWidthPressed,\n '--n-button-height': buttonHeight,\n '--n-height': height,\n '--n-offset': offset,\n '--n-opacity-disabled': opacityDisabled,\n '--n-rail-border-radius': railBorderRadius,\n '--n-rail-color': railColor,\n '--n-rail-color-active': railColorActive,\n '--n-rail-height': railHeight,\n '--n-rail-width': railWidth,\n '--n-width': width,\n '--n-box-shadow-focus': boxShadowFocus,\n '--n-loading-color': loadingColor,\n '--n-text-color': textColor,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('switch', computed(() => {\n return mergedSizeRef.value[0];\n }), cssVarsRef, props) : undefined;\n return {\n handleClick,\n handleBlur,\n handleFocus,\n handleKeyup,\n handleKeydown,\n mergedRailStyle: mergedRailStyleRef,\n pressed: pressedRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedValue: mergedValueRef,\n checked: checkedRef,\n mergedDisabled: mergedDisabledRef,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,\n onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender\n };\n },\n render() {\n const {\n mergedClsPrefix,\n mergedDisabled,\n checked,\n mergedRailStyle,\n onRender,\n $slots\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n const {\n checked: checkedSlot,\n unchecked: uncheckedSlot,\n icon: iconSlot,\n 'checked-icon': checkedIconSlot,\n 'unchecked-icon': uncheckedIconSlot\n } = $slots;\n const hasIcon = !(isSlotEmpty(iconSlot) && isSlotEmpty(checkedIconSlot) && isSlotEmpty(uncheckedIconSlot));\n return h(\"div\", {\n role: \"switch\",\n \"aria-checked\": checked,\n class: [`${mergedClsPrefix}-switch`, this.themeClass, hasIcon && `${mergedClsPrefix}-switch--icon`, checked && `${mergedClsPrefix}-switch--active`, mergedDisabled && `${mergedClsPrefix}-switch--disabled`, this.round && `${mergedClsPrefix}-switch--round`, this.loading && `${mergedClsPrefix}-switch--loading`, this.pressed && `${mergedClsPrefix}-switch--pressed`, this.rubberBand && `${mergedClsPrefix}-switch--rubber-band`],\n tabindex: !this.mergedDisabled ? 0 : undefined,\n style: this.cssVars,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyup: this.handleKeyup,\n onKeydown: this.handleKeydown\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail`,\n \"aria-hidden\": \"true\",\n style: mergedRailStyle\n }, resolveWrappedSlot(checkedSlot, checkedSlotChildren => resolveWrappedSlot(uncheckedSlot, uncheckedSlotChildren => {\n if (checkedSlotChildren || uncheckedSlotChildren) {\n return h(\"div\", {\n \"aria-hidden\": true,\n class: `${mergedClsPrefix}-switch__children-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), checkedSlotChildren), h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), uncheckedSlotChildren));\n }\n return null;\n })), h(\"div\", {\n class: `${mergedClsPrefix}-switch__button`\n }, resolveWrappedSlot(iconSlot, icon => resolveWrappedSlot(checkedIconSlot, checkedIcon => resolveWrappedSlot(uncheckedIconSlot, uncheckedIcon => {\n return h(NIconSwitchTransition, null, {\n default: () => this.loading ? h(NBaseLoading, {\n key: \"loading\",\n clsPrefix: mergedClsPrefix,\n strokeWidth: 20\n }) : this.checked && (checkedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: checkedIcon ? 'checked-icon' : 'icon'\n }, checkedIcon || icon) : !this.checked && (uncheckedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: uncheckedIcon ? 'unchecked-icon' : 'icon'\n }, uncheckedIcon || icon) : null\n });\n }))), resolveWrappedSlot(checkedSlot, children => children && h(\"div\", {\n key: \"checked\",\n class: `${mergedClsPrefix}-switch__checked`\n }, children)), resolveWrappedSlot(uncheckedSlot, children => children && h(\"div\", {\n key: \"unchecked\",\n class: `${mergedClsPrefix}-switch__unchecked`\n }, children)))));\n }\n});","<script lang=\"tsx\" setup>\nimport ActionCard from '@/components/ActionCard.vue';\nimport { toValidURL } from '@/utils/check';\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { dialog } from '@/utils/discrete';\nimport {\n batchCreateImageId,\n batchCreateZipUrl,\n batchImageDownloadZip,\n batchZipDownloadZip,\n} from '@/utils/export';\nimport { importFromLocal, importFromNetwork } from '@/utils/import';\nimport { getAppInfo } from '@/utils/node';\nimport { getDragEventFiles } from '@/utils/others';\nimport { shallowSnapshotStorage, snapshotStorage } from '@/utils/snapshot';\nimport { renderDevice, useSnapshotColumns } from '@/utils/table';\nimport { useTask } from '@/utils/task';\nimport { getImagUrl } from '@/utils/url';\nimport type { DataTableColumns, PaginationProps } from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\n\nconst { settingsStore } = useStorageStore();\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nconst loading = shallowRef(true);\nconst updateSnapshots = async () => {\n loading.value = true;\n snapshots.value = (await shallowSnapshotStorage.getAllItems()).reverse();\n checkedRowKeys.value = [];\n loading.value = false;\n};\nonMounted(updateSnapshots);\nconst filterOption = shallowReactive({\n query: ``,\n actualQuery: ``,\n updateQuery: () => {\n filterOption.actualQuery = filterOption.query.trim();\n checkedRowKeys.value = [];\n },\n});\nconst filterSnapshots = computed(() => {\n const actualQuery = filterOption.actualQuery;\n if (!actualQuery) return snapshots.value;\n return snapshots.value.filter((s) => {\n return (\n (getAppInfo(s).name || ``).includes(actualQuery) ||\n (s.appId || ``).includes(actualQuery) ||\n (s.activityId || ``).includes(actualQuery)\n );\n });\n});\n\nconst importLocal = useTask(async (_files?: File[]) => {\n if (await importFromLocal(_files)) {\n await updateSnapshots();\n }\n});\n\nuseEventListener(document.body, 'drop', async (e) => {\n e.preventDefault();\n await importLocal.invoke(getDragEventFiles(e));\n});\nuseEventListener(document.body, 'dragover', (e) => {\n e.preventDefault();\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n mtimeCol,\n deviceCol,\n appVersionCodeCol,\n appVersionNameCol,\n resetColWidth,\n} = useSnapshotColumns();\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(renderDevice(c)), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n deviceCol.filterOptions = undefined;\n return;\n }\n deviceCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(getAppInfo(c).name), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n appNameCol.filterOptions = undefined;\n return;\n }\n appNameCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(c.activityId), p),\n new Set<string>(),\n );\n if (set.size <= 1) {\n activityIdCol.filterOptions = undefined;\n return;\n }\n activityIdCol.filterOptions = [...set.values()].map((s) => ({\n value: s,\n label: s,\n }));\n});\n\nconst columns: DataTableColumns<Snapshot> = reactive([\n {\n type: 'selection',\n },\n ctimeCol,\n mtimeCol,\n deviceCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `160px`,\n render(row) {\n return <ActionCard snapshot={row} onDelete={updateSnapshots} />;\n },\n },\n]);\n\nconst pagination = shallowReactive<PaginationProps>({\n page: 1,\n pageSize: 50,\n showSizePicker: true,\n pageSizes: [50, 100],\n onChange: (page: number) => {\n pagination.page = page;\n },\n onUpdatePageSize: (pageSize: number) => {\n pagination.pageSize = pageSize;\n pagination.page = 1;\n },\n});\nwatch(pagination, resetColWidth);\n\nconst handleSorterChange = (sorter: SortState) => {\n [ctimeCol, mtimeCol].forEach((c) => {\n if (sorter.columnKey != c.key) {\n c.sortOrder = undefined;\n } else {\n c.sortOrder = sorter.order;\n }\n });\n};\nmtimeCol.sortOrder = `descend`;\nconst showImportModal = shallowRef(false);\nconst textImportValue = shallowRef(``);\nconst importNetwork = useTask(async () => {\n const urls = textImportValue.value\n .trim()\n .split(`\\n`)\n .map((u) => u.trim())\n .filter((u) => toValidURL(u));\n if (urls.length == 0) return;\n const r = await importFromNetwork(urls);\n if (!r) return;\n await updateSnapshots();\n textImportValue.value = ``;\n});\n\nuseEventListener(document.body, 'paste', (e) => {\n if (showImportModal.value) return;\n const target = e.target as HTMLElement;\n if (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n (target.className || '').includes('input')\n ) {\n return;\n }\n const dataTransfer = e.clipboardData;\n if (!dataTransfer) return;\n const text = (dataTransfer.getData('text') || '').trim();\n if (text.startsWith('https://') || text.startsWith('http://')) {\n textImportValue.value = text;\n showImportModal.value = true;\n }\n});\n\nconst checkedRowKeys = shallowRef<number[]>([]);\nconst checkedSnapshots = () => {\n return Promise.all(\n checkedRowKeys.value.map(\n (id) => snapshotStorage.getItem(id) as Promise<Snapshot>,\n ),\n );\n};\nconst batchDelete = useTask(async () => {\n await new Promise((res, rej) => {\n dialog.warning({\n title: `删除`,\n content: `是否批量删除 ${checkedRowKeys.value.length} 个快照`,\n negativeText: `取消`,\n positiveText: `确认`,\n onClose: rej,\n onEsc: rej,\n onMaskClick: rej,\n onNegativeClick: rej,\n onPositiveClick: res,\n });\n });\n\n await Promise.all(\n checkedRowKeys.value.map((k) => snapshotStorage.removeItem(k)),\n );\n await updateSnapshots();\n});\nconst batchDownloadImage = useTask(async () => {\n await batchImageDownloadZip(await checkedSnapshots());\n});\nconst batchDownloadZip = useTask(async () => {\n await batchZipDownloadZip(await checkedSnapshots());\n});\n\nconst batchShareImageUrl = useTask(async () => {\n await waitShareAgree();\n const imageIds = await batchCreateImageId(await checkedSnapshots());\n showTextDLg({\n content: imageIds.map((s) => getImagUrl(s)).join(`\\n`) + `\\n`,\n });\n});\nconst batchShareZipUrl = useTask(async () => {\n await waitShareAgree();\n const zipUrls = await batchCreateZipUrl(await checkedSnapshots());\n showTextDLg({\n content: zipUrls.map((s) => location.origin + '/i/' + s).join(`\\n`) + `\\n`,\n });\n});\n\nconst settingsDlgShow = shallowRef(false);\n\nconst inputImportRef = shallowRef();\n</script>\n<template>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex>\n <NSpace>\n <NInputGroup>\n <NInput\n v-model:value=\"filterOption.query\"\n placeholder=\"请输入应用名称/应用ID/界面ID\"\n clearable\n class=\"min-w-320px\"\n @keyup.enter=\"filterOption.updateQuery\"\n @change=\"filterOption.updateQuery\"\n />\n <NButton @click=\"filterOption.updateQuery\">\n <template #icon>\n <SvgIcon name=\"search\" />\n </template>\n </NButton>\n </NInputGroup>\n <template v-if=\"checkedRowKeys.length\">\n <NPopover>\n <template #trigger>\n <NButton> 批量下载 </NButton>\n </template>\n <NSpace vertical>\n <NButton\n :loading=\"batchDownloadZip.loading\"\n @click=\"batchDownloadZip.invoke\"\n >\n 批量下载-快照\n </NButton>\n <NButton\n :loading=\"batchDownloadImage.loading\"\n @click=\"batchDownloadImage.invoke\"\n >\n 批量下载-图片\n </NButton>\n </NSpace>\n </NPopover>\n <NPopover>\n <template #trigger>\n <NButton> 批量分享 </NButton>\n </template>\n <NSpace vertical>\n <NButton\n :loading=\"batchShareZipUrl.loading\"\n @click=\"batchShareZipUrl.invoke\"\n >\n 批量生成链接-快照\n </NButton>\n <NButton\n :loading=\"batchShareImageUrl.loading\"\n @click=\"batchShareImageUrl.invoke\"\n >\n 批量生成链接-图片\n </NButton>\n </NSpace>\n </NPopover>\n <NButton @click=\"batchDelete.invoke\"> 批量删除 </NButton>\n <div h-full flex flex-items-center>\n {{ `已选中 ${checkedRowKeys.length} 个快照` }}\n </div>\n </template>\n </NSpace>\n <div flex-1 />\n <div flex gap-24px items-center pr-8px class=\"[--svg-h:24px]\">\n <NTooltip>\n <template #trigger>\n <NButton text @click=\"settingsDlgShow = true\">\n <SvgIcon name=\"settings\" />\n </NButton>\n </template>\n 设置\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <RouterLink flex to=\"/selector\">\n <NButton text>\n <SvgIcon name=\"terminal\" />\n </NButton>\n </RouterLink>\n </template>\n 测试选择器\n </NTooltip>\n <NPopover>\n <template #trigger>\n <NButton text>\n <SvgIcon name=\"import\" />\n </NButton>\n </template>\n <NSpace vertical>\n <NTooltip placement=\"left\">\n <template #trigger>\n <NButton\n :loading=\"importLocal.loading\"\n @click=\"importLocal.invoke()\"\n >\n 导入本地文件\n </NButton>\n </template>\n <div class=\"whitespace-nowrap\">支持拖拽文件到页面任意位置</div>\n </NTooltip>\n <NTooltip placement=\"left\">\n <template #trigger>\n <NButton\n :loading=\"importNetwork.loading\"\n @click=\"showImportModal = true\"\n >\n 导入网络文件\n </NButton>\n </template>\n <div class=\"whitespace-nowrap\">\n 支持任意位置粘贴(Ctrl+V)文本触发导入\n </div>\n </NTooltip>\n </NSpace>\n </NPopover>\n <NTooltip>\n <template #trigger>\n <RouterLink flex to=\"/device\">\n <NButton text>\n <SvgIcon name=\"device\" />\n </NButton>\n </RouterLink>\n </template>\n 连接设备\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <a\n flex\n href=\"https://github.com/orgs/gkd-kit/discussions\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton text>\n <SvgIcon name=\"discussion\" />\n </NButton>\n </a>\n </template>\n 讨论交流\n </NTooltip>\n <NTooltip>\n <template #trigger>\n <a\n flex\n href=\"https://github.com/gkd-kit/inspect\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton text>\n <SvgIcon name=\"github\" />\n </NButton>\n </a>\n </template>\n Github\n </NTooltip>\n </div>\n </div>\n <NDataTable\n v-model:checkedRowKeys=\"checkedRowKeys\"\n striped\n virtualScroll\n :data=\"filterSnapshots\"\n :columns=\"columns\"\n :scrollX=\"1800\"\n :rowKey=\"(r:Snapshot)=>r.id\"\n size=\"small\"\n class=\"flex-1\"\n flex-height\n :loading=\"loading\"\n @update:sorter=\"handleSorterChange\"\n />\n </div>\n <NModal\n :show=\"showImportModal\"\n preset=\"dialog\"\n title=\"导入网络文件\"\n :showIcon=\"false\"\n positiveText=\"确认\"\n negativeText=\"取消\"\n style=\"width: 800px\"\n :loading=\"importNetwork.loading\"\n @positiveClick=\"importNetwork.invoke\"\n @negativeClick=\"showImportModal = false\"\n @close=\"showImportModal = false\"\n @esc=\"showImportModal = false\"\n @afterEnter=\"inputImportRef?.focus()\"\n @afterLeave=\"textImportValue = ``\"\n >\n <NInput\n ref=\"inputImportRef\"\n :value=\"textImportValue\"\n type=\"textarea\"\n :placeholder=\"`1.支持ZIP文件链接\\n2.支持快照链接\\n每行一个\\n空白行自动忽略\\n非法链接行自动忽略`\"\n :autosize=\"{\n minRows: 8,\n maxRows: 16,\n }\"\n :inputProps=\"{\n style: `white-space: nowrap;`,\n }\"\n @update:value=\"\n if (!importNetwork.loading) {\n textImportValue = $event;\n }\n \"\n />\n </NModal>\n\n <NModal\n v-model:show=\"settingsDlgShow\"\n preset=\"dialog\"\n title=\"设置\"\n :showIcon=\"false\"\n positiveText=\"关闭\"\n style=\"width: 600px\"\n @positiveClick=\"settingsDlgShow = false\"\n >\n <NCheckbox v-model:checked=\"settingsStore.ignoreUploadWarn\">\n 关闭生成分享链接弹窗提醒\n </NCheckbox>\n <div h-1px my-10px bg=\"#eee\" />\n <NCheckbox v-model:checked=\"settingsStore.ignoreWasmWarn\">\n 关闭浏览器版本正则表达式 WASM(GC) 提醒\n </NCheckbox>\n <div h-1px my-10px bg=\"#eee\" />\n <div flex gap-10px>\n <NSwitch v-model:value=\"settingsStore.autoUploadImport\" />\n <div>打开快照页面自动生成分享链接(请确保不含隐私)</div>\n </div>\n </NModal>\n</template>\n"],"names":["commonVars","self","vars","primaryColor","opacityDisabled","borderRadius","textColor3","changeColor","switchLight","commonLight","style","cB","cE","iconSwitchTransition","c","cM","cNotM","switchProps","useTheme","supportCssMax","__unplugin_components_9","defineComponent","props","mergedClsPrefixRef","inlineThemeDisabled","useConfig","themeRef","formItem","useFormItem","mergedSizeRef","mergedDisabledRef","uncontrolledValueRef","ref","controlledValueRef","toRef","mergedValueRef","useMergedState","checkedRef","computed","pressedRef","focusedRef","mergedRailStyleRef","railStyle","doUpdateValue","value","_onUpdateValue","onChange","onUpdateValue","nTriggerFormInput","nTriggerFormChange","call","doFocus","nTriggerFormFocus","doBlur","nTriggerFormBlur","handleClick","handleFocus","handleBlur","handleKeyup","e","handleKeydown","cssVarsRef","size","railColor","railColorActive","buttonBoxShadow","buttonColor","boxShadowFocus","loadingColor","textColor","iconColor","createKey","buttonHeight","buttonWidth","buttonWidthPressed","railHeight","railWidth","railBorderRadius","buttonBorderRadius","cubicBezierEaseInOut","offset","height","width","pxfy","depx","themeClassHandle","useThemeClass","mergedClsPrefix","mergedDisabled","checked","mergedRailStyle","onRender","$slots","checkedSlot","uncheckedSlot","iconSlot","checkedIconSlot","uncheckedIconSlot","hasIcon","isSlotEmpty","h","resolveWrappedSlot","checkedSlotChildren","uncheckedSlotChildren","icon","checkedIcon","uncheckedIcon","NIconSwitchTransition","NBaseLoading","children","settingsStore","useStorageStore","snapshots","shallowRef","loading","updateSnapshots","shallowSnapshotStorage","getAllItems","reverse","checkedRowKeys","onMounted","filterOption","shallowReactive","query","actualQuery","updateQuery","trim","filterSnapshots","filter","s","getAppInfo","name","includes","appId","activityId","importLocal","useTask","_files","importFromLocal","useEventListener","document","body","preventDefault","invoke","getDragEventFiles","activityIdCol","appIdCol","appNameCol","ctimeCol","mtimeCol","deviceCol","appVersionCodeCol","appVersionNameCol","resetColWidth","useSnapshotColumns","watchEffect","set","reduce","p","add","renderDevice","Set","filterOptions","undefined","values","map","label","columns","reactive","type","key","title","fixed","render","row","_createVNode2","ActionCard","pagination","page","pageSize","showSizePicker","pageSizes","onUpdatePageSize","watch","handleSorterChange","sorter","forEach","columnKey","sortOrder","order","showImportModal","textImportValue","importNetwork","urls","split","u","toValidURL","length","importFromNetwork","target","HTMLInputElement","HTMLTextAreaElement","className","dataTransfer","clipboardData","text","getData","startsWith","checkedSnapshots","Promise","all","id","snapshotStorage","getItem","batchDelete","res","rej","dialog","warning","content","negativeText","positiveText","onClose","onEsc","onMaskClick","onNegativeClick","onPositiveClick","k","removeItem","batchDownloadImage","batchImageDownloadZip","batchDownloadZip","batchZipDownloadZip","batchShareImageUrl","waitShareAgree","imageIds","batchCreateImageId","showTextDLg","getImagUrl","join","batchShareZipUrl","zipUrls","batchCreateZipUrl","location","origin","settingsDlgShow","inputImportRef","_createElementVNode","_hoisted_1","_hoisted_2","_createVNode","_component_NSpace","_component_NInputGroup","_component_NInput","_unref","_cache","$event","placeholder","clearable","class","onKeyup","_withKeys","_component_NButton","onClick","_component_SvgIcon","_createElementBlock","_Fragment","_component_NPopover","trigger","vertical","_hoisted_3","_toDisplayString","_hoisted_4","_component_NTooltip","_component_RouterLink","flex","to","placement","_hoisted_5","_hoisted_6","_component_NDataTable","striped","virtualScroll","data","scrollX","rowKey","r","_component_NModal","show","preset","showIcon","onAfterEnter","focus","onAfterLeave","autosize","inputProps","_component_NCheckbox","ignoreUploadWarn","bg","ignoreWasmWarn","_hoisted_7","_component_NSwitch","autoUploadImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1,2 +1,2 @@
1
- import{h as k,aJ as y,aK as I,z as d,ba as b,A as w,bb as v,aY as S,a_ as u,X as B,b0 as n,bc as N,J as f,K as g,O as R,a7 as U,P as i,T as h,L as _,a8 as V,U as q,bd as T}from"./index-DQpmpBAn.js";import{a as C,g as D}from"./snapshot-BCm8BOZh.js";import{a as F}from"./import-CAlhG5XC.js";import"./chunk-DI5b2YDy.js";const J={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","pt-40px":"","flex-col":"","flex-items-center":""},K={key:0,"mb-20px":""},E=k({__name:"ImportPage",setup(L){const p=y(),l=I(),c=d(!0),a=d("加载中..."),m=async e=>{l.replace({name:"snapshot",params:{snapshotId:e},query:T(p.query,["str","gkd"])})},s=String(p.query.url||""),t=b(s),{importSnapshotId:o,snapshotImportId:x}=B();return w(async()=>{if(!v(s)){S.error("非法URL参数"),await u(1e3),l.replace({path:"/"});return}if(t){const e=o[t];if(e)if(await C.getItem(e)){m(e);return}else delete o[t]}n.start();try{const[e]=await F(t?N(t):s)||[];e&&(n.finish(),e!=null&&e.id?(t&&(o[t]=e.id,x[e.id]=t),c.value=!1,await u(500),m(e.id)):a.value="获取资源失败")}catch{n.error(),a.value="加载资源失败"}}),(e,r)=>(g(),f("div",J,[i(D)()?R("",!0):(g(),f("div",K,r[0]||(r[0]=[h(" 建议安装并启用 "),_("a",{href:"https://github.com/gkd-kit/network-extension",target:"_blank",rel:"noopener noreferrer"}," 油猴脚本 ",-1),h(" 获取更快加载速度 ")]))),U(_("div",null,q(i(a)),513),[[V,i(c)]])]))}});export{E as default};
2
- //# sourceMappingURL=ImportPage-CY2laQkD.js.map
1
+ import{h as k,aJ as y,aK as I,z as d,ba as b,A as w,bb as v,aY as S,a_ as u,X as B,b0 as n,bc as N,J as f,K as g,O as R,a7 as U,P as i,T as h,L as _,a8 as V,U as q,bd as T}from"./index-D17uyErR.js";import{a as C,g as D}from"./snapshot-DhE3UxkB.js";import{a as F}from"./import-CrFFEti7.js";import"./chunk-BcM-31Xg.js";const J={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","pt-40px":"","flex-col":"","flex-items-center":""},K={key:0,"mb-20px":""},E=k({__name:"ImportPage",setup(L){const p=y(),l=I(),c=d(!0),a=d("加载中..."),m=async e=>{l.replace({name:"snapshot",params:{snapshotId:e},query:T(p.query,["str","gkd"])})},s=String(p.query.url||""),t=b(s),{importSnapshotId:o,snapshotImportId:x}=B();return w(async()=>{if(!v(s)){S.error("非法URL参数"),await u(1e3),l.replace({path:"/"});return}if(t){const e=o[t];if(e)if(await C.getItem(e)){m(e);return}else delete o[t]}n.start();try{const[e]=await F(t?N(t):s)||[];e&&(n.finish(),e!=null&&e.id?(t&&(o[t]=e.id,x[e.id]=t),c.value=!1,await u(500),m(e.id)):a.value="获取资源失败")}catch{n.error(),a.value="加载资源失败"}}),(e,r)=>(g(),f("div",J,[i(D)()?R("",!0):(g(),f("div",K,[...r[0]||(r[0]=[h(" 建议安装并启用 ",-1),_("a",{href:"https://github.com/gkd-kit/network-extension",target:"_blank",rel:"noopener noreferrer"}," 油猴脚本 ",-1),h(" 获取更快加载速度 ",-1)])])),U(_("div",null,q(i(a)),513),[[V,i(c)]])]))}});export{E as default};
2
+ //# sourceMappingURL=ImportPage-6z7fBRPl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImportPage-CY2laQkD.js","sources":["../../src/views/ImportPage.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { loadingBar, message } from '@/utils/discrete';\nimport { gmOk } from '@/utils/gm';\nimport { importFromNetwork } from '@/utils/import';\nimport { delay, filterQuery } from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { getImportFileUrl, getImportId, isValidUrl } from '@/utils/url';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst loading = shallowRef(true);\nconst tip = shallowRef(`加载中...`);\n\nconst goToSnapshot = async (snapshotId: number) => {\n router.replace({\n name: 'snapshot',\n params: { snapshotId },\n query: filterQuery(route.query, ['str', 'gkd']),\n });\n};\n\nconst url = String(route.query.url || ``);\nconst importId = getImportId(url);\nconst { importSnapshotId, snapshotImportId } = useStorageStore();\n\nonMounted(async () => {\n if (!isValidUrl(url)) {\n message.error(`非法URL参数`);\n await delay(1000);\n router.replace({\n path: `/`,\n });\n return;\n }\n if (importId) {\n const snapshotId = importSnapshotId[importId];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n goToSnapshot(snapshotId);\n return;\n } else {\n delete importSnapshotId[importId];\n }\n }\n }\n loadingBar.start();\n try {\n const [snapshot] =\n (await importFromNetwork(importId ? getImportFileUrl(importId) : url)) ||\n [];\n if (snapshot) {\n loadingBar.finish();\n if (snapshot?.id) {\n if (importId) {\n importSnapshotId[importId] = snapshot.id;\n snapshotImportId[snapshot.id] = importId;\n }\n loading.value = false;\n await delay(500);\n goToSnapshot(snapshot.id);\n } else {\n tip.value = `获取资源失败`;\n }\n }\n } catch {\n loadingBar.error();\n tip.value = `加载资源失败`;\n }\n});\n</script>\n<template>\n <div\n class=\"h-[calc(100%-10px)]\"\n flex\n gap-5px\n pt-40px\n flex-col\n flex-items-center\n >\n <div v-if=\"!gmOk()\" mb-20px>\n 建议安装并启用\n <a\n href=\"https://github.com/gkd-kit/network-extension\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 油猴脚本\n </a>\n 获取更快加载速度\n </div>\n <div v-show=\"loading\">\n {{ tip }}\n </div>\n </div>\n</template>\n"],"names":["route","useRoute","router","useRouter","loading","shallowRef","tip","goToSnapshot","snapshotId","replace","name","params","query","filterQuery","url","String","importId","getImportId","importSnapshotId","snapshotImportId","useStorageStore","onMounted","isValidUrl","message","error","delay","path","snapshotStorage","getItem","loadingBar","start","snapshot","importFromNetwork","getImportFileUrl","finish","id","value","_openBlock","_createElementBlock","_hoisted_1","_unref","gmOk","_hoisted_2","_cache","_createElementVNode","href","target","rel","_withDirectives"],"mappings":"meAQA,MAAMA,EAAQC,EAAQ,EAChBC,EAASC,EAAS,EAElBC,EAAUC,EAAW,EAAI,EACzBC,EAAMD,EAAW,QAAQ,EAEzBE,EAAe,MAAOC,GAAuB,CACjDN,EAAOO,QAAQ,CACbC,KAAM,WACNC,OAAQ,CAAEH,WAAAA,GACVI,MAAOC,EAAYb,EAAMY,MAAO,CAAC,MAAO,KAAK,CAAC,CAChD,CAAC,GAGGE,EAAMC,OAAOf,EAAMY,MAAME,KAAO,EAAE,EAClCE,EAAWC,EAAYH,CAAG,EAC1B,CAAEI,iBAAAA,EAAkBC,iBAAAA,GAAqBC,EAAe,EAE9DC,OAAAA,EAAU,SAAY,CACpB,GAAI,CAACC,EAAWR,CAAG,EAAG,CACpBS,EAAQC,MAAM,SAAS,EACvB,MAAMC,EAAM,GAAI,EAChBvB,EAAOO,QAAQ,CACbiB,KAAM,GACR,CAAC,EACD,MACF,CACA,GAAIV,EAAU,CACZ,MAAMR,EAAaU,EAAiBF,CAAQ,EAC5C,GAAIR,EAEF,GADiB,MAAMmB,EAAgBC,QAAQpB,CAAU,EAC3C,CACZD,EAAaC,CAAU,EACvB,MACF,MACE,OAAOU,EAAiBF,CAAQ,CAGtC,CACAa,EAAWC,MAAK,EAChB,GAAI,CACF,KAAM,CAACC,CAAQ,EACZ,MAAMC,EAAkBhB,EAAWiB,EAAiBjB,CAAQ,EAAIF,CAAG,GACpE,CAAA,EACEiB,IACFF,EAAWK,OAAM,EACbH,GAAAA,MAAAA,EAAUI,IACRnB,IACFE,EAAiBF,CAAQ,EAAIe,EAASI,GACtChB,EAAiBY,EAASI,EAAE,EAAInB,GAElCZ,EAAQgC,MAAQ,GAChB,MAAMX,EAAM,GAAG,EACflB,EAAawB,EAASI,EAAE,GAExB7B,EAAI8B,MAAQ,SAGlB,MAAQ,CACNP,EAAWL,MAAK,EAChBlB,EAAI8B,MAAQ,QACd,CACF,CAAC,UAGCC,EAAA,EAAAC,EAsBM,MAtBNC,EAsBM,CAdQC,EAAAC,CAAA,cAAZJ,EAAA,EAAAC,EAUM,MAVNI,EAUMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAVsB,WAE1B,EAAAC,EAMI,IAAA,CALFC,KAAK,+CACLC,OAAO,SACPC,IAAI,uBACL,SAED,EAAA,IAAI,YAEN,CAAA,KACAC,EAAAJ,EAEM,aADDJ,EAAAlC,CAAA,CAAG,EAAA,GAAA,EAAA,IADKkC,EAAApC,CAAA,CAAO,CAAA"}
1
+ {"version":3,"file":"ImportPage-6z7fBRPl.js","sources":["../../src/views/ImportPage.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { loadingBar, message } from '@/utils/discrete';\nimport { gmOk } from '@/utils/gm';\nimport { importFromNetwork } from '@/utils/import';\nimport { delay, filterQuery } from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { getImportFileUrl, getImportId, isValidUrl } from '@/utils/url';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst loading = shallowRef(true);\nconst tip = shallowRef(`加载中...`);\n\nconst goToSnapshot = async (snapshotId: number) => {\n router.replace({\n name: 'snapshot',\n params: { snapshotId },\n query: filterQuery(route.query, ['str', 'gkd']),\n });\n};\n\nconst url = String(route.query.url || ``);\nconst importId = getImportId(url);\nconst { importSnapshotId, snapshotImportId } = useStorageStore();\n\nonMounted(async () => {\n if (!isValidUrl(url)) {\n message.error(`非法URL参数`);\n await delay(1000);\n router.replace({\n path: `/`,\n });\n return;\n }\n if (importId) {\n const snapshotId = importSnapshotId[importId];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n goToSnapshot(snapshotId);\n return;\n } else {\n delete importSnapshotId[importId];\n }\n }\n }\n loadingBar.start();\n try {\n const [snapshot] =\n (await importFromNetwork(importId ? getImportFileUrl(importId) : url)) ||\n [];\n if (snapshot) {\n loadingBar.finish();\n if (snapshot?.id) {\n if (importId) {\n importSnapshotId[importId] = snapshot.id;\n snapshotImportId[snapshot.id] = importId;\n }\n loading.value = false;\n await delay(500);\n goToSnapshot(snapshot.id);\n } else {\n tip.value = `获取资源失败`;\n }\n }\n } catch {\n loadingBar.error();\n tip.value = `加载资源失败`;\n }\n});\n</script>\n<template>\n <div\n class=\"h-[calc(100%-10px)]\"\n flex\n gap-5px\n pt-40px\n flex-col\n flex-items-center\n >\n <div v-if=\"!gmOk()\" mb-20px>\n 建议安装并启用\n <a\n href=\"https://github.com/gkd-kit/network-extension\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 油猴脚本\n </a>\n 获取更快加载速度\n </div>\n <div v-show=\"loading\">\n {{ tip }}\n </div>\n </div>\n</template>\n"],"names":["route","useRoute","router","useRouter","loading","shallowRef","tip","goToSnapshot","snapshotId","replace","name","params","query","filterQuery","url","String","importId","getImportId","importSnapshotId","snapshotImportId","useStorageStore","onMounted","isValidUrl","message","error","delay","path","snapshotStorage","getItem","loadingBar","start","snapshot","importFromNetwork","getImportFileUrl","finish","id","value","_openBlock","_createElementBlock","_hoisted_1","_unref","gmOk","_hoisted_2","_cache","_createElementVNode","href","target","rel","_withDirectives"],"mappings":"meAQA,MAAMA,EAAQC,EAAQ,EAChBC,EAASC,EAAS,EAElBC,EAAUC,EAAW,EAAI,EACzBC,EAAMD,EAAW,QAAQ,EAEzBE,EAAe,MAAOC,GAAuB,CACjDN,EAAOO,QAAQ,CACbC,KAAM,WACNC,OAAQ,CAAEH,WAAAA,GACVI,MAAOC,EAAYb,EAAMY,MAAO,CAAC,MAAO,KAAK,CAAC,CAChD,CAAC,GAGGE,EAAMC,OAAOf,EAAMY,MAAME,KAAO,EAAE,EAClCE,EAAWC,EAAYH,CAAG,EAC1B,CAAEI,iBAAAA,EAAkBC,iBAAAA,GAAqBC,EAAe,EAE9DC,OAAAA,EAAU,SAAY,CACpB,GAAI,CAACC,EAAWR,CAAG,EAAG,CACpBS,EAAQC,MAAM,SAAS,EACvB,MAAMC,EAAM,GAAI,EAChBvB,EAAOO,QAAQ,CACbiB,KAAM,GACR,CAAC,EACD,MACF,CACA,GAAIV,EAAU,CACZ,MAAMR,EAAaU,EAAiBF,CAAQ,EAC5C,GAAIR,EAEF,GADiB,MAAMmB,EAAgBC,QAAQpB,CAAU,EAC3C,CACZD,EAAaC,CAAU,EACvB,MACF,MACE,OAAOU,EAAiBF,CAAQ,CAGtC,CACAa,EAAWC,MAAK,EAChB,GAAI,CACF,KAAM,CAACC,CAAQ,EACZ,MAAMC,EAAkBhB,EAAWiB,EAAiBjB,CAAQ,EAAIF,CAAG,GACpE,CAAA,EACEiB,IACFF,EAAWK,OAAM,EACbH,GAAAA,MAAAA,EAAUI,IACRnB,IACFE,EAAiBF,CAAQ,EAAIe,EAASI,GACtChB,EAAiBY,EAASI,EAAE,EAAInB,GAElCZ,EAAQgC,MAAQ,GAChB,MAAMX,EAAM,GAAG,EACflB,EAAawB,EAASI,EAAE,GAExB7B,EAAI8B,MAAQ,SAGlB,MAAQ,CACNP,EAAWL,MAAK,EAChBlB,EAAI8B,MAAQ,QACd,CACF,CAAC,UAGCC,EAAA,EAAAC,EAsBM,MAtBNC,EAsBM,CAdQC,EAAAC,CAAA,EAAI,YAAhBJ,EAAA,EAAAC,EAUM,MAVNI,EAUM,CAAA,GAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAVsB,YAE1B,EAAA,EAAAC,EAMI,IAAA,CALFC,KAAK,+CACLC,OAAO,SACPC,IAAI,uBACL,SAED,EAAA,IAAI,aAEN,EAAA,CAAA,MACAC,EAAAJ,EAEM,aADDJ,EAAAlC,CAAA,CAAG,EAAA,GAAA,EAAA,IADKkC,EAAApC,CAAA,CAAO,CAAA"}