@gkd-kit/inspect 0.0.1743166447533 → 0.0.1745465535205

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 (50) hide show
  1. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-Cxq8-Nza.js → ActionCard.vue_vue_type_script_setup_true_lang-C7pSJ7Gh.js} +3 -3
  2. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-Cxq8-Nza.js.map → ActionCard.vue_vue_type_script_setup_true_lang-C7pSJ7Gh.js.map} +1 -1
  3. package/dist/assets/{DevicePage-mVscK2_u.js → DevicePage-Cdf1HIXm.js} +3 -3
  4. package/dist/assets/{DevicePage-mVscK2_u.js.map → DevicePage-Cdf1HIXm.js.map} +1 -1
  5. package/dist/assets/HomePage-dESScTDh.js +112 -0
  6. package/dist/assets/HomePage-dESScTDh.js.map +1 -0
  7. package/dist/assets/ImportPage-BaUZso8G.js +2 -0
  8. package/dist/assets/{ImportPage-HgUZYczC.js.map → ImportPage-BaUZso8G.js.map} +1 -1
  9. package/dist/assets/{Input-BPf4OAqD.js → Input-D010NNBP.js} +5 -5
  10. package/dist/assets/{Input-BPf4OAqD.js.map → Input-D010NNBP.js.map} +1 -1
  11. package/dist/assets/{SelectorPage-CKoFw1rd.js → SelectorPage-WorSvDCJ.js} +2 -2
  12. package/dist/assets/{SelectorPage-CKoFw1rd.js.map → SelectorPage-WorSvDCJ.js.map} +1 -1
  13. package/dist/assets/{SnapshotPage-DPlwJ4ev.js → SnapshotPage-CcOtnsxq.js} +4 -4
  14. package/dist/assets/{SnapshotPage-DPlwJ4ev.js.map → SnapshotPage-CcOtnsxq.js.map} +1 -1
  15. package/dist/assets/SvgPage-DaM35Mg6.js +2 -0
  16. package/dist/assets/{SvgPage-CtApO5Fb.js.map → SvgPage-DaM35Mg6.js.map} +1 -1
  17. package/dist/assets/{TrackGraph-Dcv4xzw5.js → TrackGraph-CgnlhmZe.js} +3 -3
  18. package/dist/assets/{TrackGraph-Dcv4xzw5.js.map → TrackGraph-CgnlhmZe.js.map} +1 -1
  19. package/dist/assets/{_404Page-CRZUYPFh.js → _404Page-7_aJHkYl.js} +2 -2
  20. package/dist/assets/{_404Page-CRZUYPFh.js.map → _404Page-7_aJHkYl.js.map} +1 -1
  21. package/dist/assets/chunk-GKZlnsBh.js +3 -0
  22. package/dist/assets/{chunk-18w_MS7Q.js.map → chunk-GKZlnsBh.js.map} +1 -1
  23. package/dist/assets/{dayjs.min-CECqKMvQ.js → dayjs.min-B-2YMXPd.js} +7 -7
  24. package/dist/assets/{dayjs.min-CECqKMvQ.js.map → dayjs.min-B-2YMXPd.js.map} +1 -1
  25. package/dist/assets/{error-B8tAylgL.js → error-ClL4t9cO.js} +6 -6
  26. package/dist/assets/{error-B8tAylgL.js.map → error-ClL4t9cO.js.map} +1 -1
  27. package/dist/assets/import-DHR9ByRk.js +2 -0
  28. package/dist/assets/import-DHR9ByRk.js.map +1 -0
  29. package/dist/assets/{index-KLBdhCUJ.js → index-DaBlboKw.js} +7 -7
  30. package/dist/assets/index-DaBlboKw.js.map +1 -0
  31. package/dist/assets/{index-Bvdhywm7.js → index-gwG5WOaM.js} +3 -3
  32. package/dist/assets/{index-Bvdhywm7.js.map → index-gwG5WOaM.js.map} +1 -1
  33. package/dist/assets/{jszip.min-C2_iS27H.js → jszip.min-DgWVexsY.js} +2 -2
  34. package/dist/assets/{jszip.min-C2_iS27H.js.map → jszip.min-DgWVexsY.js.map} +1 -1
  35. package/dist/assets/{node-Bw3u8N3q.js → node-BAqF01hW.js} +7 -7
  36. package/dist/assets/{node-Bw3u8N3q.js.map → node-BAqF01hW.js.map} +1 -1
  37. package/dist/assets/{snapshot-BQX8k_gH.js → snapshot-Dax86TS0.js} +3 -3
  38. package/dist/assets/{snapshot-BQX8k_gH.js.map → snapshot-Dax86TS0.js.map} +1 -1
  39. package/dist/assets/{table-lE_03Jwg.js → table-BmdaYE2s.js} +2 -2
  40. package/dist/assets/{table-lE_03Jwg.js.map → table-BmdaYE2s.js.map} +1 -1
  41. package/dist/index.html +3 -3
  42. package/package.json +1 -1
  43. package/dist/assets/HomePage-COggIc78.js +0 -112
  44. package/dist/assets/HomePage-COggIc78.js.map +0 -1
  45. package/dist/assets/ImportPage-HgUZYczC.js +0 -2
  46. package/dist/assets/SvgPage-CtApO5Fb.js +0 -2
  47. package/dist/assets/chunk-18w_MS7Q.js +0 -3
  48. package/dist/assets/import-DktEDw1G.js +0 -2
  49. package/dist/assets/import-DktEDw1G.js.map +0 -1
  50. package/dist/assets/index-KLBdhCUJ.js.map +0 -1
package/dist/index.html CHANGED
@@ -1,7 +1,7 @@
1
1
  <!doctype html>
2
2
  <html lang="zh">
3
3
  <head>
4
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/polyfills-CaqqA8pJ.js"></script>
4
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1745465535205/files/dist/assets/polyfills-CaqqA8pJ.js"></script>
5
5
 
6
6
  <meta charset="UTF-8" />
7
7
  <link
@@ -12,8 +12,8 @@
12
12
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
13
  <meta name="referrer" content="no-referrer" />
14
14
  <title>GKD</title>
15
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/index-KLBdhCUJ.js"></script>
16
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/index-CvjevRsx.css">
15
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1745465535205/files/dist/assets/index-DaBlboKw.js"></script>
16
+ <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1745465535205/files/dist/assets/index-CvjevRsx.css">
17
17
  </head>
18
18
 
19
19
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gkd-kit/inspect",
3
- "version": "0.0.1743166447533",
3
+ "version": "0.0.1745465535205",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,112 +0,0 @@
1
- import{d as Be,c as ze,a as ge,b as r,e as re,f as I,g as fe,i as ve,h as Re,j as se,k as b,r as M,N as Ie,l as Ve,u as Ne,m as $e,n as Ue,o as de,t as We,p as Pe,q as J,s as L,v as ue,w as V,x as Fe,y as ce,z as De,A as G,B as Te,C as me,D as he,E as Oe,F as t,G as Ke,H as be,I as we,J as xe,K as _,L as o,M as Me,O as i,P as Le,Q as He,R as ke,S as g,T as Ae,U as pe,_ as Qe,V as je,W as Ee,X as Ze,Y as qe}from"./index-KLBdhCUJ.js";import{_ as Ge,b as Xe,a as Ye,w as ye,c as Je,s as _e,d as et}from"./ActionCard.vue_vue_type_script_setup_true_lang-Cxq8-Nza.js";import{i as tt,a as ot}from"./import-DktEDw1G.js";import{g as Ce,_ as nt,a as at}from"./node-Bw3u8N3q.js";import{s as it,a as Se}from"./snapshot-BQX8k_gH.js";import{u as lt,_ as rt,r as st}from"./table-lE_03Jwg.js";import{u as H,_ as dt,a as ut}from"./dayjs.min-CECqKMvQ.js";import{_ as ct}from"./Input-BPf4OAqD.js";import"./chunk-18w_MS7Q.js";const ht={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 pt(n){const{primaryColor:f,opacityDisabled:y,borderRadius:v,textColor3:h}=n;return Object.assign(Object.assign({},ht),{iconColor:h,textColor:"white",loadingColor:f,opacityDisabled:y,railColor:"rgba(0, 0, 0, .14)",railColorActive:f,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 ${ze(f,{alpha:.2})}`})}const gt={common:Be,self:pt},ft=ge("switch",`
2
- height: var(--n-height);
3
- min-width: var(--n-width);
4
- vertical-align: middle;
5
- user-select: none;
6
- -webkit-user-select: none;
7
- display: inline-flex;
8
- outline: none;
9
- justify-content: center;
10
- align-items: center;
11
- `,[r("children-placeholder",`
12
- height: var(--n-rail-height);
13
- display: flex;
14
- flex-direction: column;
15
- overflow: hidden;
16
- pointer-events: none;
17
- visibility: hidden;
18
- `),r("rail-placeholder",`
19
- display: flex;
20
- flex-wrap: none;
21
- `),r("button-placeholder",`
22
- width: calc(1.75 * var(--n-rail-height));
23
- height: var(--n-rail-height);
24
- `),ge("base-loading",`
25
- position: absolute;
26
- top: 50%;
27
- left: 50%;
28
- transform: translateX(-50%) translateY(-50%);
29
- font-size: calc(var(--n-button-width) - 4px);
30
- color: var(--n-loading-color);
31
- transition: color .3s var(--n-bezier);
32
- `,[ve({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),r("checked, unchecked",`
33
- transition: color .3s var(--n-bezier);
34
- color: var(--n-text-color);
35
- box-sizing: border-box;
36
- position: absolute;
37
- white-space: nowrap;
38
- top: 0;
39
- bottom: 0;
40
- display: flex;
41
- align-items: center;
42
- line-height: 1;
43
- `),r("checked",`
44
- right: 0;
45
- padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));
46
- `),r("unchecked",`
47
- left: 0;
48
- justify-content: flex-end;
49
- padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));
50
- `),re("&:focus",[r("rail",`
51
- box-shadow: var(--n-box-shadow-focus);
52
- `)]),I("round",[r("rail","border-radius: calc(var(--n-rail-height) / 2);",[r("button","border-radius: calc(var(--n-button-height) / 2);")])]),fe("disabled",[fe("icon",[I("rubber-band",[I("pressed",[r("rail",[r("button","max-width: var(--n-button-width-pressed);")])]),r("rail",[re("&:active",[r("button","max-width: var(--n-button-width-pressed);")])]),I("active",[I("pressed",[r("rail",[r("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),r("rail",[re("&:active",[r("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),I("active",[r("rail",[r("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),r("rail",`
53
- overflow: hidden;
54
- height: var(--n-rail-height);
55
- min-width: var(--n-rail-width);
56
- border-radius: var(--n-rail-border-radius);
57
- cursor: pointer;
58
- position: relative;
59
- transition:
60
- opacity .3s var(--n-bezier),
61
- background .3s var(--n-bezier),
62
- box-shadow .3s var(--n-bezier);
63
- background-color: var(--n-rail-color);
64
- `,[r("button-icon",`
65
- color: var(--n-icon-color);
66
- transition: color .3s var(--n-bezier);
67
- font-size: calc(var(--n-button-height) - 4px);
68
- position: absolute;
69
- left: 0;
70
- right: 0;
71
- top: 0;
72
- bottom: 0;
73
- display: flex;
74
- justify-content: center;
75
- align-items: center;
76
- line-height: 1;
77
- `,[ve()]),r("button",`
78
- align-items: center;
79
- top: var(--n-offset);
80
- left: var(--n-offset);
81
- height: var(--n-button-height);
82
- width: var(--n-button-width-pressed);
83
- max-width: var(--n-button-width);
84
- border-radius: var(--n-button-border-radius);
85
- background-color: var(--n-button-color);
86
- box-shadow: var(--n-button-box-shadow);
87
- box-sizing: border-box;
88
- cursor: inherit;
89
- content: "";
90
- position: absolute;
91
- transition:
92
- background-color .3s var(--n-bezier),
93
- left .3s var(--n-bezier),
94
- opacity .3s var(--n-bezier),
95
- max-width .3s var(--n-bezier),
96
- box-shadow .3s var(--n-bezier);
97
- `)]),I("active",[r("rail","background-color: var(--n-rail-color-active);")]),I("loading",[r("rail",`
98
- cursor: wait;
99
- `)]),I("disabled",[r("rail",`
100
- cursor: not-allowed;
101
- opacity: .5;
102
- `)])]),vt=Object.assign(Object.assign({},$e.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 Y;const mt=Re({name:"Switch",props:vt,slots:Object,setup(n){Y===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?Y=CSS.supports("width","max(1px)"):Y=!1:Y=!0);const{mergedClsPrefixRef:f,inlineThemeDisabled:y}=Ne(n),v=$e("Switch","-switch",ft,gt,n,f),h=Ue(n),{mergedSizeRef:m,mergedDisabledRef:x}=h,N=de(n.defaultValue),U=We(n,"value"),R=Pe(U,N),$=J(()=>R.value===n.checkedValue),B=de(!1),s=de(!1),k=J(()=>{const{railStyle:l}=n;if(l)return l({focused:s.value,checked:$.value})});function C(l){const{"onUpdate:value":Q,onChange:D,onUpdateValue:T}=n,{nTriggerFormInput:j,nTriggerFormChange:E}=h;Q&&ce(Q,l),T&&ce(T,l),D&&ce(D,l),N.value=l,j(),E()}function te(){const{nTriggerFormFocus:l}=h;l()}function oe(){const{nTriggerFormBlur:l}=h;l()}function ne(){n.loading||x.value||(R.value!==n.checkedValue?C(n.checkedValue):C(n.uncheckedValue))}function W(){s.value=!0,te()}function ae(){s.value=!1,oe(),B.value=!1}function A(l){n.loading||x.value||l.key===" "&&(R.value!==n.checkedValue?C(n.checkedValue):C(n.uncheckedValue),B.value=!1)}function P(l){n.loading||x.value||l.key===" "&&(l.preventDefault(),B.value=!0)}const F=J(()=>{const{value:l}=m,{self:{opacityDisabled:Q,railColor:D,railColorActive:T,buttonBoxShadow:j,buttonColor:E,boxShadowFocus:O,loadingColor:a,textColor:e,iconColor:S,[L("buttonHeight",l)]:p,[L("buttonWidth",l)]:u,[L("buttonWidthPressed",l)]:ie,[L("railHeight",l)]:w,[L("railWidth",l)]:z,[L("railBorderRadius",l)]:K,[L("buttonBorderRadius",l)]:ee},common:{cubicBezierEaseInOut:le}}=v.value;let Z,q,X;return Y?(Z=`calc((${w} - ${p}) / 2)`,q=`max(${w}, ${p})`,X=`max(${z}, calc(${z} + ${p} - ${w}))`):(Z=ue((V(w)-V(p))/2),q=ue(Math.max(V(w),V(p))),X=V(w)>V(p)?z:ue(V(z)+V(p)-V(w))),{"--n-bezier":le,"--n-button-border-radius":ee,"--n-button-box-shadow":j,"--n-button-color":E,"--n-button-width":u,"--n-button-width-pressed":ie,"--n-button-height":p,"--n-height":q,"--n-offset":Z,"--n-opacity-disabled":Q,"--n-rail-border-radius":K,"--n-rail-color":D,"--n-rail-color-active":T,"--n-rail-height":w,"--n-rail-width":z,"--n-width":X,"--n-box-shadow-focus":O,"--n-loading-color":a,"--n-text-color":e,"--n-icon-color":S}}),c=y?Fe("switch",J(()=>m.value[0]),F,n):void 0;return{handleClick:ne,handleBlur:ae,handleFocus:W,handleKeyup:A,handleKeydown:P,mergedRailStyle:k,pressed:B,mergedClsPrefix:f,mergedValue:R,checked:$,mergedDisabled:x,cssVars:y?void 0:F,themeClass:c==null?void 0:c.themeClass,onRender:c==null?void 0:c.onRender}},render(){const{mergedClsPrefix:n,mergedDisabled:f,checked:y,mergedRailStyle:v,onRender:h,$slots:m}=this;h==null||h();const{checked:x,unchecked:N,icon:U,"checked-icon":R,"unchecked-icon":$}=m,B=!(se(U)&&se(R)&&se($));return b("div",{role:"switch","aria-checked":y,class:[`${n}-switch`,this.themeClass,B&&`${n}-switch--icon`,y&&`${n}-switch--active`,f&&`${n}-switch--disabled`,this.round&&`${n}-switch--round`,this.loading&&`${n}-switch--loading`,this.pressed&&`${n}-switch--pressed`,this.rubberBand&&`${n}-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:`${n}-switch__rail`,"aria-hidden":"true",style:v},M(x,s=>M(N,k=>s||k?b("div",{"aria-hidden":!0,class:`${n}-switch__children-placeholder`},b("div",{class:`${n}-switch__rail-placeholder`},b("div",{class:`${n}-switch__button-placeholder`}),s),b("div",{class:`${n}-switch__rail-placeholder`},b("div",{class:`${n}-switch__button-placeholder`}),k)):null)),b("div",{class:`${n}-switch__button`},M(U,s=>M(R,k=>M($,C=>b(Ie,null,{default:()=>this.loading?b(Ve,{key:"loading",clsPrefix:n,strokeWidth:20}):this.checked&&(k||s)?b("div",{class:`${n}-switch__button-icon`,key:k?"checked-icon":"icon"},k||s):!this.checked&&(C||s)?b("div",{class:`${n}-switch__button-icon`,key:C?"unchecked-icon":"icon"},C||s):null})))),M(x,s=>s&&b("div",{key:"checked",class:`${n}-switch__checked`},s)),M(N,s=>s&&b("div",{key:"unchecked",class:`${n}-switch__unchecked`},s)))))}}),bt={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},wt={flex:""},xt={"h-full":"",flex:"","flex-items-center":""},kt={flex:"","gap-24px":"","items-center":"","pr-8px":"",class:"[--svg-h:24px]"},yt={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"},Ct={flex:"","gap-10px":""},Wt=Re({__name:"HomePage",setup(n){const f=De(),y=G([]),v=G(!0),h=async()=>{v.value=!0,y.value=(await it.getAllItems()).reverse(),c.value=[],v.value=!1};Te(h);const m=me({query:"",actualQuery:"",updateQuery:()=>{m.actualQuery=m.query.trim(),c.value=[]}}),x=J(()=>{const a=m.actualQuery;return a?y.value.filter(e=>(Ce(e).name||"").includes(a)||(e.appId||"").includes(a)||(e.activityId||"").includes(a)):y.value}),N=H(async()=>{await tt(),await h()}),{activityIdCol:U,appIdCol:R,appNameCol:$,ctimeCol:B,mtimeCol:s,deviceCol:k,appVersionCodeCol:C,appVersionNameCol:te,resetColWidth:oe}=lt();he(()=>{const a=x.value.reduce((e,S)=>(e.add(st(S)),e),new Set);if(a.size<=1){k.filterOptions=void 0;return}k.filterOptions=[...a.values()].map(e=>({value:e,label:e}))}),he(()=>{const a=x.value.reduce((e,S)=>(e.add(Ce(S).name),e),new Set);if(a.size<=1){$.filterOptions=void 0;return}$.filterOptions=[...a.values()].map(e=>({value:e,label:e}))}),he(()=>{const a=x.value.reduce((e,S)=>(e.add(S.activityId),e),new Set);if(a.size<=1){U.filterOptions=void 0;return}U.filterOptions=[...a.values()].map(e=>({value:e,label:e}))});const ne=Oe([{type:"selection"},B,s,k,$,R,C,te,U,{key:"actions",title:"操作",fixed:"right",width:"160px",render(a){return t(Ge,{snapshot:a,onDelete:h},null)}}]),W=me({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:a=>{W.page=a},onUpdatePageSize:a=>{W.pageSize=a,W.page=1}});Ke(W,oe);const ae=a=>{[B,s].forEach(e=>{a.columnKey!=e.key?e.sortOrder=void 0:e.sortOrder=a.order})};s.sortOrder="descend";const A=G(!1),P=G(""),F=H(async()=>{const a=P.value.trim().split(`
103
- `).map(e=>e.trim()).filter(e=>qe(e));a.length!=0&&(await ot(a),await h(),P.value="")}),c=G([]),l=()=>Promise.all(c.value.map(a=>Se.getItem(a))),Q=H(async()=>{await new Promise((a,e)=>{Ze.warning({title:"删除",content:`是否批量删除 ${c.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:e,onEsc:e,onMaskClick:e,onNegativeClick:e,onPositiveClick:a})}),await Promise.all(c.value.map(a=>Se.removeItem(a))),await h()}),D=H(async()=>{await Ye(await l())}),T=H(async()=>{await Xe(await l())}),j=H(async()=>{await ye();const a=await et(await l());_e({content:a.map(e=>Ee(e)).join(`
104
- `)+`
105
- `})}),E=H(async()=>{await ye();const a=await Je(await l());_e({content:a.map(e=>location.origin+"/i/"+e).join(`
106
- `)+`
107
- `})}),O=G(!1);return(a,e)=>{const S=ct,p=be("SvgIcon"),u=He,ie=dt,w=ut,z=nt,K=at,ee=be("RouterLink"),le=rt,Z=Qe,q=je,X=mt;return xe(),we(ke,null,[_("div",bt,[_("div",wt,[t(w,null,{default:o(()=>[t(ie,null,{default:o(()=>[t(S,{placeholder:"请输入应用名称/应用ID/界面ID",clearable:"",class:"min-w-320px",value:i(m).query,"onUpdate:value":e[0]||(e[0]=d=>i(m).query=d),onKeyup:Le(i(m).updateQuery,["enter"]),onChange:i(m).updateQuery},null,8,["value","onKeyup","onChange"]),t(u,{onClick:i(m).updateQuery},{icon:o(()=>[t(p,{name:"search"})]),_:1},8,["onClick"])]),_:1}),i(c).length?(xe(),we(ke,{key:0},[t(z,null,{trigger:o(()=>[t(u,null,{default:o(()=>e[12]||(e[12]=[g(" 批量下载 ")])),_:1})]),default:o(()=>[t(w,{vertical:""},{default:o(()=>[t(u,{onClick:i(T).invoke,loading:i(T).loading},{default:o(()=>e[13]||(e[13]=[g(" 批量下载-快照 ")])),_:1},8,["onClick","loading"]),t(u,{onClick:i(D).invoke,loading:i(D).loading},{default:o(()=>e[14]||(e[14]=[g(" 批量下载-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),t(z,null,{trigger:o(()=>[t(u,null,{default:o(()=>e[15]||(e[15]=[g(" 批量分享 ")])),_:1})]),default:o(()=>[t(w,{vertical:""},{default:o(()=>[t(u,{onClick:i(E).invoke,loading:i(E).loading},{default:o(()=>e[16]||(e[16]=[g(" 批量生成链接-快照 ")])),_:1},8,["onClick","loading"]),t(u,{onClick:i(j).invoke,loading:i(j).loading},{default:o(()=>e[17]||(e[17]=[g(" 批量生成链接-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),t(u,{onClick:i(Q).invoke},{default:o(()=>e[18]||(e[18]=[g(" 批量删除 ")])),_:1},8,["onClick"]),_("div",xt,Ae(`已选中 ${i(c).length} 个快照`),1)],64)):Me("",!0)]),_:1}),e[26]||(e[26]=_("div",{"flex-1":""},null,-1)),_("div",kt,[t(K,null,{trigger:o(()=>[t(u,{text:"",onClick:e[1]||(e[1]=d=>O.value=!0)},{default:o(()=>[t(p,{name:"settings"})]),_:1})]),default:o(()=>[e[19]||(e[19]=g(" 设置 "))]),_:1}),t(K,null,{trigger:o(()=>[t(ee,{flex:"",to:"/selector"},{default:o(()=>[t(u,{text:""},{default:o(()=>[t(p,{name:"terminal"})]),_:1})]),_:1})]),default:o(()=>[e[20]||(e[20]=g(" 测试选择器 "))]),_:1}),t(z,null,{trigger:o(()=>[t(u,{text:""},{default:o(()=>[t(p,{name:"import"})]),_:1})]),default:o(()=>[t(w,{vertical:""},{default:o(()=>[t(u,{onClick:i(N).invoke,loading:i(N).loading},{default:o(()=>e[21]||(e[21]=[g(" 导入本地文件 ")])),_:1},8,["onClick","loading"]),t(u,{onClick:e[2]||(e[2]=d=>A.value=!0),loading:i(F).loading},{default:o(()=>e[22]||(e[22]=[g(" 导入网络文件 ")])),_:1},8,["loading"])]),_:1})]),_:1}),t(K,null,{trigger:o(()=>[t(ee,{flex:"",to:"/device"},{default:o(()=>[t(u,{text:""},{default:o(()=>[t(p,{name:"device"})]),_:1})]),_:1})]),default:o(()=>[e[23]||(e[23]=g(" 连接设备 "))]),_:1}),t(K,null,{trigger:o(()=>[_("a",yt,[t(u,{text:""},{default:o(()=>[t(p,{name:"discussion"})]),_:1})])]),default:o(()=>[e[24]||(e[24]=g(" 讨论交流 "))]),_:1}),t(K,null,{trigger:o(()=>[_("a",_t,[t(u,{text:""},{default:o(()=>[t(p,{name:"github"})]),_:1})])]),default:o(()=>[e[25]||(e[25]=g(" Github "))]),_:1})])]),t(le,{striped:"",data:i(x),columns:i(ne),scrollX:1800,pagination:i(W),checkedRowKeys:i(c),"onUpdate:checkedRowKeys":e[3]||(e[3]=d=>pe(c)?c.value=d:null),rowKey:d=>d.id,"onUpdate:sorter":ae,size:"small",class:"flex-1",flexHeight:"",loading:i(v)},null,8,["data","columns","pagination","checkedRowKeys","rowKey","loading"])]),t(Z,{show:i(A),"onUpdate:show":e[5]||(e[5]=d=>pe(A)?A.value=d:null),preset:"dialog",title:"导入网络文件",showIcon:!1,positiveText:"确认",negativeText:"取消",style:{width:"800px"},onPositiveClick:i(F).invoke,loading:i(F).loading,onAfterLeave:e[6]||(e[6]=d=>P.value="")},{default:o(()=>[t(S,{value:i(P),"onUpdate:value":e[4]||(e[4]=d=>{i(F).loading||(P.value=d)}),type:"textarea",placeholder:`1.支持ZIP文件链接
108
- 2.支持快照链接
109
- 每行一个
110
- 空白行自动忽略
111
- 非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"}},null,8,["value"])]),_:1},8,["show","onPositiveClick","loading"]),t(Z,{show:i(O),"onUpdate:show":e[10]||(e[10]=d=>pe(O)?O.value=d:null),preset:"dialog",title:"设置",showIcon:!1,positiveText:"关闭",style:{width:"600px"},onPositiveClick:e[11]||(e[11]=d=>O.value=!1)},{default:o(()=>[t(q,{checked:i(f).ignoreUploadWarn,"onUpdate:checked":e[7]||(e[7]=d=>i(f).ignoreUploadWarn=d)},{default:o(()=>e[27]||(e[27]=[g(" 关闭生成分享链接弹窗提醒 ")])),_:1},8,["checked"]),e[30]||(e[30]=_("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),t(q,{checked:i(f).ignoreWasmWarn,"onUpdate:checked":e[8]||(e[8]=d=>i(f).ignoreWasmWarn=d)},{default:o(()=>e[28]||(e[28]=[g(" 关闭浏览器版本正则表达式 WASM(GC) 提醒 ")])),_:1},8,["checked"]),e[31]||(e[31]=_("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),_("div",Ct,[t(X,{value:i(f).autoUploadImport,"onUpdate:value":e[9]||(e[9]=d=>i(f).autoUploadImport=d)},null,8,["value"]),e[29]||(e[29]=_("div",null,"打开快照页面自动生成分享链接(请确保不含隐私)",-1))])]),_:1},8,["show"])],64)}}});export{Wt as default};
112
- //# sourceMappingURL=HomePage-COggIc78.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HomePage-COggIc78.js","sources":["../../node_modules/.pnpm/naive-ui@2.41.0_vue@3.5.13_typescript@5.7.3_/node_modules/naive-ui/es/switch/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.41.0_vue@3.5.13_typescript@5.7.3_/node_modules/naive-ui/es/switch/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.41.0_vue@3.5.13_typescript@5.7.3_/node_modules/naive-ui/es/switch/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.41.0_vue@3.5.13_typescript@5.7.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 { shallowSnapshotStorage, snapshotStorage } from '@/utils/snapshot';\nimport { renderDevice, useSnapshotColumns } from '@/utils/table';\nimport { useTask } from '@/utils/task';\nimport type { Snapshot } from '@/utils/types';\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 = useSettingsStore();\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 () => {\n await importFromLocal();\n await updateSnapshots();\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 showModal = shallowRef(false);\nconst text = shallowRef(``);\nconst importNetwork = useTask(async () => {\n const urls = text.value\n .trim()\n .split(`\\n`)\n .map((u) => u.trim())\n .filter((u) => toValidURL(u));\n if (urls.length == 0) return;\n await importFromNetwork(urls);\n await updateSnapshots();\n text.value = ``;\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</script>\n<template>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex>\n <NSpace>\n <NInputGroup>\n <NInput\n placeholder=\"请输入应用名称/应用ID/界面ID\"\n clearable\n class=\"min-w-320px\"\n v-model:value=\"filterOption.query\"\n @keyup.enter=\"filterOption.updateQuery\"\n @change=\"filterOption.updateQuery\"\n ></NInput>\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 @click=\"batchDownloadZip.invoke\"\n :loading=\"batchDownloadZip.loading\"\n >\n 批量下载-快照\n </NButton>\n <NButton\n @click=\"batchDownloadImage.invoke\"\n :loading=\"batchDownloadImage.loading\"\n >\n 批量下载-图片\n </NButton>\n </NSpace>\n </NPopover>\n <NPopover>\n <template #trigger>\n <NButton> 批量分享 </NButton>\n </template>\n <NSpace vertical>\n <NButton\n @click=\"batchShareZipUrl.invoke\"\n :loading=\"batchShareZipUrl.loading\"\n >\n 批量生成链接-快照\n </NButton>\n <NButton\n @click=\"batchShareImageUrl.invoke\"\n :loading=\"batchShareImageUrl.loading\"\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></div>\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 <NButton @click=\"importLocal.invoke\" :loading=\"importLocal.loading\">\n 导入本地文件\n </NButton>\n <NButton @click=\"showModal = true\" :loading=\"importNetwork.loading\">\n 导入网络文件\n </NButton>\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 striped\n :data=\"filterSnapshots\"\n :columns=\"columns\"\n :scrollX=\"1800\"\n :pagination=\"pagination\"\n v-model:checkedRowKeys=\"checkedRowKeys\"\n :rowKey=\"(r:Snapshot)=>r.id\"\n @update:sorter=\"handleSorterChange\"\n size=\"small\"\n class=\"flex-1\"\n flexHeight\n :loading=\"loading\"\n />\n </div>\n <NModal\n v-model:show=\"showModal\"\n preset=\"dialog\"\n title=\"导入网络文件\"\n :showIcon=\"false\"\n positiveText=\"确认\"\n negativeText=\"取消\"\n style=\"width: 800px\"\n @positiveClick=\"importNetwork.invoke\"\n :loading=\"importNetwork.loading\"\n @afterLeave=\"text = ``\"\n >\n <NInput\n :value=\"text\"\n @update:value=\"\n if (!importNetwork.loading) {\n text = $event;\n }\n \"\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 />\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\"></div>\n <NCheckbox v-model:checked=\"settingsStore.ignoreWasmWarn\">\n 关闭浏览器版本正则表达式 WASM(GC) 提醒\n </NCheckbox>\n <div h-1px my-10px bg=\"#eee\"></div>\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","useSettingsStore","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","importFromLocal","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","showModal","text","importNetwork","urls","split","u","toValidURL","length","importFromNetwork","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"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1,2 +0,0 @@
1
- import{h as k,aI as y,aJ as v,A as f,b6 as S,B as b,b7 as B,aU as N,aW as h,aK as R,aY as i,b8 as U,I as g,J as I,M as V,a5 as q,O as l,S as w,K as x,a6 as T,T as C,b9 as D}from"./index-KLBdhCUJ.js";import{a as F,g as J}from"./snapshot-BQX8k_gH.js";import{a as K}from"./import-DktEDw1G.js";import"./chunk-18w_MS7Q.js";const M={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","pt-40px":"","flex-col":"","flex-items-center":""},O={key:0,"mb-20px":""},W=k({__name:"ImportPage",setup(A){const p=y(),c=v(),u=f(!0),r=f("加载中..."),m=async s=>{c.replace({name:"snapshot",params:{snapshotId:s},query:D(p.query,["str","gkd"])})},n=String(p.query.url||""),e=S(n);return b(async()=>{var d;if(!B(n)){N.error("非法URL参数"),await h(1e3),c.replace({path:"/"});return}const{importSnapshotId:s,snapshotImportId:o,waitInit:_}=R();if(await _(),e){const t=s[e];if(t)if(await F.getItem(t)){m(t);return}else delete s[e]}i.start();try{const[t]=(d=await K(e?U(e):n))!=null?d:[];if(t.status=="fulfilled"){i.finish();const a=t.value;a!=null&&a.id?(e&&(s[e]=a.id,o[a.id]=e),u.value=!1,await h(500),m(a.id)):r.value="获取资源失败"}else throw t.reason}catch{i.error(),r.value="加载资源失败"}}),(s,o)=>(I(),g("div",M,[l(J)()?V("",!0):(I(),g("div",O,o[0]||(o[0]=[w(" 建议安装并启用 "),x("a",{href:"https://github.com/gkd-kit/network-extension",target:"_blank",rel:"noopener noreferrer"}," 油猴脚本 ",-1),w(" 获取更快加载速度 ")]))),q(x("div",null,C(l(r)),513),[[T,l(u)]])]))}});export{W as default};
2
- //# sourceMappingURL=ImportPage-HgUZYczC.js.map
@@ -1,2 +0,0 @@
1
- import{h as k,o as a,B as S,aE as C,q as w,cp as V,H as B,I as l,J as c,K as s,F as m,U,O as r,T as g,R as q,aw as A,aT as M,aU as N}from"./index-KLBdhCUJ.js";import{_ as T}from"./Input-BPf4OAqD.js";const $={class:"SvgPage"},E={"px-16px":"","pt-16px":"",flex:"","items-center":"","gap-16px":""},F={"p-16px":"",grid:"","gap-24px":"","justify-between":"",style:{"grid-template-columns":"repeat(auto-fill, 150px)"}},I=["title","onClick"],O=["title","onClick"],D=k({__name:"SvgPage",setup(P){const i=()=>Array.from(document.querySelectorAll("#__svg_icon_container__ > *")).map(t=>t.getAttribute("id").substring(9)),o=a(i()),p=new MutationObserver(()=>{o.value=i()});S(()=>{p.observe(document.querySelector("#__svg_icon_container__"),{attributes:!0})}),C(()=>{p.disconnect()});const n=a(""),x=w(()=>n.value.trim()?o.value.filter(t=>t.includes(n.value)):o.value),u=t=>`<SvgIcon name="${t}" />`,f=a(""),v=V({source:f,legacy:!0}),_=async t=>{await v.copy(t),N.success("复制成功")};return(t,d)=>{const b=T,y=B("SvgIcon");return c(),l("div",$,[s("div",E,[m(b,{modelValue:r(n),"onUpdate:modelValue":d[0]||(d[0]=e=>U(n)?n.value=e:null),style:{width:"320px"},placeholder:"请输入图标名称"},null,8,["modelValue"]),s("div",null,"共存在 "+g(r(o).length)+" 个图标",1)]),s("div",F,[(c(!0),l(q,null,A(r(x),e=>(c(),l("div",{key:e,"py-4px":"",flex:"","flex-col":"","gap-4px":"","items-center":"","b-b-solid":"","b-1px":"",class:"bg-[#f9f9f9]",title:u(e),onClick:h=>_(u(e))},[m(y,{name:e,class:"text-32px color-[#575bca] flex-shrink-0"},null,8,["name"]),s("div",{"px-4px":"","text-12px":"","break-all":"",title:e,onClick:M(h=>_(e),["stop"])},g(e),9,O)],8,I))),128))])])}}});export{D as default};
2
- //# sourceMappingURL=SvgPage-CtApO5Fb.js.map
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/jszip.min-C2_iS27H.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/index-KLBdhCUJ.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1743166447533/files/dist/assets/index-CvjevRsx.css"])))=>i.map(i=>d[i]);
2
- import{az as r}from"./index-KLBdhCUJ.js";const a=r(()=>import("./jszip.min-C2_iS27H.js").then(t=>t.j),__vite__mapDeps([0,1,2]),import.meta.url).then(t=>t.default),n=async(t,e)=>r(()=>import("./jszip.min-C2_iS27H.js").then(o=>o.j),__vite__mapDeps([0,1,2]),import.meta.url).then(o=>o.loadAsync(t,e));export{a as J,n as l};
3
- //# sourceMappingURL=chunk-18w_MS7Q.js.map
@@ -1,2 +0,0 @@
1
- import{p as S,a as I,e as E,c as _}from"./snapshot-BQX8k_gH.js";import{b6 as b,b8 as F,aK as P,aU as y}from"./index-KLBdhCUJ.js";import{l as v}from"./chunk-18w_MS7Q.js";const g=(()=>{if(typeof self>"u")return!1;if("top"in self&&self!==top)try{top.window.document._=0}catch{return!1}return"showOpenFilePicker"in self})(),L=g?Promise.resolve().then(function(){return U}):Promise.resolve().then(function(){return z});async function x(...e){return(await L).default(...e)}g?Promise.resolve().then(function(){return R}):Promise.resolve().then(function(){return D});g?Promise.resolve().then(function(){return W}):Promise.resolve().then(function(){return Z});const T=async e=>{const t=await e.getFile();return t.handle=e,t};var O=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const t=[];e.forEach((a,i)=>{t[i]={description:a.description||"Files",accept:{}},a.mimeTypes?a.mimeTypes.map(s=>{t[i].accept[s]=a.extensions||[]}):t[i].accept["*/*"]=a.extensions||[]});const r=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:t,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),n=await Promise.all(r.map(T));return e[0].multiple?n:n[0]},U={__proto__:null,default:O};function w(e){function t(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then(function(a){return{value:a,done:n}})}return w=function(r){this.s=r,this.n=r.next},w.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return n===void 0?Promise.resolve({value:r,done:!0}):t(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return n===void 0?Promise.reject(r):t(n.apply(this.s,arguments))}},new w(e)}const A=async(e,t,r=e.name,n)=>{const a=[],i=[];var s,o=!1,c=!1;try{for(var u,l=function(p){var m,f,d,h=2;for(typeof Symbol<"u"&&(f=Symbol.asyncIterator,d=Symbol.iterator);h--;){if(f&&(m=p[f])!=null)return m.call(p);if(d&&(m=p[d])!=null)return new w(m.call(p));f="@@asyncIterator",d="@@iterator"}throw new TypeError("Object is not async iterable")}(e.values());o=!(u=await l.next()).done;o=!1){const p=u.value,m=`${r}/${p.name}`;p.kind==="file"?i.push(p.getFile().then(f=>(f.directoryHandle=e,f.handle=p,Object.defineProperty(f,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>m})))):p.kind!=="directory"||!t||n&&n(p)||a.push(A(p,t,m,n))}}catch(p){c=!0,s=p}finally{try{o&&l.return!=null&&await l.return()}finally{if(c)throw s}}return[...(await Promise.all(a)).flat(),...await Promise.all(i)]};var j=async(e={})=>{e.recursive=e.recursive||!1,e.mode=e.mode||"read";const t=await window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return(await(await t.values()).next()).done?[t]:A(t,e.recursive,void 0,e.skipDirectory)},R={__proto__:null,default:j},N=async(e,t=[{}],r=null,n=!1,a=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";const i=[];let s=null;if(e instanceof Blob&&e.type?s=e.type:e.headers&&e.headers.get("content-type")&&(s=e.headers.get("content-type")),t.forEach((u,l)=>{i[l]={description:u.description||"Files",accept:{}},u.mimeTypes?(l===0&&s&&u.mimeTypes.push(s),u.mimeTypes.map(p=>{i[l].accept[p]=u.extensions||[]})):s?i[l].accept[s]=u.extensions||[]:i[l].accept["*/*"]=u.extensions||[]}),r)try{await r.getFile()}catch(u){if(r=null,n)throw u}const o=r||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:i,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!r&&a&&a(o);const c=await o.createWritable();return"stream"in e?(await e.stream().pipeTo(c),o):"body"in e?(await e.body.pipeTo(c),o):(await c.write(await e),await c.close(),o)},W={__proto__:null,default:N},$=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((t,r)=>{const n=document.createElement("input");n.type="file";const a=[...e.map(c=>c.mimeTypes||[]),...e.map(c=>c.extensions||[])].join();n.multiple=e[0].multiple||!1,n.accept=a||"",n.style.display="none",document.body.append(n);const i=c=>{typeof s=="function"&&s(),t(c)},s=e[0].legacySetup&&e[0].legacySetup(i,()=>s(r),n),o=()=>{window.removeEventListener("focus",o),n.remove()};n.addEventListener("click",()=>{window.addEventListener("focus",o)}),n.addEventListener("change",()=>{window.removeEventListener("focus",o),n.remove(),i(n.multiple?Array.from(n.files):n.files[0])}),"showPicker"in HTMLInputElement.prototype?n.showPicker():n.click()})),z={__proto__:null,default:$},B=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((t,r)=>{const n=document.createElement("input");n.type="file",n.webkitdirectory=!0;const a=s=>{typeof i=="function"&&i(),t(s)},i=e[0].legacySetup&&e[0].legacySetup(a,()=>i(r),n);n.addEventListener("change",()=>{let s=Array.from(n.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(s=s.filter(o=>o.webkitRelativePath.split("/").every(c=>!e[0].skipDirectory({name:c,kind:"directory"})))):s=s.filter(o=>o.webkitRelativePath.split("/").length===2),a(s)}),"showPicker"in HTMLInputElement.prototype?n.showPicker():n.click()})),D={__proto__:null,default:B},H=async(e,t={})=>{Array.isArray(t)&&(t=t[0]);const r=document.createElement("a");let n=e;"body"in e&&(n=await async function(s,o){const c=s.getReader(),u=new ReadableStream({start:m=>async function f(){return c.read().then(({done:d,value:h})=>{if(!d)return m.enqueue(h),f();m.close()})}()}),l=new Response(u),p=await l.blob();return c.releaseLock(),new Blob([p],{type:o})}(e.body,e.headers.get("content-type"))),r.download=t.fileName||"Untitled",r.href=URL.createObjectURL(await n);const a=()=>{typeof i=="function"&&i()},i=t.legacySetup&&t.legacySetup(a,()=>i(),r);return r.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(r.href),3e4),a()}),r.click(),null},Z={__proto__:null,default:H};const q=(e,t)=>e.length==t.length&&e.every((r,n)=>r==t[n]),J=(e,t)=>q(new Uint8Array(e.slice(0,t.length)),t),M=new Uint8Array([80,75,3,4]),K=e=>J(e,M),k=async e=>{const t=e.filter(i=>i.endsWith(".json"))[0],r=e.filter(i=>i.endsWith(".png"))[0];if(!t||!r)return!1;const n=JSON.parse(await t.async("string")),a=await r.async("arraybuffer");return await _(n,a),!0},V=async()=>{const t=(await x({multiple:!0,mimeTypes:["application/zip"]})).filter(n=>n.name.endsWith(".zip"));if(t.length==0){y.warning("没有发现可导入文件");return}let r=0;t.length>0&&await Promise.any(t.map(async n=>{const a=await v(n);await k(a)&&r++;const i=a.filter(s=>s.endsWith(".zip"));i.length>0&&await Promise.any(i.map(async s=>{const o=await v(s.async("blob"));await k(o)&&r++}))})),r>0?y.success(`导入${r}条记录`):y.warning("没有发现可导入记录")},X=async(e=[])=>{if(typeof e=="string"&&(e=[e]),e.length==0)return;e=e.map(a=>{const i=b(a);return i?F(i):a}),e=[...new Set(e)];const t=S(2);let r=0;await P().waitInit();const n=await Promise.allSettled(e.map(a=>t(async()=>{const i=P().importSnapshotId[b(a)||""];if(i){const l=await I.getItem(i);if(l)return r++,l}const o=await(await E(a).catch(l=>{throw y.error(`网络异常: ${new URL(a).host} / ${l.message||""}`),console.warn(["download failed",a,l]),l})).arrayBuffer();let c,u;if(K(o)){const l=await v(o),[p]=l.filter(f=>f.endsWith(".json")),[m]=l.filter(f=>f.endsWith(".png"));if(!p||!m)return;u=await m.async("arraybuffer"),c=JSON.parse(await p.async("string"))}else throw new Error("file must be png or zip");return await _(c,u),r++,c})));return r==0?y.warning("没有发现可导入记录"):r==e.length?y.success(`导入${r}条快照`):r<e.length&&y.success(`导入${r}条快照,失败${e.length-r}`),n};export{X as a,V as i};
2
- //# sourceMappingURL=import-DktEDw1G.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-DktEDw1G.js","sources":["../../node_modules/.pnpm/browser-fs-access@0.35.0/node_modules/browser-fs-access/dist/index.modern.js","../../src/utils/file_type.ts","../../src/utils/import.ts"],"sourcesContent":["const e=(()=>{if(\"undefined\"==typeof self)return!1;if(\"top\"in self&&self!==top)try{top.window.document._=0}catch(e){return!1}return\"showOpenFilePicker\"in self})(),t=e?Promise.resolve().then(function(){return l}):Promise.resolve().then(function(){return v});async function n(...e){return(await t).default(...e)}const r=e?Promise.resolve().then(function(){return y}):Promise.resolve().then(function(){return b});async function i(...e){return(await r).default(...e)}const a=e?Promise.resolve().then(function(){return m}):Promise.resolve().then(function(){return k});async function o(...e){return(await a).default(...e)}const s=async e=>{const t=await e.getFile();return t.handle=e,t};var c=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const t=[];e.forEach((e,n)=>{t[n]={description:e.description||\"Files\",accept:{}},e.mimeTypes?e.mimeTypes.map(r=>{t[n].accept[r]=e.extensions||[]}):t[n].accept[\"*/*\"]=e.extensions||[]});const n=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:t,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),r=await Promise.all(n.map(s));return e[0].multiple?r:r[0]},l={__proto__:null,default:c};function u(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+\" is not an object.\"));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return u=function(e){this.s=e,this.n=e.next},u.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new u(e)}const p=async(e,t,n=e.name,r)=>{const i=[],a=[];var o,s=!1,c=!1;try{for(var l,d=function(e){var t,n,r,i=2;for(\"undefined\"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new u(t.call(e));n=\"@@asyncIterator\",r=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}(e.values());s=!(l=await d.next()).done;s=!1){const o=l.value,s=`${n}/${o.name}`;\"file\"===o.kind?a.push(o.getFile().then(t=>(t.directoryHandle=e,t.handle=o,Object.defineProperty(t,\"webkitRelativePath\",{configurable:!0,enumerable:!0,get:()=>s})))):\"directory\"!==o.kind||!t||r&&r(o)||i.push(p(o,t,s,r))}}catch(e){c=!0,o=e}finally{try{s&&null!=d.return&&await d.return()}finally{if(c)throw o}}return[...(await Promise.all(i)).flat(),...await Promise.all(a)]};var d=async(e={})=>{e.recursive=e.recursive||!1,e.mode=e.mode||\"read\";const t=await window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return(await(await t.values()).next()).done?[t]:p(t,e.recursive,void 0,e.skipDirectory)},y={__proto__:null,default:d},f=async(e,t=[{}],n=null,r=!1,i=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||\"Untitled\";const a=[];let o=null;if(e instanceof Blob&&e.type?o=e.type:e.headers&&e.headers.get(\"content-type\")&&(o=e.headers.get(\"content-type\")),t.forEach((e,t)=>{a[t]={description:e.description||\"Files\",accept:{}},e.mimeTypes?(0===t&&o&&e.mimeTypes.push(o),e.mimeTypes.map(n=>{a[t].accept[n]=e.extensions||[]})):o?a[t].accept[o]=e.extensions||[]:a[t].accept[\"*/*\"]=e.extensions||[]}),n)try{await n.getFile()}catch(e){if(n=null,r)throw e}const s=n||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!n&&i&&i(s);const c=await s.createWritable();if(\"stream\"in e){const t=e.stream();return await t.pipeTo(c),s}return\"body\"in e?(await e.body.pipeTo(c),s):(await c.write(await e),await c.close(),s)},m={__proto__:null,default:f},w=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\";const i=[...e.map(e=>e.mimeTypes||[]),...e.map(e=>e.extensions||[])].join();r.multiple=e[0].multiple||!1,r.accept=i||\"\",r.style.display=\"none\",document.body.append(r);const a=e=>{\"function\"==typeof o&&o(),t(e)},o=e[0].legacySetup&&e[0].legacySetup(a,()=>o(n),r),s=()=>{window.removeEventListener(\"focus\",s),r.remove()};r.addEventListener(\"click\",()=>{window.addEventListener(\"focus\",s)}),r.addEventListener(\"change\",()=>{window.removeEventListener(\"focus\",s),r.remove(),a(r.multiple?Array.from(r.files):r.files[0])}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click()})),v={__proto__:null,default:w},h=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\",r.webkitdirectory=!0;const i=e=>{\"function\"==typeof a&&a(),t(e)},a=e[0].legacySetup&&e[0].legacySetup(i,()=>a(n),r);r.addEventListener(\"change\",()=>{let t=Array.from(r.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(t=>t.webkitRelativePath.split(\"/\").every(t=>!e[0].skipDirectory({name:t,kind:\"directory\"})))):t=t.filter(e=>2===e.webkitRelativePath.split(\"/\").length),i(t)}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click()})),b={__proto__:null,default:h},P=async(e,t={})=>{Array.isArray(t)&&(t=t[0]);const n=document.createElement(\"a\");let r=e;\"body\"in e&&(r=await async function(e,t){const n=e.getReader(),r=new ReadableStream({start:e=>async function t(){return n.read().then(({done:n,value:r})=>{if(!n)return e.enqueue(r),t();e.close()})}()}),i=new Response(r),a=await i.blob();return n.releaseLock(),new Blob([a],{type:t})}(e.body,e.headers.get(\"content-type\"))),n.download=t.fileName||\"Untitled\",n.href=URL.createObjectURL(await r);const i=()=>{\"function\"==typeof a&&a()},a=t.legacySetup&&t.legacySetup(i,()=>a(),n);return n.addEventListener(\"click\",()=>{setTimeout(()=>URL.revokeObjectURL(n.href),3e4),i()}),n.click(),null},k={__proto__:null,default:P};export{i as directoryOpen,h as directoryOpenLegacy,d as directoryOpenModern,n as fileOpen,w as fileOpenLegacy,c as fileOpenModern,o as fileSave,P as fileSaveLegacy,f as fileSaveModern,e as supported};\n","const eqU8 = (a: Uint8Array, b: Uint8Array) => {\n return a.length == b.length && a.every((v, i) => v == b[i]);\n};\nconst startWith = (a: ArrayBuffer, b: Uint8Array) => {\n return eqU8(new Uint8Array(a.slice(0, b.length)), b);\n};\nconst blobStartWith = async (a: Blob, b: Uint8Array) => {\n const bf = await a.slice(0, b.length).arrayBuffer();\n return eqU8(new Uint8Array(bf), b);\n};\nconst zipHeader = new Uint8Array([0x50, 0x4b, 0x03, 0x04]);\n\nexport const isZipBf = (bf: ArrayBuffer) => startWith(bf, zipHeader);\nexport const isZipBlob = async (blob: Blob) => blobStartWith(blob, zipHeader);\n","import { fileOpen } from 'browser-fs-access';\nimport pLimit from 'p-limit';\nimport { message } from './discrete';\nimport { enhanceFetch } from './fetch';\nimport { isZipBf } from './file_type';\nimport { setSnapshot, snapshotStorage } from './snapshot';\nimport type { Snapshot } from './types';\nimport { getImportFileUrl, getImportId } from './url';\nimport { loadAsync } from './chunk';\nimport type { JSZipType } from './chunk';\n\nconst parseZip = async (zip: JSZipType) => {\n const snapshotFile = zip.filter((s) => s.endsWith(`.json`))[0];\n const screenshotFile = zip.filter((s) => s.endsWith(`.png`))[0];\n if (!snapshotFile || !screenshotFile) {\n return false;\n }\n const snapshot = JSON.parse(await snapshotFile.async('string')) as Snapshot;\n const screenshotBf = await screenshotFile.async('arraybuffer');\n await setSnapshot(snapshot, screenshotBf);\n return true;\n};\n\nexport const importFromLocal = async () => {\n const files = await fileOpen({\n multiple: true,\n mimeTypes: [`application/zip`],\n });\n const zipfiles = files.filter((f) => f.name.endsWith(`.zip`));\n if (zipfiles.length == 0) {\n message.warning(`没有发现可导入文件`);\n return;\n }\n let importNum = 0;\n if (zipfiles.length > 0) {\n await Promise.any(\n zipfiles.map(async (file) => {\n const zip = await loadAsync(file);\n if (await parseZip(zip)) {\n importNum++;\n }\n const subZips = zip.filter((s) => s.endsWith('.zip'));\n if (subZips.length > 0) {\n await Promise.any(\n subZips.map(async (subZip) => {\n const subFile = await loadAsync(subZip.async('blob'));\n if (await parseZip(subFile)) {\n importNum++;\n }\n }),\n );\n }\n }),\n );\n }\n if (importNum > 0) {\n message.success(`导入${importNum}条记录`);\n } else {\n message.warning(`没有发现可导入记录`);\n }\n};\n\nexport const importFromNetwork = async (urls: string[] | string = []) => {\n if (typeof urls == 'string') {\n urls = [urls];\n }\n if (urls.length == 0) {\n return;\n }\n urls = urls.map((url) => {\n const importId = getImportId(url);\n if (importId) {\n return getImportFileUrl(importId);\n }\n return url;\n });\n urls = [...new Set(urls)];\n const limit = pLimit(2);\n let importNum = 0;\n await useStorageStore().waitInit();\n const result = await Promise.allSettled(\n urls.map((url) => {\n return limit(async () => {\n const snapshotId =\n useStorageStore().importSnapshotId[getImportId(url) || ''];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n importNum++;\n return snapshot;\n }\n }\n const resp = await enhanceFetch(url).catch((e) => {\n message.error(`网络异常: ${new URL(url).host} / ${e.message || ''}`);\n console.warn([`download failed`, url, e]);\n throw e;\n });\n const bf = await resp.arrayBuffer();\n let snapshot: Snapshot;\n let screenshotBf: ArrayBuffer;\n if (isZipBf(bf)) {\n const zip = await loadAsync(bf);\n const [snapshotFile] = zip.filter((p) => p.endsWith(`.json`));\n const [screenshotFile] = zip.filter((p) => p.endsWith(`.png`));\n if (!snapshotFile || !screenshotFile) {\n return;\n }\n screenshotBf = await screenshotFile.async('arraybuffer');\n snapshot = JSON.parse(await snapshotFile.async('string')) as Snapshot;\n } else {\n throw new Error(`file must be png or zip`);\n }\n await setSnapshot(snapshot, screenshotBf);\n importNum++;\n return snapshot;\n });\n }),\n );\n if (importNum == 0) {\n message.warning(`没有发现可导入记录`);\n } else if (importNum == urls.length) {\n message.success(`导入${importNum}条快照`);\n } else if (importNum < urls.length) {\n message.success(`导入${importNum}条快照,失败${urls.length - importNum}`);\n }\n return result;\n};\n"],"names":["e","t","l","v","n","y","b","m","k","s","c","r","u","p","i","a","o","d","f","w","h","P","eqU8","startWith","zipHeader","isZipBf","bf","parseZip","zip","snapshotFile","screenshotFile","snapshot","screenshotBf","setSnapshot","importFromLocal","zipfiles","fileOpen","message","importNum","file","loadAsync","subZips","subZip","subFile","importFromNetwork","urls","url","importId","getImportId","getImportFileUrl","limit","pLimit","useStorageStore","result","snapshotId","snapshotStorage","enhanceFetch"],"mappings":"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","x_google_ignoreList":[0]}