@gkd-kit/inspect 0.0.1700107642762 → 0.0.1700797366308

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 (32) hide show
  1. package/dist/404.html +4 -4
  2. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-9695f4de.js → ActionCard.vue_vue_type_script_setup_true_lang-64f43fc5.js} +2 -2
  3. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-9695f4de.js.map → ActionCard.vue_vue_type_script_setup_true_lang-64f43fc5.js.map} +1 -1
  4. package/dist/assets/DevicePage-9642be67.js +17 -0
  5. package/dist/assets/{DevicePage-3b496007.js.map → DevicePage-9642be67.js.map} +1 -1
  6. package/dist/assets/{HomePage-511ea3b8.js → HomePage-0dd4a119.js} +2 -2
  7. package/dist/assets/{HomePage-511ea3b8.js.map → HomePage-0dd4a119.js.map} +1 -1
  8. package/dist/assets/{ImportPage-d161324f.js → ImportPage-684eabaf.js} +2 -2
  9. package/dist/assets/{ImportPage-d161324f.js.map → ImportPage-684eabaf.js.map} +1 -1
  10. package/dist/assets/{SnapshotPage-57d26603.js → SnapshotPage-d633b6c9.js} +2 -2
  11. package/dist/assets/{SnapshotPage-57d26603.js.map → SnapshotPage-d633b6c9.js.map} +1 -1
  12. package/dist/assets/{_404Page-dc5996d1.js → _404Page-daea93a1.js} +2 -2
  13. package/dist/assets/{_404Page-dc5996d1.js.map → _404Page-daea93a1.js.map} +1 -1
  14. package/dist/assets/{import-526beb2d.js → import-7302ef69.js} +2 -2
  15. package/dist/assets/{import-526beb2d.js.map → import-7302ef69.js.map} +1 -1
  16. package/dist/assets/index-35bb5706.js +4 -0
  17. package/dist/assets/index-35bb5706.js.map +1 -0
  18. package/dist/assets/{index-9247afbf.js → index-7ab1a1b0.js} +3 -3
  19. package/dist/assets/{index-9247afbf.js.map → index-7ab1a1b0.js.map} +1 -1
  20. package/dist/assets/{jszip.min-571a1711.js → jszip.min-64ef0de2.js} +2 -2
  21. package/dist/assets/{jszip.min-571a1711.js.map → jszip.min-64ef0de2.js.map} +1 -1
  22. package/dist/assets/{node-fc0fdd90.js → node-815a36e5.js} +2 -2
  23. package/dist/assets/{node-fc0fdd90.js.map → node-815a36e5.js.map} +1 -1
  24. package/dist/assets/{storage-92b049f8.js → storage-d71fd6d4.js} +2 -2
  25. package/dist/assets/{storage-92b049f8.js.map → storage-d71fd6d4.js.map} +1 -1
  26. package/dist/assets/{table-7f851995.js → table-1e46f9e4.js} +3 -3
  27. package/dist/assets/{table-7f851995.js.map → table-1e46f9e4.js.map} +1 -1
  28. package/dist/index.html +4 -4
  29. package/package.json +2 -2
  30. package/dist/assets/DevicePage-3b496007.js +0 -17
  31. package/dist/assets/index-fac4ff4e.js +0 -4
  32. package/dist/assets/index-fac4ff4e.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{d as A,s as k,a as K,c as G,w as S,r as W,b as l,e as X,f as M,g as o,u as e,h as s,F as T,o as O,N as Y,i as ee,j as i,k as c,t as ae,l as te,R as le}from"./index-9247afbf.js";import{_ as oe,b as ne,a as ie,c as se,s as Q,d as ce}from"./ActionCard.vue_vue_type_script_setup_true_lang-9695f4de.js";import{t as re}from"./check-44032eaf.js";import{s as ue,d as de,a as B,g as Z}from"./storage-92b049f8.js";import{i as pe,a as ge}from"./import-526beb2d.js";import{u as ve,N as we,r as fe}from"./table-7f851995.js";import{u as d,N as L,a as me,b,c as v,d as U}from"./node-fc0fdd90.js";import"./jszip.min-571a1711.js";const he={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},ke={flex:""},Ce={"h-full":"",flex:"","flex-items-center":""},_e=s("div",{"flex-1":""},null,-1),ye={href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},xe=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 496 512"},[s("path",{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2z",fill:"currentColor"})],-1),ze=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[s("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 112v288"}),s("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M400 256H112"})],-1),Ne=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},[s("path",{d:"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4c-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8c-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6c-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z",fill:"currentColor"})],-1),Me=A({__name:"HomePage",setup(Se){const C=k([]),p=async()=>{C.value=(await ue.getAllItems()).reverse(),r.value=[]};p();const u=K({query:"",actualQuery:"",updateQuery:()=>{u.actualQuery=u.query.trim(),r.value=[]}}),w=G(()=>{const t=u.actualQuery;return t?C.value.filter(a=>(a.appName||"").includes(t)||(a.appId||"").includes(t)||(a.activityId||"").includes(t)):C.value}),I=d(async()=>{await pe(),await p()}),{activityIdCol:_,appIdCol:q,appNameCol:y,ctimeCol:x,deviceCol:z,appVersionCodeCol:F,appVersionNameCol:J,reseColWidth:$}=ve();S(()=>{const t=w.value.reduce((a,n)=>(a.add(fe(n)),a),new Set);if(t.size<=1){z.filterOptions=void 0;return}z.filterOptions=[...t.values()].map(a=>({value:a,label:a}))}),S(()=>{const t=w.value.reduce((a,n)=>(a.add(n.appName),a),new Set);if(t.size<=1){y.filterOptions=void 0;return}y.filterOptions=[...t.values()].map(a=>({value:a,label:a}))}),S(()=>{const t=w.value.reduce((a,n)=>(a.add(n.activityId),a),new Set);if(t.size<=1){_.filterOptions=void 0;return}_.filterOptions=[...t.values()].map(a=>({value:a,label:a}))});const E=W([{type:"selection"},x,z,y,q,F,J,_,{key:"actions",title:"操作",fixed:"right",width:"255px",render(t){return l(oe,{snapshot:t,onDelete:p},null)}}]),g=K({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:t=>{g.page=t},onUpdatePageSize:t=>{g.pageSize=t,g.page=1}});X(g,$);const H=t=>{t.columnKey==x.key&&(x.sortOrder=t.order)},N=k(!1),f=k(""),m=d(async()=>{const t=f.value.trim().split(`
1
+ import{d as A,s as k,a as K,c as G,w as S,r as W,b as l,e as X,f as M,g as o,u as e,h as s,F as T,o as O,N as Y,i as ee,j as i,k as c,t as ae,l as te,R as le}from"./index-7ab1a1b0.js";import{_ as oe,b as ne,a as ie,c as se,s as Q,d as ce}from"./ActionCard.vue_vue_type_script_setup_true_lang-64f43fc5.js";import{t as re}from"./check-44032eaf.js";import{s as ue,d as de,a as B,g as Z}from"./storage-d71fd6d4.js";import{i as pe,a as ge}from"./import-7302ef69.js";import{u as ve,N as we,r as fe}from"./table-1e46f9e4.js";import{u as d,N as L,a as me,b,c as v,d as U}from"./node-815a36e5.js";import"./jszip.min-64ef0de2.js";const he={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},ke={flex:""},Ce={"h-full":"",flex:"","flex-items-center":""},_e=s("div",{"flex-1":""},null,-1),ye={href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},xe=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 496 512"},[s("path",{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2z",fill:"currentColor"})],-1),ze=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[s("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 112v288"}),s("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M400 256H112"})],-1),Ne=s("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},[s("path",{d:"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4c-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8c-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6c-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z",fill:"currentColor"})],-1),Me=A({__name:"HomePage",setup(Se){const C=k([]),p=async()=>{C.value=(await ue.getAllItems()).reverse(),r.value=[]};p();const u=K({query:"",actualQuery:"",updateQuery:()=>{u.actualQuery=u.query.trim(),r.value=[]}}),w=G(()=>{const t=u.actualQuery;return t?C.value.filter(a=>(a.appName||"").includes(t)||(a.appId||"").includes(t)||(a.activityId||"").includes(t)):C.value}),I=d(async()=>{await pe(),await p()}),{activityIdCol:_,appIdCol:q,appNameCol:y,ctimeCol:x,deviceCol:z,appVersionCodeCol:F,appVersionNameCol:J,reseColWidth:$}=ve();S(()=>{const t=w.value.reduce((a,n)=>(a.add(fe(n)),a),new Set);if(t.size<=1){z.filterOptions=void 0;return}z.filterOptions=[...t.values()].map(a=>({value:a,label:a}))}),S(()=>{const t=w.value.reduce((a,n)=>(a.add(n.appName),a),new Set);if(t.size<=1){y.filterOptions=void 0;return}y.filterOptions=[...t.values()].map(a=>({value:a,label:a}))}),S(()=>{const t=w.value.reduce((a,n)=>(a.add(n.activityId),a),new Set);if(t.size<=1){_.filterOptions=void 0;return}_.filterOptions=[...t.values()].map(a=>({value:a,label:a}))});const E=W([{type:"selection"},x,z,y,q,F,J,_,{key:"actions",title:"操作",fixed:"right",width:"255px",render(t){return l(oe,{snapshot:t,onDelete:p},null)}}]),g=K({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:t=>{g.page=t},onUpdatePageSize:t=>{g.pageSize=t,g.page=1}});X(g,$);const H=t=>{t.columnKey==x.key&&(x.sortOrder=t.order)},N=k(!1),f=k(""),m=d(async()=>{const t=f.value.trim().split(`
2
2
  `).map(a=>a.trim()).filter(a=>re(a));t.length!=0&&(await ge(t),await p(),f.value="")}),r=k([]),h=()=>Promise.all(r.value.map(t=>B.getItem(t))),j=d(async()=>{await new Promise((t,a)=>{de.warning({title:"删除",content:`是否批量删除 ${r.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:a,onEsc:a,onMaskClick:a,onNegativeClick:a,onPositiveClick:t})}),await Promise.all(r.value.map(t=>B.removeItem(t))),await p()}),P=d(async()=>{await ne(await h())}),V=d(async()=>{await ie(await h())}),R=d(async()=>{const t=await se(await h());Q({content:t.map(a=>Z(a)).join(`
3
3
  `)+`
4
4
  `})}),D=d(async()=>{const t=await ce(await h());Q({content:t.map(a=>Z(a)).join(`
@@ -7,4 +7,4 @@ import{d as A,s as k,a as K,c as G,w as S,r as W,b as l,e as X,f as M,g as o,u a
7
7
  每行一个
8
8
  空白行自动忽略
9
9
  非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"}},null,8,["value"])]),_:1},8,["show","onPositiveClick","loading"]),s("div",he,[s("div",ke,[l(e(v),null,{default:o(()=>[l(e(me),null,{default:o(()=>[l(e(L),{placeholder:"请输入关键字搜索",clearable:"",value:e(u).query,"onUpdate:value":a[2]||(a[2]=n=>e(u).query=n),onKeyup:ee(e(u).updateQuery,["enter"]),onChange:e(u).updateQuery},null,8,["value","onKeyup","onChange"]),l(e(i),{onClick:e(u).updateQuery},{default:o(()=>[c(" 搜索 ")]),_:1},8,["onClick"])]),_:1}),r.value.length?(O(),M(T,{key:0},[l(e(b),null,{trigger:o(()=>[l(e(i),null,{default:o(()=>[c(" 批量下载 ")]),_:1})]),default:o(()=>[l(e(v),{vertical:""},{default:o(()=>[l(e(i),{onClick:e(V).invoke,loading:e(V).loading},{default:o(()=>[c(" 批量下载-快照 ")]),_:1},8,["onClick","loading"]),l(e(i),{onClick:e(P).invoke,loading:e(P).loading},{default:o(()=>[c(" 批量下载-图片 ")]),_:1},8,["onClick","loading"])]),_:1})]),_:1}),l(e(b),null,{trigger:o(()=>[l(e(i),null,{default:o(()=>[c(" 批量分享 ")]),_:1})]),default:o(()=>[l(e(v),{vertical:""},{default:o(()=>[l(e(i),{onClick:e(D).invoke,loading:e(D).loading},{default:o(()=>[c(" 批量生成链接-快照 ")]),_:1},8,["onClick","loading"]),l(e(i),{onClick:e(R).invoke,loading:e(R).loading},{default:o(()=>[c(" 批量生成链接-图片 ")]),_:1},8,["onClick","loading"])]),_:1})]),_:1}),l(e(i),{onClick:e(j).invoke},{default:o(()=>[c(" 批量删除 ")]),_:1},8,["onClick"]),s("div",Ce,ae(`已选中 ${r.value.length} 个快照`),1)],64)):te("",!0)]),_:1}),_e,l(e(v),null,{default:o(()=>[s("a",ye,[l(e(i),null,{icon:o(()=>[l(e(U),null,{default:o(()=>[xe]),_:1})]),_:1})]),l(e(b),null,{trigger:o(()=>[l(e(i),null,{icon:o(()=>[l(e(U),null,{default:o(()=>[ze]),_:1})]),_:1})]),default:o(()=>[l(e(v),{vertical:""},{default:o(()=>[l(e(i),{onClick:e(I).invoke,loading:e(I).loading},{default:o(()=>[c(" 导入本地文件 ")]),_:1},8,["onClick","loading"]),l(e(i),{onClick:a[3]||(a[3]=n=>N.value=!0),loading:e(m).loading},{default:o(()=>[c(" 导入网络文件 ")]),_:1},8,["loading"])]),_:1})]),_:1}),l(e(le),{to:"/device"},{default:o(()=>[l(e(i),null,{icon:o(()=>[l(e(U),null,{default:o(()=>[Ne]),_:1})]),_:1})]),_:1})]),_:1})]),l(e(we),{striped:"",data:w.value,columns:E,scrollX:1800,pagination:e(g),checkedRowKeys:r.value,"onUpdate:checkedRowKeys":a[4]||(a[4]=n=>r.value=n),rowKey:n=>n.id,"onUpdate:sorter":H,size:"small",class:"flex-1",flexHeight:""},null,8,["data","columns","pagination","checkedRowKeys","rowKey"])])],64))}});export{Me as default};
10
- //# sourceMappingURL=HomePage-511ea3b8.js.map
10
+ //# sourceMappingURL=HomePage-0dd4a119.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HomePage-511ea3b8.js","sources":["../../src/views/HomePage.vue"],"sourcesContent":["<script lang=\"tsx\" setup>\nimport ActionCard from '@/components/ActionCard.vue';\nimport { toValidURL } from '@/utils/check';\nimport { showTextDLg } from '@/utils/dialog';\nimport { dialog } from '@/utils/discrete';\nimport {\n batchCreateJpgUrl,\n batchCreateZipUrl,\n batchJpgDownloadZip,\n batchZipDownloadZip,\n} from '@/utils/export';\nimport { importFromLocal, importFromNetwork } from '@/utils/import';\nimport { shallowSnapshotStorage, snapshotStorage } from '@/utils/storage';\nimport { renderDveice, useSnapshotColumns } from '@/utils/table';\nimport { useTask } from '@/utils/task';\nimport type { Snapshot } from '@/utils/types';\nimport { githubUrlToSelfUrl } from '@/utils/url';\nimport {\n NButton,\n NDataTable,\n NInput,\n NInputGroup,\n NModal,\n NPopover,\n NSpace,\n PaginationProps,\n type DataTableColumns,\n NIcon,\n} from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\nimport {\n computed,\n reactive,\n shallowReactive,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue';\nimport { RouterLink } from 'vue-router';\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nconst updateSnapshots = async () => {\n snapshots.value = (await shallowSnapshotStorage.getAllItems()).reverse();\n checkedRowKeys.value = [];\n};\nupdateSnapshots();\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 (s.appName || ``).includes(actualQuery) ||\n (s.appId || ``).includes(actualQuery) ||\n (s.activityId || ``).includes(actualQuery)\n );\n });\n});\n\nconst importLoacl = useTask(async () => {\n await importFromLocal();\n await updateSnapshots();\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n deviceCol,\n appVersionCodeCol,\n appVersionNameCol,\n reseColWidth,\n} = useSnapshotColumns();\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(renderDveice(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(c.appName), 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 deviceCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `255px`,\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, reseColWidth);\n\nconst handleSorterChange = (sorter: SortState) => {\n if (sorter.columnKey == ctimeCol.key) {\n ctimeCol.sortOrder = sorter.order;\n }\n};\n\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 batchDownloadJpg = useTask(async () => {\n await batchJpgDownloadZip(await checkedSnapshots());\n});\nconst batchDownloadZip = useTask(async () => {\n await batchZipDownloadZip(await checkedSnapshots());\n});\n\nconst batchShareJpgUrl = useTask(async () => {\n const pngUrls = await batchCreateJpgUrl(await checkedSnapshots());\n showTextDLg({\n content: pngUrls.map((s) => githubUrlToSelfUrl(s)).join(`\\n`) + `\\n`,\n });\n});\nconst batchShareZipUrl = useTask(async () => {\n const zipUrls = await batchCreateZipUrl(await checkedSnapshots());\n showTextDLg({\n content: zipUrls.map((s) => githubUrlToSelfUrl(s)).join(`\\n`) + `\\n`,\n });\n});\n</script>\n<template>\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 >\n <NInput\n :value=\"text\"\n @update:value=\"\n if (!importNetwork.loading) {\n text = $event;\n }\n \"\n type=\"textarea\"\n :placeholder=\"`仅支持ZIP文件链接\\n每行一个\\n空白行自动忽略\\n非法链接行自动忽略`\"\n :autosize=\"{\n minRows: 8,\n maxRows: 16,\n }\"\n :inputProps=\"{\n style: `white-space: nowrap;`,\n }\"\n />\n </NModal>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex>\n <NSpace>\n <NInputGroup>\n <NInput\n placeholder=\"请输入关键字搜索\"\n clearable\n v-model:value=\"filterOption.query\"\n @keyup.enter=\"filterOption.updateQuery\"\n @change=\"filterOption.updateQuery\"\n ></NInput>\n <NButton @click=\"filterOption.updateQuery\"> 搜索 </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=\"batchDownloadJpg.invoke\"\n :loading=\"batchDownloadJpg.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=\"batchShareJpgUrl.invoke\"\n :loading=\"batchShareJpgUrl.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 <NSpace>\n <a\n href=\"https://github.com/gkd-kit/inspect\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 496 512\"\n >\n <path\n d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </a>\n <NPopover>\n <template #trigger>\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 512 512\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n d=\"M256 112v288\"\n ></path>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n d=\"M400 256H112\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton @click=\"importLoacl.invoke\" :loading=\"importLoacl.loading\">\n 导入本地文件\n </NButton>\n <NButton @click=\"showModal = true\" :loading=\"importNetwork.loading\">\n 导入网络文件\n </NButton>\n </NSpace>\n </NPopover>\n <RouterLink to=\"/device\">\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 1024 1024\"\n >\n <path\n d=\"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4c-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8c-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6c-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </RouterLink>\n </NSpace>\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 />\n </div>\n</template>\n"],"names":["snapshots","shallowRef","updateSnapshots","value","shallowSnapshotStorage","getAllItems","reverse","checkedRowKeys","filterOption","shallowReactive","query","actualQuery","updateQuery","trim","filterSnapshots","computed","filter","s","appName","includes","appId","activityId","importLoacl","useTask","importFromLocal","activityIdCol","appIdCol","appNameCol","ctimeCol","deviceCol","appVersionCodeCol","appVersionNameCol","reseColWidth","useSnapshotColumns","watchEffect","set","reduce","p","c","add","renderDveice","Set","size","filterOptions","undefined","values","map","label","columns","reactive","type","key","title","fixed","width","render","row","_createVNode2","ActionCard","pagination","page","pageSize","showSizePicker","pageSizes","onChange","onUpdatePageSize","watch","handleSorterChange","sorter","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","batchDownloadJpg","batchJpgDownloadZip","batchDownloadZip","batchZipDownloadZip","batchShareJpgUrl","pngUrls","batchCreateJpgUrl","showTextDLg","githubUrlToSelfUrl","join","batchShareZipUrl","zipUrls","batchCreateZipUrl"],"mappings":"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"}
1
+ {"version":3,"file":"HomePage-0dd4a119.js","sources":["../../src/views/HomePage.vue"],"sourcesContent":["<script lang=\"tsx\" setup>\nimport ActionCard from '@/components/ActionCard.vue';\nimport { toValidURL } from '@/utils/check';\nimport { showTextDLg } from '@/utils/dialog';\nimport { dialog } from '@/utils/discrete';\nimport {\n batchCreateJpgUrl,\n batchCreateZipUrl,\n batchJpgDownloadZip,\n batchZipDownloadZip,\n} from '@/utils/export';\nimport { importFromLocal, importFromNetwork } from '@/utils/import';\nimport { shallowSnapshotStorage, snapshotStorage } from '@/utils/storage';\nimport { renderDveice, useSnapshotColumns } from '@/utils/table';\nimport { useTask } from '@/utils/task';\nimport type { Snapshot } from '@/utils/types';\nimport { githubUrlToSelfUrl } from '@/utils/url';\nimport {\n NButton,\n NDataTable,\n NInput,\n NInputGroup,\n NModal,\n NPopover,\n NSpace,\n PaginationProps,\n type DataTableColumns,\n NIcon,\n} from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\nimport {\n computed,\n reactive,\n shallowReactive,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue';\nimport { RouterLink } from 'vue-router';\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nconst updateSnapshots = async () => {\n snapshots.value = (await shallowSnapshotStorage.getAllItems()).reverse();\n checkedRowKeys.value = [];\n};\nupdateSnapshots();\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 (s.appName || ``).includes(actualQuery) ||\n (s.appId || ``).includes(actualQuery) ||\n (s.activityId || ``).includes(actualQuery)\n );\n });\n});\n\nconst importLoacl = useTask(async () => {\n await importFromLocal();\n await updateSnapshots();\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n deviceCol,\n appVersionCodeCol,\n appVersionNameCol,\n reseColWidth,\n} = useSnapshotColumns();\n\nwatchEffect(() => {\n const set = filterSnapshots.value.reduce(\n (p, c) => (p.add(renderDveice(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(c.appName), 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 deviceCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `255px`,\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, reseColWidth);\n\nconst handleSorterChange = (sorter: SortState) => {\n if (sorter.columnKey == ctimeCol.key) {\n ctimeCol.sortOrder = sorter.order;\n }\n};\n\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 batchDownloadJpg = useTask(async () => {\n await batchJpgDownloadZip(await checkedSnapshots());\n});\nconst batchDownloadZip = useTask(async () => {\n await batchZipDownloadZip(await checkedSnapshots());\n});\n\nconst batchShareJpgUrl = useTask(async () => {\n const pngUrls = await batchCreateJpgUrl(await checkedSnapshots());\n showTextDLg({\n content: pngUrls.map((s) => githubUrlToSelfUrl(s)).join(`\\n`) + `\\n`,\n });\n});\nconst batchShareZipUrl = useTask(async () => {\n const zipUrls = await batchCreateZipUrl(await checkedSnapshots());\n showTextDLg({\n content: zipUrls.map((s) => githubUrlToSelfUrl(s)).join(`\\n`) + `\\n`,\n });\n});\n</script>\n<template>\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 >\n <NInput\n :value=\"text\"\n @update:value=\"\n if (!importNetwork.loading) {\n text = $event;\n }\n \"\n type=\"textarea\"\n :placeholder=\"`仅支持ZIP文件链接\\n每行一个\\n空白行自动忽略\\n非法链接行自动忽略`\"\n :autosize=\"{\n minRows: 8,\n maxRows: 16,\n }\"\n :inputProps=\"{\n style: `white-space: nowrap;`,\n }\"\n />\n </NModal>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex>\n <NSpace>\n <NInputGroup>\n <NInput\n placeholder=\"请输入关键字搜索\"\n clearable\n v-model:value=\"filterOption.query\"\n @keyup.enter=\"filterOption.updateQuery\"\n @change=\"filterOption.updateQuery\"\n ></NInput>\n <NButton @click=\"filterOption.updateQuery\"> 搜索 </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=\"batchDownloadJpg.invoke\"\n :loading=\"batchDownloadJpg.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=\"batchShareJpgUrl.invoke\"\n :loading=\"batchShareJpgUrl.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 <NSpace>\n <a\n href=\"https://github.com/gkd-kit/inspect\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 496 512\"\n >\n <path\n d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </a>\n <NPopover>\n <template #trigger>\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 512 512\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n d=\"M256 112v288\"\n ></path>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n d=\"M400 256H112\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton @click=\"importLoacl.invoke\" :loading=\"importLoacl.loading\">\n 导入本地文件\n </NButton>\n <NButton @click=\"showModal = true\" :loading=\"importNetwork.loading\">\n 导入网络文件\n </NButton>\n </NSpace>\n </NPopover>\n <RouterLink to=\"/device\">\n <NButton>\n <template #icon>\n <NIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 1024 1024\"\n >\n <path\n d=\"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4c-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8c-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6c-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9a26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4c30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </RouterLink>\n </NSpace>\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 />\n </div>\n</template>\n"],"names":["snapshots","shallowRef","updateSnapshots","value","shallowSnapshotStorage","getAllItems","reverse","checkedRowKeys","filterOption","shallowReactive","query","actualQuery","updateQuery","trim","filterSnapshots","computed","filter","s","appName","includes","appId","activityId","importLoacl","useTask","importFromLocal","activityIdCol","appIdCol","appNameCol","ctimeCol","deviceCol","appVersionCodeCol","appVersionNameCol","reseColWidth","useSnapshotColumns","watchEffect","set","reduce","p","c","add","renderDveice","Set","size","filterOptions","undefined","values","map","label","columns","reactive","type","key","title","fixed","width","render","row","_createVNode2","ActionCard","pagination","page","pageSize","showSizePicker","pageSizes","onChange","onUpdatePageSize","watch","handleSorterChange","sorter","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","batchDownloadJpg","batchJpgDownloadZip","batchDownloadZip","batchZipDownloadZip","batchShareJpgUrl","pngUrls","batchCreateJpgUrl","showTextDLg","githubUrlToSelfUrl","join","batchShareZipUrl","zipUrls","batchCreateZipUrl"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{d as m,am as f,an as h,s as c,a5 as d,f as g,J as v,K as w,h as _,t as x,o as R}from"./index-9247afbf.js";import{t as S}from"./check-44032eaf.js";import{m as b,j as i,u as n,a as y,n as l,q as I,e as U,r as B,b as k}from"./storage-92b049f8.js";import{a as q}from"./import-526beb2d.js";import"./jszip.min-571a1711.js";const D={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","p-5px":"","flex-col":"","flex-items-center":""},C=m({__name:"ImportPage",setup(J){const u=f(),r=h(),a=String(u.query.url||""),p=c(!0),o=c("加载中...");return d(async()=>{if(!S(a)){b.error("非法URL参数"),await i(1e3),r.replace({path:"/"});return}await i(1e3);const s=n[a];if(s)if(await y.getItem(s)){r.replace({name:"snapshot",params:{snapshotId:s}});return}else delete n[a];l.start();try{const[t]=await q(a)??[];if(t.status=="fulfilled"){l.finish();const e=t.value;e!=null&&e.id?(n[a]=e.id,a.match(I)?U[e.id]=a:a.match(B)&&(k[e.id]=a),p.value=!1,await i(500),r.replace({name:"snapshot",params:{snapshotId:e.id}})):o.value="获取资源失败"}else throw t.reason}catch{l.error(),o.value="加载资源失败"}}),(s,t)=>(R(),g("div",D,[v(_("div",{"mt-40px":""},x(o.value),513),[[w,p.value]])]))}});export{C as default};
2
- //# sourceMappingURL=ImportPage-d161324f.js.map
1
+ import{d as m,am as f,an as h,s as c,a5 as d,f as g,J as v,K as w,h as _,t as x,o as R}from"./index-7ab1a1b0.js";import{t as S}from"./check-44032eaf.js";import{m as b,j as i,u as n,a as y,n as l,q as I,e as U,r as B,b as k}from"./storage-d71fd6d4.js";import{a as q}from"./import-7302ef69.js";import"./jszip.min-64ef0de2.js";const D={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","p-5px":"","flex-col":"","flex-items-center":""},C=m({__name:"ImportPage",setup(J){const u=f(),r=h(),a=String(u.query.url||""),p=c(!0),o=c("加载中...");return d(async()=>{if(!S(a)){b.error("非法URL参数"),await i(1e3),r.replace({path:"/"});return}await i(1e3);const s=n[a];if(s)if(await y.getItem(s)){r.replace({name:"snapshot",params:{snapshotId:s}});return}else delete n[a];l.start();try{const[t]=await q(a)??[];if(t.status=="fulfilled"){l.finish();const e=t.value;e!=null&&e.id?(n[a]=e.id,a.match(I)?U[e.id]=a:a.match(B)&&(k[e.id]=a),p.value=!1,await i(500),r.replace({name:"snapshot",params:{snapshotId:e.id}})):o.value="获取资源失败"}else throw t.reason}catch{l.error(),o.value="加载资源失败"}}),(s,t)=>(R(),g("div",D,[v(_("div",{"mt-40px":""},x(o.value),513),[[w,p.value]])]))}});export{C as default};
2
+ //# sourceMappingURL=ImportPage-684eabaf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImportPage-d161324f.js","sources":["../../src/views/ImportPage.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { toValidURL } from '@/utils/check';\nimport { loadingBar, message } from '@/utils/discrete';\nimport { importFromNetwork } from '@/utils/import';\nimport { delay } from '@/utils/others';\nimport { githubZipStorage } from '@/utils/storage';\nimport { githubJpgStorage } from '@/utils/storage';\nimport { urlStorage, snapshotStorage } from '@/utils/storage';\nimport { githubImageUrlReg, githubZipUrlReg } from '@/utils/url';\nimport { onMounted, shallowRef } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst importUrl = String(route.query.url || ``);\n\nconst loading = shallowRef(true);\nconst tip = shallowRef(`加载中...`);\n\nonMounted(async () => {\n if (!toValidURL(importUrl)) {\n message.error(`非法URL参数`);\n await delay(1000);\n router.replace({\n path: `/`,\n });\n return;\n }\n await delay(1000);\n const snapshotId = urlStorage[importUrl];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n router.replace({\n name: 'snapshot',\n params: { snapshotId },\n });\n return;\n } else {\n delete urlStorage[importUrl];\n }\n }\n loadingBar.start();\n try {\n const [result] = (await importFromNetwork(importUrl)) ?? [];\n\n if (result.status == 'fulfilled') {\n loadingBar.finish();\n const snapshot = result.value;\n if (snapshot?.id) {\n urlStorage[importUrl] = snapshot.id;\n if (importUrl.match(githubZipUrlReg)) {\n githubZipStorage[snapshot.id] = importUrl;\n } else if (importUrl.match(githubImageUrlReg)) {\n githubJpgStorage[snapshot.id] = importUrl;\n }\n loading.value = false;\n await delay(500);\n router.replace({\n name: 'snapshot',\n params: { snapshotId: snapshot.id },\n });\n } else {\n tip.value = `获取资源失败`;\n }\n } else {\n throw result.reason;\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 p-5px\n flex-col\n flex-items-center\n >\n <div v-show=\"loading\" mt-40px>\n {{ tip }}\n </div>\n </div>\n</template>\n"],"names":["route","useRoute","router","useRouter","importUrl","String","query","url","loading","shallowRef","tip","onMounted","toValidURL","message","error","delay","replace","path","snapshotId","urlStorage","snapshotStorage","getItem","name","params","loadingBar","start","result","importFromNetwork","status","finish","snapshot","value","id","match","githubZipUrlReg","githubZipStorage","githubImageUrlReg","githubJpgStorage","reason"],"mappings":"idAYA,MAAMA,EAAQC,IACRC,EAASC,IAETC,EAAYC,OAAOL,EAAMM,MAAMC,KAAQ,EAAC,EAExCC,EAAUC,EAAW,EAAI,EACzBC,EAAMD,EAAY,QAAO,EAE/BE,OAAAA,EAAU,SAAY,CACpB,GAAI,CAACC,EAAWR,CAAS,EAAG,CAC1BS,EAAQC,MAAO,SAAQ,EACvB,MAAMC,EAAM,GAAI,EAChBb,EAAOc,QAAQ,CACbC,KAAO,GACT,CAAC,EACD,MACF,CACA,MAAMF,EAAM,GAAI,EAChB,MAAMG,EAAaC,EAAWf,CAAS,EACvC,GAAIc,EAEF,GADiB,MAAME,EAAgBC,QAAQH,CAAU,EAC3C,CACZhB,EAAOc,QAAQ,CACbM,KAAM,WACNC,OAAQ,CAAEL,WAAAA,CAAW,CACvB,CAAC,EACD,MACF,MACE,OAAOC,EAAWf,CAAS,EAG/BoB,EAAWC,MAAK,EAChB,GAAI,CACF,KAAM,CAACC,CAAM,EAAK,MAAMC,EAAkBvB,CAAS,GAAM,GAEzD,GAAIsB,EAAOE,QAAU,YAAa,CAChCJ,EAAWK,OAAM,EACjB,MAAMC,EAAWJ,EAAOK,MACpBD,GAAAA,MAAAA,EAAUE,IACZb,EAAWf,CAAS,EAAI0B,EAASE,GAC7B5B,EAAU6B,MAAMC,CAAe,EACjCC,EAAiBL,EAASE,EAAE,EAAI5B,EACvBA,EAAU6B,MAAMG,CAAiB,IAC1CC,EAAiBP,EAASE,EAAE,EAAI5B,GAElCI,EAAQuB,MAAQ,GAChB,MAAMhB,EAAM,GAAG,EACfb,EAAOc,QAAQ,CACbM,KAAM,WACNC,OAAQ,CAAEL,WAAYY,EAASE,EAAG,CACpC,CAAC,GAEDtB,EAAIqB,MAAS,QAEjB,KACE,OAAML,EAAOY,MAEjB,MAAQ,CACNd,EAAWV,MAAK,EAChBJ,EAAIqB,MAAS,QACf,CACF,CAAC"}
1
+ {"version":3,"file":"ImportPage-684eabaf.js","sources":["../../src/views/ImportPage.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { toValidURL } from '@/utils/check';\nimport { loadingBar, message } from '@/utils/discrete';\nimport { importFromNetwork } from '@/utils/import';\nimport { delay } from '@/utils/others';\nimport { githubZipStorage } from '@/utils/storage';\nimport { githubJpgStorage } from '@/utils/storage';\nimport { urlStorage, snapshotStorage } from '@/utils/storage';\nimport { githubImageUrlReg, githubZipUrlReg } from '@/utils/url';\nimport { onMounted, shallowRef } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst importUrl = String(route.query.url || ``);\n\nconst loading = shallowRef(true);\nconst tip = shallowRef(`加载中...`);\n\nonMounted(async () => {\n if (!toValidURL(importUrl)) {\n message.error(`非法URL参数`);\n await delay(1000);\n router.replace({\n path: `/`,\n });\n return;\n }\n await delay(1000);\n const snapshotId = urlStorage[importUrl];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n router.replace({\n name: 'snapshot',\n params: { snapshotId },\n });\n return;\n } else {\n delete urlStorage[importUrl];\n }\n }\n loadingBar.start();\n try {\n const [result] = (await importFromNetwork(importUrl)) ?? [];\n\n if (result.status == 'fulfilled') {\n loadingBar.finish();\n const snapshot = result.value;\n if (snapshot?.id) {\n urlStorage[importUrl] = snapshot.id;\n if (importUrl.match(githubZipUrlReg)) {\n githubZipStorage[snapshot.id] = importUrl;\n } else if (importUrl.match(githubImageUrlReg)) {\n githubJpgStorage[snapshot.id] = importUrl;\n }\n loading.value = false;\n await delay(500);\n router.replace({\n name: 'snapshot',\n params: { snapshotId: snapshot.id },\n });\n } else {\n tip.value = `获取资源失败`;\n }\n } else {\n throw result.reason;\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 p-5px\n flex-col\n flex-items-center\n >\n <div v-show=\"loading\" mt-40px>\n {{ tip }}\n </div>\n </div>\n</template>\n"],"names":["route","useRoute","router","useRouter","importUrl","String","query","url","loading","shallowRef","tip","onMounted","toValidURL","message","error","delay","replace","path","snapshotId","urlStorage","snapshotStorage","getItem","name","params","loadingBar","start","result","importFromNetwork","status","finish","snapshot","value","id","match","githubZipUrlReg","githubZipStorage","githubImageUrlReg","githubJpgStorage","reason"],"mappings":"idAYA,MAAMA,EAAQC,IACRC,EAASC,IAETC,EAAYC,OAAOL,EAAMM,MAAMC,KAAQ,EAAC,EAExCC,EAAUC,EAAW,EAAI,EACzBC,EAAMD,EAAY,QAAO,EAE/BE,OAAAA,EAAU,SAAY,CACpB,GAAI,CAACC,EAAWR,CAAS,EAAG,CAC1BS,EAAQC,MAAO,SAAQ,EACvB,MAAMC,EAAM,GAAI,EAChBb,EAAOc,QAAQ,CACbC,KAAO,GACT,CAAC,EACD,MACF,CACA,MAAMF,EAAM,GAAI,EAChB,MAAMG,EAAaC,EAAWf,CAAS,EACvC,GAAIc,EAEF,GADiB,MAAME,EAAgBC,QAAQH,CAAU,EAC3C,CACZhB,EAAOc,QAAQ,CACbM,KAAM,WACNC,OAAQ,CAAEL,WAAAA,CAAW,CACvB,CAAC,EACD,MACF,MACE,OAAOC,EAAWf,CAAS,EAG/BoB,EAAWC,MAAK,EAChB,GAAI,CACF,KAAM,CAACC,CAAM,EAAK,MAAMC,EAAkBvB,CAAS,GAAM,GAEzD,GAAIsB,EAAOE,QAAU,YAAa,CAChCJ,EAAWK,OAAM,EACjB,MAAMC,EAAWJ,EAAOK,MACpBD,GAAAA,MAAAA,EAAUE,IACZb,EAAWf,CAAS,EAAI0B,EAASE,GAC7B5B,EAAU6B,MAAMC,CAAe,EACjCC,EAAiBL,EAASE,EAAE,EAAI5B,EACvBA,EAAU6B,MAAMG,CAAiB,IAC1CC,EAAiBP,EAASE,EAAE,EAAI5B,GAElCI,EAAQuB,MAAQ,GAChB,MAAMhB,EAAM,GAAG,EACfb,EAAOc,QAAQ,CACbM,KAAM,WACNC,OAAQ,CAAEL,WAAYY,EAASE,EAAG,CACpC,CAAC,GAEDtB,EAAIqB,MAAS,QAEjB,KACE,OAAML,EAAOY,MAEjB,MAAQ,CACNd,EAAWV,MAAK,EAChBJ,EAAIqB,MAAS,QACf,CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import{_ as zn,e as On,f as Bn}from"./ActionCard.vue_vue_type_script_setup_true_lang-9695f4de.js";import{f as pt,c as $e,m as ue,b as Mn,g as Et,e as Yt,a as Ft,h as Un,i as jn,j as At}from"./storage-92b049f8.js";import{d as j,m as y,n as kt,p as D,q as F,v as X,x as K,y as lt,z as W,c as A,A as Oe,B as Xt,C as rt,D as wt,E as Ct,G as q,H as Hn,I as z,J as Gt,K as Jt,L as Qt,M as Vn,O as G,P as Pe,Q as Wn,S as It,T as Zt,U as qn,V as ve,W as Yn,X as Xn,Y as Gn,Z as Ke,_ as Jn,$ as Qn,a0 as ft,a1 as Zn,a2 as eo,a3 as ht,a4 as to,a5 as no,a6 as oo,a7 as en,a8 as lo,w as Ce,e as We,a9 as gt,aa as Ve,ab as zt,ac as ro,ad as nt,a as tn,s as Q,ae as Ot,af as ne,h as B,ag as nn,ah as bt,ai as ao,aj as io,o as M,g as S,b as _,u as b,f as ge,ak as mt,F as ot,t as te,l as De,k as H,i as so,j as tt,al as Bt,am as co,an as uo}from"./index-9247afbf.js";import{e as qe,C as fo,f as ho,g as go,h as vo,i as Mt,V as po,j as bo,k as Ut,l as mo,m as yo,n as xo,d as on,o as Te,p as ko,c as jt,q as Ht,r as wo,N as Co,a as No,s as yt,t as So,v as Vt,w as Ro}from"./node-fc0fdd90.js";import{e as Wt,a as _o,p as Ko,u as $o}from"./index-fac4ff4e.js";import{_ as Do}from"./_plugin-vue_export-helper-c27b6911.js";import"./jszip.min-571a1711.js";function ln(e){return typeof e=="string"?`s-${e}`:`n-${e}`}const To=j({name:"ChevronLeft",render(){return y("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},y("path",{d:"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z",fill:"currentColor"}))}}),Po=j({name:"Switcher",render(){return y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},y("path",{d:"M12 8l10 8l-10 8z"}))}}),Lo=e=>{const{fontWeight:t,textColor1:c,textColor2:u,textColorDisabled:s,dividerColor:r,fontSize:g}=e;return{titleFontSize:g,titleFontWeight:t,dividerColor:r,titleTextColor:c,titleTextColorDisabled:s,fontSize:g,textColor:u,arrowColor:u,arrowColorDisabled:s,itemMargin:"16px 0 0 0",titlePadding:"16px 0 0 0"}},Eo={name:"Collapse",common:kt,self:Lo},Fo=Eo,Ao=D("collapse","width: 100%;",[D("collapse-item",`
1
+ import{_ as zn,e as On,f as Bn}from"./ActionCard.vue_vue_type_script_setup_true_lang-64f43fc5.js";import{f as pt,c as $e,m as ue,b as Mn,g as Et,e as Yt,a as Ft,h as Un,i as jn,j as At}from"./storage-d71fd6d4.js";import{d as j,m as y,n as kt,p as D,q as F,v as X,x as K,y as lt,z as W,c as A,A as Oe,B as Xt,C as rt,D as wt,E as Ct,G as q,H as Hn,I as z,J as Gt,K as Jt,L as Qt,M as Vn,O as G,P as Pe,Q as Wn,S as It,T as Zt,U as qn,V as ve,W as Yn,X as Xn,Y as Gn,Z as Ke,_ as Jn,$ as Qn,a0 as ft,a1 as Zn,a2 as eo,a3 as ht,a4 as to,a5 as no,a6 as oo,a7 as en,a8 as lo,w as Ce,e as We,a9 as gt,aa as Ve,ab as zt,ac as ro,ad as nt,a as tn,s as Q,ae as Ot,af as ne,h as B,ag as nn,ah as bt,ai as ao,aj as io,o as M,g as S,b as _,u as b,f as ge,ak as mt,F as ot,t as te,l as De,k as H,i as so,j as tt,al as Bt,am as co,an as uo}from"./index-7ab1a1b0.js";import{e as qe,C as fo,f as ho,g as go,h as vo,i as Mt,V as po,j as bo,k as Ut,l as mo,m as yo,n as xo,d as on,o as Te,p as ko,c as jt,q as Ht,r as wo,N as Co,a as No,s as yt,t as So,v as Vt,w as Ro}from"./node-815a36e5.js";import{e as Wt,a as _o,p as Ko,u as $o}from"./index-35bb5706.js";import{_ as Do}from"./_plugin-vue_export-helper-c27b6911.js";import"./jszip.min-64ef0de2.js";function ln(e){return typeof e=="string"?`s-${e}`:`n-${e}`}const To=j({name:"ChevronLeft",render(){return y("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},y("path",{d:"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z",fill:"currentColor"}))}}),Po=j({name:"Switcher",render(){return y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},y("path",{d:"M12 8l10 8l-10 8z"}))}}),Lo=e=>{const{fontWeight:t,textColor1:c,textColor2:u,textColorDisabled:s,dividerColor:r,fontSize:g}=e;return{titleFontSize:g,titleFontWeight:t,dividerColor:r,titleTextColor:c,titleTextColorDisabled:s,fontSize:g,textColor:u,arrowColor:u,arrowColorDisabled:s,itemMargin:"16px 0 0 0",titlePadding:"16px 0 0 0"}},Eo={name:"Collapse",common:kt,self:Lo},Fo=Eo,Ao=D("collapse","width: 100%;",[D("collapse-item",`
2
2
  font-size: var(--n-font-size);
3
3
  color: var(--n-text-color);
4
4
  transition:
@@ -238,4 +238,4 @@ import{_ as zn,e as On,f as Bn}from"./ActionCard.vue_vue_type_script_setup_true_
238
238
  )`,"background-size":"1px 10px"}},null,-1),El=j({__name:"ScreenshotCard",props:{url:{},snapshot:{},rootNode:{},focusNode:{},onUpdateFocusNode:{type:Function,default:()=>()=>{}}},setup(e){const t=e,c=Q(),u=Q();Ce(()=>{if(!t.rootNode)return;const a=u.value,o=c.value;if(!a||!o)return;const f=o.getBoundingClientRect(),v=f.width/o.naturalWidth*o.naturalHeight,C=(f.height-v)/2,R=(a.clientX-f.left)/f.width*o.naturalWidth,k=(a.clientY-f.top-C)/v*o.naturalHeight,m=ko(t.snapshot.nodes,R,k);m&&t.onUpdateFocusNode(m)});const s=a=>`${a*100}%`,r=A(()=>{var C;const a=c.value,o=(C=t.focusNode)==null?void 0:C.attr;if(!t.focusNode||!a||!o)return"";const f=a.getBoundingClientRect(),v=f.width/a.naturalWidth*a.naturalHeight;return{left:`calc(${s(o.left/a.naturalWidth)} - 2px)`,width:`calc(${s((o.right-o.left)/a.naturalWidth)} + 2px)`,top:`calc(${s((o.top/a.naturalHeight*v+(f.height-v)/2)/f.height)} - 2px)`,height:`calc(${s((o.bottom-o.top)/a.naturalHeight*v/f.height)} + 2px)`}}),g=Q(!1),h=Q({ox:0,oy:0}),l=a=>{const o=c.value;if(!o)return;const f=o.getBoundingClientRect(),v=f.width/o.naturalWidth*o.naturalHeight,C=(f.height-v)/2,R=(a.clientX-f.left)/f.width*o.naturalWidth,k=(a.clientY-f.top-C)/v*o.naturalHeight;h.value={ox:R,oy:k},i.value={left:-(R-.1*o.naturalWidth)/o.naturalWidth*1e3+"px",top:-(k-.1*o.naturalWidth)/o.naturalWidth*1e3+"px"}},i=Q({left:"0",top:"0"});return(a,o)=>(M(),ge("div",Sl,[B("img",{ref_key:"imgRef",ref:c,src:a.url,onClick:o[0]||(o[0]=f=>u.value=f),"cursor-crosshair":"","h-full":"","object-contain":"",style:{"max-width":"max(35vw, 400px)"},onMouseover:o[1]||(o[1]=f=>g.value=!0),onMouseleave:o[2]||(o[2]=f=>g.value=!1),onMousemove:l},null,40,Rl),B("div",{style:bt(r.value),absolute:"","pointer-events-none":"","transition-all-300":"","b-1px":"","b-blue":"","b-solid":""},Kl,4),Gt(B("div",$l,[B("img",{src:a.url,"object-contain":"",absolute:"","left-0":"","top-0":"",style:bt(i.value),"w-1000px":""},null,12,Dl),B("div",Tl,te(`${h.value.ox.toFixed(0)},${h.value.oy.toFixed(0)}`),1),Pl,Ll],512),[[Jt,g.value]])]))}}),Fl={"w-480px":"","bg-white":"","b-1px":"","b-solid":"","b-gray-200":"","rounded-4px":"","p-8px":"",style:{"min-width":"max(25vw, 480px)"}},Al={flex:"","m-b-4px":""},Il=B("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},[B("path",{d:"M29 27.586l-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29zM4 13a9 9 0 1 1 9 9a9.01 9.01 0 0 1-9-9z",fill:"currentColor"})],-1),zl=B("div",{"p-5px":""},null,-1),Ol={"break-all":""},Bl=B("div",{"p-l-8px":""},null,-1),Ml=j({__name:"SearchCard",props:{snapshot:{},rootNode:{},onUpdateFocusNode:{type:Function,default:()=>()=>{}}},setup(e){const t=e,c=Q(""),u=tn([]),s=Wt(()=>{if(!t.rootNode){ue.error("根节点不存在");return}const l=c.value.trim();if(l)if(g.value){const i=_o(()=>Ko(l),"选择器非法");if(u.find(o=>typeof o.selector=="object"&&o.selector.toString()==i.toString())){ue.warning("不可重复选择");return}const a=i.querySelectorAll(t.rootNode);if(a.length==0){ue.success("没有选择到节点");return}ue.success(`选择到 ${a.length} 个节点`),u.unshift({selector:i,results:a})}else{if(u.find(o=>typeof o.selector=="string"&&o.selector.toString()==l)){ue.warning("不可重复选择");return}const i=[],a=[t.rootNode];for(;a.length>0;){const o=a.pop();yt(o).includes(l)&&i.push(o),a.push(...[...o.children].reverse())}if(i.length==0){ue.success("没有搜索到节点");return}ue.success(`搜索到 ${i.length} 个节点`),u.unshift({selector:l,results:i})}}),r=Wt(async l=>{let i=Mn[t.snapshot.id];i&&(i=Et(i));let a=Yt[t.snapshot.id];a&&(a=Et(a));const o={id:t.snapshot.appId,name:t.snapshot.appName,groups:[{key:1,name:`[ChangeMe]规则名称-${So().format("YYYY-MM-DD HH:mm:ss")}`,desc:"[ChangeMe]本规则由GKD网页端审查工具生成",rules:[{activityIds:t.snapshot.activityId,matches:l.toString(),exampleUrls:i,snapshotUrls:a}]}]};$e(JSON.stringify(o,void 0,2))}),g=Q(!0),h=window.innerWidth/100;return(l,i)=>(M(),ne(fn,{initialValue:{top:75,right:Math.max(315,12*h+135)},class:"z-1"},{default:S(({onRef:a})=>[B("div",Fl,[B("div",Al,[_(b(wo),{value:g.value,"onUpdate:value":i[0]||(i[0]=o=>g.value=o)},{default:S(()=>[_(b(jt),null,{default:S(()=>[_(b(Ht),{value:!1},{default:S(()=>[H(" 字符搜索 ")]),_:1}),_(b(Ht),{value:!0},{default:S(()=>[H(" 选择器查询 ")]),_:1})]),_:1})]),_:1},8,["value"]),B("div",{"flex-1":"","cursor-move":"",ref:a},null,512)]),_(b(No),null,{default:S(()=>[_(b(Co),{value:c.value,"onUpdate:value":i[1]||(i[1]=o=>c.value=o),placeholder:g.value?"请输入选择器":"请输入字符",onKeyup:so(b(s),["enter"]),inputProps:{class:"gkd_code"}},null,8,["value","placeholder","onKeyup"]),_(b(tt),{onClick:b(s)},{icon:S(()=>[_(b(on),null,{default:S(()=>[Il]),_:1})]),_:1},8,["onClick"])]),_:1}),zl,_(b(zo),null,{default:S(()=>[(M(!0),ge(ot,null,mt(b(u),(o,f)=>(M(),ne(b(Mo),{key:o.selector.toString()},{header:S(()=>[B("span",Ol,te(o.selector.toString()),1)]),"header-extra":S(()=>[typeof o.selector=="object"?(M(),ne(b(tt),{key:0,size:"small",onClick:Bt(v=>b(r)(o.selector),["stop"])},{default:S(()=>[H(" 生成规则 ")]),_:2},1032,["onClick"])):De("",!0),Bl,_(b(tt),{size:"small",onClick:Bt(v=>b(u).splice(f,1),["stop"])},{default:S(()=>[H(" 删除 ")]),_:2},1032,["onClick"])]),default:S(()=>[_(b(jt),{style:{"max-height":"400px","overflow-y":"scroll","padding-bottom":"10px"}},{default:S(()=>[(M(!0),ge(ot,null,mt(o.results,v=>(M(),ne(b(tt),{key:v.id,onClick:C=>l.onUpdateFocusNode(v),size:"small"},{default:S(()=>[H(te(b(yt)(v)),1)]),_:2},1032,["onClick"]))),128))]),_:2},1024)]),_:2},1024))),128))]),_:1})])]),_:1},8,["initialValue"]))}}),Ul={flex:"","flex-col":""},jl=j({__name:"WindowCard",props:{snapshot:{},rootNode:{},focusNode:{},onUpdateFocusNode:{type:Function,default:()=>()=>{}}},setup(e){const t=e,c=Q([]);Ce(async()=>{var o;if(!t.focusNode)return;const l=t.focusNode.id;let i=t.focusNode.parent;if(!i)return;const a=new Set(c.value);for(;i;)a.add(i.id),i=i.parent;a.size!=c.value.length&&(c.value=[...a],await nt(),(o=u.value)==null||o.scrollTo({key:l}))});const u=Q(),s=(l,i,a)=>{},r=(l,i)=>{var a;return i.id===((a=t.focusNode)==null?void 0:a.id)},g=l=>{var i;return{onClick:()=>{t.onUpdateFocusNode(l.option)},style:{color:l.option.id==((i=t.focusNode)==null?void 0:i.id)?"#00F":void 0}}},h=l=>yt(l.option);return(l,i)=>(M(),ge("div",Ul,[_(b(an),{size:"small",striped:"",singleLine:!1,class:"table-fixed",themeOverrides:{thPaddingSmall:"2px 4px",tdPaddingSmall:"2px 4px"}},{default:S(()=>[_(b(Jo),null,{default:S(()=>[_(b(xt),null,{default:S(()=>[_(b(_e),{class:"w-140px"},{default:S(()=>[H(" Device ")]),_:1}),_(b(_e),{class:"w-100px"},{default:S(()=>[H(" Name ")]),_:1}),_(b(_e),{class:"w-100px"},{default:S(()=>[H(" VersionName ")]),_:1}),_(b(_e),{class:"w-100px"},{default:S(()=>[H(" VersionCode ")]),_:1}),_(b(_e),{class:"w-150px"},{default:S(()=>[H(" AppId ")]),_:1}),_(b(_e),null,{default:S(()=>[H(" ActivityId ")]),_:1}),_(b(_e),{class:"w-175px"},{default:S(()=>[H(" 操作 ")]),_:1})]),_:1})]),_:1}),_(b(dn),null,{default:S(()=>[_(b(xt),null,{default:S(()=>[_(b(pe),{class:"whitespace-nowrap"},{default:S(()=>[H(te(`${b(Vt)(l.snapshot).manufacturer} Android ${b(Vt)(l.snapshot).release||""}`),1)]),_:1}),_(b(pe),{class:"whitespace-nowrap",onClick:i[0]||(i[0]=a=>b($e)(l.snapshot.appName))},{default:S(()=>[_(b(Te),null,{default:S(()=>[H(te(l.snapshot.appName),1)]),_:1})]),_:1}),_(b(pe),{class:"whitespace-nowrap",onClick:i[1]||(i[1]=a=>b($e)(l.snapshot.appVersionName))},{default:S(()=>[_(b(Te),null,{default:S(()=>[H(te(l.snapshot.appVersionName),1)]),_:1})]),_:1}),_(b(pe),{class:"whitespace-nowrap",onClick:i[2]||(i[2]=a=>b($e)(l.snapshot.appVersionCode.toString()))},{default:S(()=>[_(b(Te),null,{default:S(()=>[H(te(l.snapshot.appVersionCode),1)]),_:1})]),_:1}),_(b(pe),{class:"whitespace-nowrap",onClick:i[3]||(i[3]=a=>b($e)(l.snapshot.appId))},{default:S(()=>[_(b(Te),null,{default:S(()=>[H(te(l.snapshot.appId),1)]),_:1})]),_:1}),_(b(pe),{onClick:i[4]||(i[4]=a=>b($e)(l.snapshot.activityId)),class:"break-words"},{default:S(()=>[_(b(Te),null,{default:S(()=>[H(te(l.snapshot.activityId),1)]),_:1})]),_:1}),_(b(pe),null,{default:S(()=>[nn(l.$slots,"default",{},void 0,!0)]),_:3})]),_:3})]),_:3})]),_:3}),_(b(hl),{ref_key:"treeRef",ref:u,virtualScroll:"",showLine:"","onUpdate:checkedKeys":s,keyField:"id",defaultExpandedKeys:c.value,data:[l.rootNode],filter:r,nodeProps:g,renderLabel:h,style:{"--n-border-color":"rgb(239, 239, 245)"}},null,8,["defaultExpandedKeys","data","filter","nodeProps","renderLabel"])]))}});const Hl=Do(jl,[["__scopeId","data-v-102e2160"]]),Vl={"h-full":"",flex:"","gap-5px":"","p-5px":"","box-border":""},Zl=j({__name:"SnapshotPage",setup(e){const t=co(),c=uo(),u=$o(),s=A(()=>String(t.params.snapshotId||"")),r=A(()=>{const o=Number(t.query.showSize||"");return!Number.isSafeInteger(o)||o<=0?2e3:o}),g=Q(""),h=Q();Ce(async()=>{const o=await Ft.getItem(s.value);if(!o){ue.error("快照数据缺失");return}Un()&&setTimeout(async()=>{On(o),Yt[o.id]||Bn(await Ft.getItem(s.value))},1e3),o.nodes.length>r.value&&(ue.warning(`当前展示节点数量为${r.value}
239
239
  之后的${o.nodes.length-r.value}个节点将被丢弃
240
240
  使用showSize查询参数可以修改展示数量`),o.nodes=o.nodes.slice(0,r.value));const f=await jn.getItem(s.value);if(!f){ue.create("截屏数据缺失");return}g.value=URL.createObjectURL(new Blob([f],{type:"image/png"})),h.value=o,l.value=Ro(o.nodes),u.value="快照-"+o.appName||o.appId,await At(500),i.value||(i.value=l.value)});const l=Q(),i=Q(),a=async()=>{ue.success("删除成功,即将回到首页"),await At(2e3),c.replace({path:"/"})};return(o,f)=>(M(),ge("div",Vl,[g.value&&h.value?(M(),ne(El,{key:0,url:g.value,snapshot:h.value,rootNode:l.value,focusNode:i.value,onUpdateFocusNode:f[0]||(f[0]=v=>i.value=v)},null,8,["url","snapshot","rootNode","focusNode"])):De("",!0),h.value&&l.value?(M(),ne(Hl,{key:1,rootNode:l.value,snapshot:h.value,focusNode:i.value,onUpdateFocusNode:f[1]||(f[1]=v=>i.value=v),class:"flex-1"},{default:S(()=>[h.value?(M(),ne(zn,{key:0,snapshot:h.value,onDelete:a,showPreview:!1},null,8,["snapshot"])):De("",!0)]),_:1},8,["rootNode","snapshot","focusNode"])):De("",!0),i.value?(M(),ne(Nl,{key:2,focusNode:i.value},null,8,["focusNode"])):De("",!0),l.value?(M(),ne(Ml,{key:3,snapshot:h.value,rootNode:l.value,onUpdateFocusNode:f[2]||(f[2]=v=>i.value=v)},null,8,["snapshot","rootNode"])):De("",!0)]))}});export{Zl as default};
241
- //# sourceMappingURL=SnapshotPage-57d26603.js.map
241
+ //# sourceMappingURL=SnapshotPage-d633b6c9.js.map