@gkd-kit/inspect 0.0.1729692768932 → 0.0.1729873789619

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 (64) hide show
  1. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-CCPNlPHa.js +17 -0
  2. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-CCPNlPHa.js.map +1 -0
  3. package/dist/assets/DevicePage-Cm1OoyKo.js +49 -0
  4. package/dist/assets/DevicePage-Cm1OoyKo.js.map +1 -0
  5. package/dist/assets/HomePage-CT-J4eCH.js +119 -0
  6. package/dist/assets/{HomePage-DvhjaXqH.js.map → HomePage-CT-J4eCH.js.map} +1 -1
  7. package/dist/assets/ImportPage-BBJWt7tZ.js +2 -0
  8. package/dist/assets/ImportPage-BBJWt7tZ.js.map +1 -0
  9. package/dist/assets/PreviewSharePage-DEMuLTdc.js +2 -0
  10. package/dist/assets/{PreviewSharePage-Hyw0Tb6U.js.map → PreviewSharePage-DEMuLTdc.js.map} +1 -1
  11. package/dist/assets/{SelectorPage-D1_qZf8a.js → SelectorPage-DURH77U7.js} +2 -2
  12. package/dist/assets/SelectorPage-DURH77U7.js.map +1 -0
  13. package/dist/assets/SnapshotPage-DYT1omfT.js +279 -0
  14. package/dist/assets/SnapshotPage-DYT1omfT.js.map +1 -0
  15. package/dist/assets/{TrackGraph-D0s0XMN9.js → TrackGraph-CInYslON.js} +3 -3
  16. package/dist/assets/{TrackGraph-D0s0XMN9.js.map → TrackGraph-CInYslON.js.map} +1 -1
  17. package/dist/assets/{_404Page-WDc2H4Hg.js → _404Page-CuCx1IdG.js} +2 -2
  18. package/dist/assets/{_404Page-WDc2H4Hg.js.map → _404Page-CuCx1IdG.js.map} +1 -1
  19. package/dist/assets/dayjs.min-uJENVlBD.js +362 -0
  20. package/dist/assets/{dayjs.min-CkIlo5Nq.js.map → dayjs.min-uJENVlBD.js.map} +1 -1
  21. package/dist/assets/error-CT8oyr5o.js +2 -0
  22. package/dist/assets/{error-KopW7vt9.js.map → error-CT8oyr5o.js.map} +1 -1
  23. package/dist/assets/{export-Buob1Zpw.js → export-B-6cvWy0.js} +5 -5
  24. package/dist/assets/export-B-6cvWy0.js.map +1 -0
  25. package/dist/assets/fetch-BzpHdKUe.js +3 -0
  26. package/dist/assets/fetch-BzpHdKUe.js.map +1 -0
  27. package/dist/assets/import-zQbiPjPT.js +2 -0
  28. package/dist/assets/import-zQbiPjPT.js.map +1 -0
  29. package/dist/assets/{index-BhADOIu0.js → index-BaGfsKYf.js} +2 -2
  30. package/dist/assets/{index-BhADOIu0.js.map → index-BaGfsKYf.js.map} +1 -1
  31. package/dist/assets/{index-B5vK2Zkg.js → index-JV7EmdVw.js} +3 -3
  32. package/dist/assets/{index-B5vK2Zkg.js.map → index-JV7EmdVw.js.map} +1 -1
  33. package/dist/assets/index-PnYsQg37.js +900 -0
  34. package/dist/assets/index-PnYsQg37.js.map +1 -0
  35. package/dist/assets/polyfills-DqeL3OL8.js +1 -0
  36. package/dist/assets/snapshot-B3ZTvFbe.js +2 -0
  37. package/dist/assets/snapshot-B3ZTvFbe.js.map +1 -0
  38. package/dist/assets/{table-4d-AVR8Z.js → table-7JBU8g1m.js} +17 -17
  39. package/dist/assets/{table-4d-AVR8Z.js.map → table-7JBU8g1m.js.map} +1 -1
  40. package/dist/index.html +3 -3
  41. package/package.json +4 -3
  42. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-DAWLUyKw.js +0 -17
  43. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-DAWLUyKw.js.map +0 -1
  44. package/dist/assets/DevicePage-tRz2IA8K.js +0 -49
  45. package/dist/assets/DevicePage-tRz2IA8K.js.map +0 -1
  46. package/dist/assets/HomePage-DvhjaXqH.js +0 -119
  47. package/dist/assets/ImportPage-Gwj1_Wz3.js +0 -2
  48. package/dist/assets/ImportPage-Gwj1_Wz3.js.map +0 -1
  49. package/dist/assets/PreviewSharePage-Hyw0Tb6U.js +0 -2
  50. package/dist/assets/SelectorPage-D1_qZf8a.js.map +0 -1
  51. package/dist/assets/SnapshotPage-CJ6fnVIZ.js +0 -279
  52. package/dist/assets/SnapshotPage-CJ6fnVIZ.js.map +0 -1
  53. package/dist/assets/dayjs.min-CkIlo5Nq.js +0 -362
  54. package/dist/assets/error-KopW7vt9.js +0 -2
  55. package/dist/assets/export-Buob1Zpw.js.map +0 -1
  56. package/dist/assets/fetch-2UM4nFb0.js +0 -332
  57. package/dist/assets/fetch-2UM4nFb0.js.map +0 -1
  58. package/dist/assets/import-ChO_D4YK.js +0 -2
  59. package/dist/assets/import-ChO_D4YK.js.map +0 -1
  60. package/dist/assets/index-CE_5kTG8.js +0 -2
  61. package/dist/assets/index-CE_5kTG8.js.map +0 -1
  62. package/dist/assets/index-CO1qYhnZ.js +0 -567
  63. package/dist/assets/index-CO1qYhnZ.js.map +0 -1
  64. package/dist/assets/polyfills-qB0P6p8B.js +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.1729692768932/files/dist/assets/polyfills-qB0P6p8B.js"></script>
4
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1729873789619/files/dist/assets/polyfills-DqeL3OL8.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.1729692768932/files/dist/assets/index-CO1qYhnZ.js"></script>
16
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1729692768932/files/dist/assets/index-DlhjoJf3.css">
15
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1729873789619/files/dist/assets/index-PnYsQg37.js"></script>
16
+ <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1729873789619/files/dist/assets/index-DlhjoJf3.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.1729692768932",
3
+ "version": "0.0.1729873789619",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -45,6 +45,7 @@
45
45
  "naive-ui": "2.40.1",
46
46
  "normalize.css": "8.0.1",
47
47
  "p-limit": "6.1.0",
48
+ "pinia": "2.2.4",
48
49
  "prettier": "3.3.3",
49
50
  "qrcode": "1.5.4",
50
51
  "sass": "1.79.4",
@@ -63,8 +64,8 @@
63
64
  "vue-router": "4.4.5"
64
65
  },
65
66
  "volta": {
66
- "node": "22.7.0",
67
- "pnpm": "9.12.1"
67
+ "node": "22.10.0",
68
+ "pnpm": "9.12.2"
68
69
  },
69
70
  "simple-git-hooks": {
70
71
  "pre-commit": "pnpm exec lint-staged"
@@ -1,17 +0,0 @@
1
- import{o as ee,d as K,m as F,b as te,a as oe}from"./fetch-2UM4nFb0.js";import{ah as ne,d as se,aK as ie,a4 as ae,h as b,u as Z,ab as le,m as B,q as re,t as I,aq as L,v as m,P as T,w as ue,ae as pe,aL as ce,aM as de,a as j,b as S,e as O,j as q,r as ve,a1 as ge,aN as fe,y as R,E as r,Z as E,L as h,$ as me,J as he,W as P,X as U,C as x,D as A,G as p,F as s,K as d,O as _,au as k,aC as D,aG as we,aF as $}from"./index-CO1qYhnZ.js";import{a as M,_ as xe,N as ke}from"./index-B5vK2Zkg.js";import{h as Ce,i as Pe,f as _e,g as ye}from"./export-Buob1Zpw.js";import{t as Be,a as H,v as Fe,u as y,_ as be}from"./dayjs.min-CkIlo5Nq.js";const Se={iconSize:"22px"};function Te(o){const{fontSize:t,warningColor:u}=o;return Object.assign(Object.assign({},Se),{fontSize:t,iconColor:u})}const Ee=ne({name:"Popconfirm",common:se,peers:{Button:ie,Popover:Be},self:Te}),G=ae("n-popconfirm"),X={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},V=de(X),Ne=b({name:"NPopconfirmPanel",props:X,setup(o){const{localeRef:t}=M("Popconfirm"),{inlineThemeDisabled:u}=Z(),{mergedClsPrefixRef:l,mergedThemeRef:w,props:v}=le(G),C=B(()=>{const{common:{cubicBezierEaseInOut:a},self:{fontSize:g,iconSize:n,iconColor:e}}=w.value;return{"--n-bezier":a,"--n-font-size":g,"--n-icon-size":n,"--n-icon-color":e}}),i=u?re("popconfirm-panel",void 0,C,v):void 0;return Object.assign(Object.assign({},M("Popconfirm")),{mergedClsPrefix:l,cssVars:u?void 0:C,localizedPositiveText:B(()=>o.positiveText||t.value.positiveText),localizedNegativeText:B(()=>o.negativeText||t.value.negativeText),positiveButtonProps:I(v,"positiveButtonProps"),negativeButtonProps:I(v,"negativeButtonProps"),handlePositiveClick(a){o.onPositiveClick(a)},handleNegativeClick(a){o.onNegativeClick(a)},themeClass:i==null?void 0:i.themeClass,onRender:i==null?void 0:i.onRender})},render(){var o;const{mergedClsPrefix:t,showIcon:u,$slots:l}=this,w=L(l.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&m(T,Object.assign({size:"small",onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&m(T,Object.assign({size:"small",type:"primary",onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(o=this.onRender)===null||o===void 0||o.call(this),m("div",{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},ue(l.default,v=>u||v?m("div",{class:`${t}-popconfirm__body`},u?m("div",{class:`${t}-popconfirm__icon`},L(l.icon,()=>[m(pe,{clsPrefix:t},{default:()=>m(ce,null)})])):null,v):null),w?m("div",{class:[`${t}-popconfirm__action`]},w):null)}}),ze=j("popconfirm",[S("body",`
2
- font-size: var(--n-font-size);
3
- display: flex;
4
- align-items: center;
5
- flex-wrap: nowrap;
6
- position: relative;
7
- `,[S("icon",`
8
- display: flex;
9
- font-size: var(--n-icon-size);
10
- color: var(--n-icon-color);
11
- transition: color .3s var(--n-bezier);
12
- margin: 0 8px 0 0;
13
- `)]),S("action",`
14
- display: flex;
15
- justify-content: flex-end;
16
- `,[O("&:not(:first-child)","margin-top: 8px"),j("button",[O("&:not(:last-child)","margin-right: 8px;")])])]),Ie=Object.assign(Object.assign(Object.assign({},q.props),Fe),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:"click"},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),Le=b({name:"Popconfirm",props:Ie,__popover__:!0,setup(o){const{mergedClsPrefixRef:t}=Z(),u=q("Popconfirm","-popconfirm",ze,Ee,o,t),l=ve(null);function w(i){var a;if(!(!((a=l.value)===null||a===void 0)&&a.getMergedShow()))return;const{onPositiveClick:g,"onUpdate:show":n}=o;Promise.resolve(g?g(i):!0).then(e=>{var c;e!==!1&&((c=l.value)===null||c===void 0||c.setShow(!1),n&&R(n,!1))})}function v(i){var a;if(!(!((a=l.value)===null||a===void 0)&&a.getMergedShow()))return;const{onNegativeClick:g,"onUpdate:show":n}=o;Promise.resolve(g?g(i):!0).then(e=>{var c;e!==!1&&((c=l.value)===null||c===void 0||c.setShow(!1),n&&R(n,!1))})}return ge(G,{mergedThemeRef:u,mergedClsPrefixRef:t,props:o}),{setShow(i){var a;(a=l.value)===null||a===void 0||a.setShow(i)},syncPosition(){var i;(i=l.value)===null||i===void 0||i.syncPosition()},mergedTheme:u,popoverInstRef:l,handlePositiveClick:w,handleNegativeClick:v}},render(){const{$slots:o,$props:t,mergedTheme:u}=this;return m(H,ee(t,V,{theme:u.peers.Popover,themeOverrides:u.peerOverrides.Popover,internalExtraClass:["popconfirm"],ref:"popoverInstRef"}),{trigger:o.activator||o.trigger,default:()=>{const l=fe(t,V);return m(Ne,Object.assign(Object.assign({},l),{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),o)}})}}),J=({title:o="批量分享链接",content:t=""})=>{K.success({title:o,style:{width:"800px"},content(){return r(xe,{type:"textarea",autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;",class:"gkd_code"},value:t},null)},positiveText:"复制",onPositiveClick(){return navigator.clipboard.writeText(t).then(()=>{F.success("复制成功")}).catch(()=>{F.success("复制失败")}),!1}})},je=b(()=>()=>r(me,{checked:E.ignoreUploadWarn,onUpdateChecked:o=>{E.ignoreUploadWarn=o},focusable:!1},{default:()=>[h("不再提醒")]})),W=async()=>{if(!E.ignoreUploadWarn)return new Promise((o,t)=>{K.warning({title:"生成分享链接须知",content(){return r("div",null,[r("div",null,[h("所有快照上传分享链接均为公开链接,任何人均可访问。")]),r("div",null,[h("请确保快照不包含隐私信息,请勿分享任何敏感信息。")]),r(je,{class:"mt-10px"},null)])},closable:!1,closeOnEsc:!1,maskClosable:!1,positiveText:"继续上传",negativeText:"取消分享",onPositiveClick:o,onNegativeClick:t})})},Oe={flex:"","gap-16px":""},Re=["href"],Ve=b({__name:"ActionCard",props:{snapshot:{},onDelete:{type:Function,default:te},showPreview:{type:Boolean,default:!0},showExport:{type:Boolean,default:!0},showDelete:{type:Boolean,default:!0},showShare:{type:Boolean,default:!0}},setup(o){const t=o,u=he(),l=y(async()=>Ce(await P.getItem(t.snapshot.id))),w=y(async()=>Pe(await P.getItem(t.snapshot.id))),v=B(()=>u.resolve({name:"snapshot",params:{snapshotId:t.snapshot.id}}).href),C=y(async()=>{await W();const n=await _e(await P.getItem(t.snapshot.id));J({title:"分享链接",content:U(n)})}),i=y(async()=>{await W();const n=await ye(await P.getItem(t.snapshot.id));J({title:"分享链接",content:location.origin+`/i/${n}`})}),a=async()=>{await P.removeItem(t.snapshot.id),await oe(500),t.onDelete()},g=async n=>navigator.clipboard.writeText(n).then(()=>{F.success("复制成功")}).catch(()=>{F.success("复制失败")});return(n,e)=>{const c=ke,f=T,N=be,z=H,Q=Le;return x(),A("div",Oe,[n.showPreview?(x(),A("a",{key:0,flex:"",target:"_blank",href:p(v)},[r(f,{text:"",title:"查看"},{icon:s(()=>[r(c,{size:""},{default:s(()=>e[2]||(e[2]=[d("svg",{viewBox:"0 0 1024 1024"},[d("path",{d:"M549.973333 128 633.6 145.066667 474.026667 896 390.4 878.933333 549.973333 128M835.84 512 682.666667 358.826667 682.666667 238.08 956.586667 512 682.666667 785.493333 682.666667 664.746667 835.84 512M67.413333 512 341.333333 238.08 341.333333 358.826667 188.16 512 341.333333 664.746667 341.333333 785.493333 67.413333 512Z"})],-1)])),_:1})]),_:1})],8,Re)):_("",!0),n.showExport?(x(),k(z,{key:1},{trigger:s(()=>[r(f,{text:""},{icon:s(()=>[r(c,null,{default:s(()=>e[3]||(e[3]=[d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},[d("g",{fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[d("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}),d("path",{d:"M7 11l5 5l5-5"}),d("path",{d:"M12 4v12"})])],-1)])),_:1})]),_:1})]),default:s(()=>[r(N,{vertical:""},{default:s(()=>[r(f,{onClick:p(w).invoke,loading:p(w).loading},{default:s(()=>e[4]||(e[4]=[h(" 下载-快照 ")])),_:1},8,["onClick","loading"]),r(f,{onClick:p(l).invoke,loading:p(l).loading},{default:s(()=>e[5]||(e[5]=[h(" 下载-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1})):_("",!0),n.showShare?(x(),k(z,{key:2},{trigger:s(()=>[r(f,{text:""},{icon:s(()=>[r(c,null,{default:s(()=>e[6]||(e[6]=[d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},[d("path",{d:"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81c1.66 0 3-1.34 3-3s-1.34-3-3-3s-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65c0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z",fill:"currentColor"})],-1)])),_:1})]),_:1})]),default:s(()=>[r(N,{vertical:""},{default:s(()=>[p(D)[n.snapshot.id]?(x(),k(f,{key:0,onClick:e[0]||(e[0]=Y=>g(p(we)(p(D)[n.snapshot.id])))},{default:s(()=>e[7]||(e[7]=[h(" 复制链接-快照 ")])),_:1})):(x(),k(f,{key:1,onClick:p(i).invoke,loading:p(i).loading},{default:s(()=>e[8]||(e[8]=[h(" 生成链接-快照 ")])),_:1},8,["onClick","loading"])),p($)[n.snapshot.id]?(x(),k(f,{key:2,onClick:e[1]||(e[1]=Y=>g(p(U)(p($)[n.snapshot.id])))},{default:s(()=>e[9]||(e[9]=[h(" 复制链接-图片 ")])),_:1})):(x(),k(f,{key:3,onClick:p(C).invoke,loading:p(C).loading},{default:s(()=>e[10]||(e[10]=[h(" 生成链接-图片 ")])),_:1},8,["onClick","loading"]))]),_:1})]),_:1})):_("",!0),n.showDelete?(x(),k(Q,{key:3,onPositiveClick:a},{trigger:s(()=>[r(f,{text:"",title:"删除"},{icon:s(()=>[r(c,null,{default:s(()=>e[11]||(e[11]=[d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},[d("g",{fill:"none"},[d("path",{d:"M12 1.75a3.25 3.25 0 0 1 3.245 3.066L15.25 5h5.25a.75.75 0 0 1 .102 1.493L20.5 6.5h-.796l-1.28 13.02a2.75 2.75 0 0 1-2.561 2.474l-.176.006H8.313a2.75 2.75 0 0 1-2.714-2.307l-.023-.174L4.295 6.5H3.5a.75.75 0 0 1-.743-.648L2.75 5.75a.75.75 0 0 1 .648-.743L3.5 5h5.25A3.25 3.25 0 0 1 12 1.75zm6.197 4.75H5.802l1.267 12.872a1.25 1.25 0 0 0 1.117 1.122l.127.006h7.374c.6 0 1.109-.425 1.225-1.002l.02-.126L18.196 6.5zM13.75 9.25a.75.75 0 0 1 .743.648L14.5 10v7a.75.75 0 0 1-1.493.102L13 17v-7a.75.75 0 0 1 .75-.75zm-3.5 0a.75.75 0 0 1 .743.648L11 10v7a.75.75 0 0 1-1.493.102L9.5 17v-7a.75.75 0 0 1 .75-.75zm1.75-6a1.75 1.75 0 0 0-1.744 1.606L10.25 5h3.5A1.75 1.75 0 0 0 12 3.25z",fill:"currentColor"})])],-1)])),_:1})]),_:1})]),default:s(()=>[e[12]||(e[12]=h(" 是否删除快照? "))]),_:1})):_("",!0)])}}});export{Ve as _,J as s,W as w};
17
- //# sourceMappingURL=ActionCard.vue_vue_type_script_setup_true_lang-DAWLUyKw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionCard.vue_vue_type_script_setup_true_lang-DAWLUyKw.js","sources":["../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/src/interface.mjs","../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/src/PopconfirmPanel.mjs","../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.40.1_vue@3.5.11_typescript@5.6.3_/node_modules/naive-ui/es/popconfirm/src/Popconfirm.mjs","../../src/utils/dialog.tsx","../../src/components/ActionCard.vue"],"sourcesContent":["export default {\n iconSize: '22px'\n};","import { buttonLight } from \"../../button/styles/index.mjs\";\nimport { popoverLight } from \"../../popover/styles/index.mjs\";\nimport { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nexport function self(vars) {\n const {\n fontSize,\n warningColor\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n fontSize,\n iconColor: warningColor\n });\n}\nconst popconfirmLight = createTheme({\n name: 'Popconfirm',\n common: commonLight,\n peers: {\n Button: buttonLight,\n Popover: popoverLight\n },\n self\n});\nexport default popconfirmLight;","import { createInjectionKey } from \"../../_utils/index.mjs\";\nexport const popconfirmInjectionKey = createInjectionKey('n-popconfirm');","import { computed, defineComponent, h, inject, toRef } from 'vue';\nimport { NButton } from \"../../button/index.mjs\";\nimport { NBaseIcon } from \"../../_internal/index.mjs\";\nimport { WarningIcon } from \"../../_internal/icons/index.mjs\";\nimport { useConfig, useLocale, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { keysOf, resolveSlot, resolveWrappedSlot } from \"../../_utils/index.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nexport const panelProps = {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n onPositiveClick: {\n type: Function,\n required: true\n },\n onNegativeClick: {\n type: Function,\n required: true\n }\n};\nexport const panelPropKeys = keysOf(panelProps);\nexport default defineComponent({\n name: 'NPopconfirmPanel',\n props: panelProps,\n setup(props) {\n const {\n localeRef\n } = useLocale('Popconfirm');\n const {\n inlineThemeDisabled\n } = useConfig();\n const {\n mergedClsPrefixRef,\n mergedThemeRef,\n props: popconfirmProps\n } = inject(popconfirmInjectionKey);\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n fontSize,\n iconSize,\n iconColor\n }\n } = mergedThemeRef.value;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-font-size': fontSize,\n '--n-icon-size': iconSize,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('popconfirm-panel', undefined, cssVarsRef, popconfirmProps) : undefined;\n return Object.assign(Object.assign({}, useLocale('Popconfirm')), {\n mergedClsPrefix: mergedClsPrefixRef,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n localizedPositiveText: computed(() => {\n return props.positiveText || localeRef.value.positiveText;\n }),\n localizedNegativeText: computed(() => {\n return props.negativeText || localeRef.value.negativeText;\n }),\n positiveButtonProps: toRef(popconfirmProps, 'positiveButtonProps'),\n negativeButtonProps: toRef(popconfirmProps, 'negativeButtonProps'),\n handlePositiveClick(e) {\n props.onPositiveClick(e);\n },\n handleNegativeClick(e) {\n props.onNegativeClick(e);\n },\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 var _a;\n const {\n mergedClsPrefix,\n showIcon,\n $slots\n } = this;\n const actionContentNode = resolveSlot($slots.action, () => this.negativeText === null && this.positiveText === null ? [] : [this.negativeText !== null && h(NButton, Object.assign({\n size: \"small\",\n onClick: this.handleNegativeClick\n }, this.negativeButtonProps), {\n default: () => this.localizedNegativeText\n }), this.positiveText !== null && h(NButton, Object.assign({\n size: \"small\",\n type: \"primary\",\n onClick: this.handlePositiveClick\n }, this.positiveButtonProps), {\n default: () => this.localizedPositiveText\n })]);\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__panel`, this.themeClass],\n style: this.cssVars\n }, resolveWrappedSlot($slots.default, children => showIcon || children ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__body`\n }, showIcon ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__icon`\n }, resolveSlot($slots.icon, () => [h(NBaseIcon, {\n clsPrefix: mergedClsPrefix\n }, {\n default: () => h(WarningIcon, null)\n })])) : null, children) : null), actionContentNode ? h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__action`]\n }, actionContentNode) : null);\n }\n});","import { c, cB, cE } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-bezier\n// --n-icon-color\nexport default cB('popconfirm', [cE('body', `\n font-size: var(--n-font-size);\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n position: relative;\n `, [cE('icon', `\n display: flex;\n font-size: var(--n-icon-size);\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n margin: 0 8px 0 0;\n `)]), cE('action', `\n display: flex;\n justify-content: flex-end;\n `, [c('&:not(:first-child)', 'margin-top: 8px'), cB('button', [c('&:not(:last-child)', 'margin-right: 8px;')])])]);","import { defineComponent, h, provide, ref } from 'vue';\nimport { NPopover } from \"../../popover/index.mjs\";\nimport { popoverBaseProps } from \"../../popover/src/Popover.mjs\";\nimport { call, keep, omit } from \"../../_utils/index.mjs\";\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { popconfirmLight } from \"../styles/index.mjs\";\nimport PopconfirmPanel, { panelPropKeys } from \"./PopconfirmPanel.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const popconfirmProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n trigger: {\n type: String,\n default: 'click'\n },\n positiveButtonProps: Object,\n negativeButtonProps: Object,\n onPositiveClick: Function,\n onNegativeClick: Function\n});\nexport default defineComponent({\n name: 'Popconfirm',\n props: popconfirmProps,\n __popover__: true,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig();\n const themeRef = useTheme('Popconfirm', '-popconfirm', style, popconfirmLight, props, mergedClsPrefixRef);\n const popoverInstRef = ref(null);\n function handlePositiveClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onPositiveClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onPositiveClick ? onPositiveClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n function handleNegativeClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onNegativeClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onNegativeClick ? onNegativeClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n provide(popconfirmInjectionKey, {\n mergedThemeRef: themeRef,\n mergedClsPrefixRef,\n props\n });\n const returned = {\n setShow(value) {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(value);\n },\n syncPosition() {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n },\n mergedTheme: themeRef,\n popoverInstRef,\n handlePositiveClick,\n handleNegativeClick\n };\n return returned;\n },\n render() {\n const {\n $slots: slots,\n $props: props,\n mergedTheme\n } = this;\n return h(NPopover, omit(props, panelPropKeys, {\n theme: mergedTheme.peers.Popover,\n themeOverrides: mergedTheme.peerOverrides.Popover,\n internalExtraClass: ['popconfirm'],\n ref: 'popoverInstRef'\n }), {\n trigger: slots.activator || slots.trigger,\n default: () => {\n const panelProps = keep(props, panelPropKeys);\n return h(PopconfirmPanel, Object.assign(Object.assign({}, panelProps), {\n onPositiveClick: this.handlePositiveClick,\n onNegativeClick: this.handleNegativeClick\n }), slots);\n }\n });\n }\n});","import { dialog, message } from './discrete';\nimport { settingsStorage } from './storage';\n\nexport const showTextDLg = ({ title = `批量分享链接`, content = '' }) => {\n dialog.success({\n title,\n style: {\n width: `800px`,\n },\n content() {\n return (\n <NInput\n type=\"textarea\"\n autosize={{\n minRows: 8,\n maxRows: 16,\n }}\n inputProps={{\n style: `white-space: nowrap;`,\n class: `gkd_code`,\n }}\n value={content}\n />\n );\n },\n positiveText: `复制`,\n onPositiveClick() {\n navigator.clipboard\n .writeText(content)\n .then(() => {\n message.success(`复制成功`);\n })\n .catch(() => {\n message.success(`复制失败`);\n });\n return false;\n },\n });\n};\n\nconst NoticeCheckbox = defineComponent(() => {\n return () => {\n return (\n <NCheckbox\n checked={settingsStorage.ignoreUploadWarn}\n onUpdateChecked={(value) => {\n settingsStorage.ignoreUploadWarn = value;\n }}\n focusable={false}\n >\n 不再提醒\n </NCheckbox>\n );\n };\n});\n\nexport const waitShareAgree = async () => {\n if (settingsStorage.ignoreUploadWarn) return;\n return new Promise((resolve, reject) => {\n dialog.warning({\n title: '生成分享链接须知',\n content() {\n return (\n <div>\n <div>所有快照上传分享链接均为公开链接,任何人均可访问。</div>\n <div>请确保快照不包含隐私信息,请勿分享任何敏感信息。</div>\n <NoticeCheckbox class=\"mt-10px\" />\n </div>\n );\n },\n closable: false,\n closeOnEsc: false,\n maskClosable: false,\n positiveText: '继续上传',\n negativeText: '取消分享',\n onPositiveClick: resolve,\n onNegativeClick: reject,\n });\n });\n};\n","<script setup lang=\"tsx\">\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { message } from '@/utils/discrete';\nimport {\n exportSnapshotAsImportId,\n exportSnapshotAsJpg,\n exportSnapshotAsJpgUrl,\n exportSnapshotAsZip,\n} from '@/utils/export';\nimport { buildEmptyFn, delay } from '@/utils/others';\nimport {\n githubJpgStorage,\n importStorage,\n snapshotStorage,\n} from '@/utils/storage';\nimport { useTask } from '@/utils/task';\nimport type { Snapshot } from '@/utils/types';\nimport { getImportUrl, githubUrlToSelfUrl } from '@/utils/url';\n\nconst props = withDefaults(\n defineProps<{\n snapshot: Snapshot;\n onDelete?: () => void;\n showPreview?: boolean;\n showExport?: boolean;\n showDelete?: boolean;\n showShare?: boolean;\n }>(),\n {\n showPreview: true,\n showExport: true,\n showDelete: true,\n showShare: true,\n onDelete: buildEmptyFn,\n },\n);\n\nconst router = useRouter();\n\nconst exportJpg = useTask(async () =>\n exportSnapshotAsJpg((await snapshotStorage.getItem(props.snapshot.id))!),\n);\nconst exportZip = useTask(async () =>\n exportSnapshotAsZip((await snapshotStorage.getItem(props.snapshot.id))!),\n);\n\nconst previewUrl = computed(() => {\n return router.resolve({\n name: 'snapshot',\n params: { snapshotId: props.snapshot.id },\n }).href;\n});\n\nconst exportJpgUrl = useTask(async () => {\n await waitShareAgree();\n const pngUrl = await exportSnapshotAsJpgUrl(\n (await snapshotStorage.getItem(props.snapshot.id))!,\n );\n showTextDLg({\n title: `分享链接`,\n content: githubUrlToSelfUrl(pngUrl),\n });\n});\n\nconst exportZipUrl = useTask(async () => {\n await waitShareAgree();\n const importId = await exportSnapshotAsImportId(\n (await snapshotStorage.getItem(props.snapshot.id))!,\n );\n showTextDLg({\n title: `分享链接`,\n content: location.origin + `/i/${importId}`,\n });\n});\n\nconst deleteSnapshot = async () => {\n await snapshotStorage.removeItem(props.snapshot.id);\n await delay(500);\n props.onDelete();\n};\n\nconst copy = async (content: string) => {\n return navigator.clipboard\n .writeText(content)\n .then(() => {\n message.success(`复制成功`);\n })\n .catch(() => {\n message.success(`复制失败`);\n });\n};\n</script>\n<template>\n <div flex gap-16px>\n <a v-if=\"showPreview\" flex target=\"_blank\" :href=\"previewUrl\">\n <NButton text title=\"查看\">\n <template #icon>\n <NIcon size=\"\">\n <svg viewBox=\"0 0 1024 1024\">\n <path\n d=\"M549.973333 128 633.6 145.066667 474.026667 896 390.4 878.933333 549.973333 128M835.84 512 682.666667 358.826667 682.666667 238.08 956.586667 512 682.666667 785.493333 682.666667 664.746667 835.84 512M67.413333 512 341.333333 238.08 341.333333 358.826667 188.16 512 341.333333 664.746667 341.333333 785.493333 67.413333 512Z\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </a>\n\n <NPopover v-if=\"showExport\">\n <template #trigger>\n <NButton text>\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 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\"></path>\n <path d=\"M7 11l5 5l5-5\"></path>\n <path d=\"M12 4v12\"></path>\n </g>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton @click=\"exportZip.invoke\" :loading=\"exportZip.loading\">\n 下载-快照\n </NButton>\n <NButton @click=\"exportJpg.invoke\" :loading=\"exportJpg.loading\">\n 下载-图片\n </NButton>\n </NSpace>\n </NPopover>\n\n <NPopover v-if=\"showShare\">\n <template #trigger>\n <NButton text>\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 24 24\"\n >\n <path\n d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81c1.66 0 3-1.34 3-3s-1.34-3-3-3s-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65c0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton\n v-if=\"importStorage[snapshot.id]\"\n @click=\"copy(getImportUrl(importStorage[snapshot.id]))\"\n >\n 复制链接-快照\n </NButton>\n <NButton\n v-else\n @click=\"exportZipUrl.invoke\"\n :loading=\"exportZipUrl.loading\"\n >\n 生成链接-快照\n </NButton>\n <NButton\n v-if=\"githubJpgStorage[snapshot.id]\"\n @click=\"copy(githubUrlToSelfUrl(githubJpgStorage[snapshot.id]))\"\n >\n 复制链接-图片\n </NButton>\n <NButton\n v-else\n @click=\"exportJpgUrl.invoke\"\n :loading=\"exportJpgUrl.loading\"\n >\n 生成链接-图片\n </NButton>\n </NSpace>\n </NPopover>\n\n <NPopconfirm v-if=\"showDelete\" @positive-click=\"deleteSnapshot\">\n 是否删除快照?\n <template #trigger>\n <NButton text title=\"删除\">\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 24 24\"\n >\n <g fill=\"none\">\n <path\n d=\"M12 1.75a3.25 3.25 0 0 1 3.245 3.066L15.25 5h5.25a.75.75 0 0 1 .102 1.493L20.5 6.5h-.796l-1.28 13.02a2.75 2.75 0 0 1-2.561 2.474l-.176.006H8.313a2.75 2.75 0 0 1-2.714-2.307l-.023-.174L4.295 6.5H3.5a.75.75 0 0 1-.743-.648L2.75 5.75a.75.75 0 0 1 .648-.743L3.5 5h5.25A3.25 3.25 0 0 1 12 1.75zm6.197 4.75H5.802l1.267 12.872a1.25 1.25 0 0 0 1.117 1.122l.127.006h7.374c.6 0 1.109-.425 1.225-1.002l.02-.126L18.196 6.5zM13.75 9.25a.75.75 0 0 1 .743.648L14.5 10v7a.75.75 0 0 1-1.493.102L13 17v-7a.75.75 0 0 1 .75-.75zm-3.5 0a.75.75 0 0 1 .743.648L11 10v7a.75.75 0 0 1-1.493.102L9.5 17v-7a.75.75 0 0 1 .75-.75zm1.75-6a1.75 1.75 0 0 0-1.744 1.606L10.25 5h3.5A1.75 1.75 0 0 0 12 3.25z\"\n fill=\"currentColor\"\n ></path>\n </g>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </template>\n </NPopconfirm>\n </div>\n</template>\n"],"names":["commonVars","self","vars","fontSize","warningColor","popconfirmLight","createTheme","commonLight","buttonLight","popoverLight","popconfirmInjectionKey","createInjectionKey","panelProps","panelPropKeys","keysOf","PopconfirmPanel","defineComponent","props","localeRef","useLocale","inlineThemeDisabled","useConfig","mergedClsPrefixRef","mergedThemeRef","popconfirmProps","inject","cssVarsRef","computed","cubicBezierEaseInOut","iconSize","iconColor","themeClassHandle","useThemeClass","toRef","e","_a","mergedClsPrefix","showIcon","$slots","actionContentNode","resolveSlot","h","NButton","resolveWrappedSlot","children","NBaseIcon","WarningIcon","style","cB","cE","c","useTheme","popoverBaseProps","__unplugin_components_4","themeRef","popoverInstRef","ref","handlePositiveClick","onPositiveClick","onUpdateShow","value","call","handleNegativeClick","onNegativeClick","provide","slots","mergedTheme","NPopover","omit","keep","showTextDLg","title","content","dialog","success","width","_createVNode","_resolveComponent","minRows","maxRows","class","positiveText","navigator","clipboard","writeText","then","message","catch","NoticeCheckbox","settingsStorage","ignoreUploadWarn","default","_createTextVNode","waitShareAgree","Promise","resolve","reject","warning","closable","closeOnEsc","maskClosable","negativeText","__props","router","useRouter","exportJpg","useTask","exportSnapshotAsJpg","snapshotStorage","getItem","snapshot","id","exportZip","exportSnapshotAsZip","previewUrl","name","params","snapshotId","href","exportJpgUrl","pngUrl","exportSnapshotAsJpgUrl","githubUrlToSelfUrl","exportZipUrl","importId","exportSnapshotAsImportId","location","origin","deleteSnapshot","removeItem","delay","onDelete","copy"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -1,49 +0,0 @@
1
- import{A as b,h as ie,Q as le,V as re,B as pe,R as $,T as ue,C as D,D as J,E as a,F as r,G as s,H as O,K as u,I as K,M as ce,O as de,J as me,W as L,aI as P,P as H,L as k,_ as fe,Y as ge,$ as ve}from"./index-CO1qYhnZ.js";import{h as we,m as c,a as he}from"./fetch-2UM4nFb0.js";import{e as W}from"./error-KopW7vt9.js";import{u as ke,_ as ye,a as be}from"./table-4d-AVR8Z.js";import{u as B,w as Se,_ as Q,b as _e}from"./dayjs.min-CkIlo5Nq.js";import{p as xe}from"./index-CE_5kTG8.js";import{b as Ce,c as Ne}from"./index-BhADOIu0.js";import{l as Ie,_ as Re,N as Pe}from"./index-B5vK2Zkg.js";const Be=E=>{const S=b(E),_=async(n,f={})=>{var z;if(!S.value)throw new Error("origin must exist");const C=new URL("/api/"+n,S.value);Object.entries(f.query||{}).forEach(([g,T])=>{T!==void 0&&C.searchParams.set(g,String(T))});const d=await we(C,f.init).catch(g=>{throw c.error("网络错误:/"+n),g});if(!d.ok)throw c.error("接口错误:/"+n+":"+d.status),d;if((z=d.headers.get("Content-Type"))!=null&&z.includes("application/json")){const g=await d.clone().json();if(g.__error)throw c.error(g.message),d}return d},o=async(...n)=>await(await _(...n)).json(),x=async(...n)=>await(await _(...n)).blob(),m=async(...n)=>await(await _(...n)).arrayBuffer();return{origin:S,api:{device:async()=>o("device"),snapshot:async n=>o("snapshot",{query:n}),screenshot:async n=>m("screenshot",{query:n}),captureSnapshot:async()=>o("captureSnapshot"),snapshots:async()=>o("snapshots"),updateSubsApps:async n=>x("updateSubsApps",{init:{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}}}),updateSubscription:async n=>x("updateSubscription",{init:{method:"POST",body:JSON.stringify({...n,id:-1,name:"内存订阅",version:0}),headers:{"Content-Type":"application/json"}}}),execSelector:async n=>o("execSelector",{init:{method:"POST",body:JSON.stringify({...n,value:n.selector}),headers:{"Content-Type":"application/json"}}})}}},ze={flex:"","gap-10px":"","flex-items-center":""},Te={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},Ue={flex:"","items-center":"","gap-24px":""},Ve={href:"/",flex:"","ml-12px":"",title:"首页"},Ae={"whitespace-nowrap":""},$e=ie({__name:"DevicePage",setup(E){const S=me(),_=Ce("新设备"),{api:o,origin:x}=Be(),m=Ne("device_link",""),w=b(),n=B(async()=>{m.value&&(x.value=W(()=>new URL(m.value.trim()),()=>"非法设备地址").origin,m.value=x.value,w.value=await o.device())});le(async()=>{await he(500),re(m.value)&&n.invoke()});const f=b([]);pe(async()=>{if(!w.value)return;_.value="已连接 "+w.value.manufacturer;const e=await o.snapshots();e.sort((t,p)=>p.id-t.id),f.value=e,I.value=""});const C=B(async()=>{const e=await o.captureSnapshot(),t=await o.screenshot({id:e.id});await L.setItem(e.id,e),await P.setItem(e.id,t),c.success("保存快照成功");const p=await o.snapshots();p.sort((h,R)=>R.id-h.id),f.value=p}),d=B(async()=>{const e=(await o.snapshots()).map(l=>l.id),t=new Set((await P.keys()).map(l=>parseInt(l))),p=e.filter(l=>!t.has(l));if(p.length==0){c.success("没有新记录可导入");return}let h=0;const R=xe(3);await Promise.all(p.map(l=>R(async()=>{const[A,q]=await Promise.all([o.snapshot({id:l}),o.screenshot({id:l})]);A.nodes&&(await Promise.all([L.setItem(l,A),P.setItem(l,q)]),h++)}))),c.success(`导入${h}条新记录`)}),{activityIdCol:z,appIdCol:g,appNameCol:T,ctimeCol:j,appVersionCodeCol:X,appVersionNameCol:Y,resetColWidth:Z}=ke(),ee=e=>{e.columnKey==j.key&&(j.sortOrder=e.order)},G=Se(async e=>{if(await L.hasItem(e.id)||await L.setItem(e.id,await o.snapshot({id:e.id})),!await P.hasItem(e.id)){const t=await o.screenshot({id:e.id});await P.setItem(e.id,t)}window.open(S.resolve({name:"snapshot",params:{snapshotId:e.id}}).href)},e=>e.id),te=[j,T,g,X,Y,z,{key:"actions",title:"操作",fixed:"right",width:"120px",render(e){return a(Q,{size:"small"},{default:()=>[a(H,{size:"small",loading:G.loading[e.id],onClick:()=>G.invoke(e)},{default:()=>[k("查看")]})]})}}],N=$({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:e=>{N.page=e},onUpdatePageSize:e=>{N.pageSize=e,N.page=1}});ue(N,Z);const U=b(!1),I=b(""),F=B(async()=>{const e=W(()=>Ie.parse(I.value.trim()));if(e){if(e.categories||e.globalGroups||e.apps)await o.updateSubscription(e);else if(typeof e.id=="string")await o.updateSubscription({apps:[e]});else if(Array.isArray(e)&&typeof e[0].id=="string")await o.updateSubscription({apps:e});else if(typeof e.key=="number")await o.updateSubscription({globalGroups:[e]});else if(Array.isArray(e)&&typeof e[0].key=="number")await o.updateSubscription({globalGroups:e});else{c.error("无法识别的订阅文本");return}c.success("修改成功")}}),V=b(!1),se=[{label:"仅查询",value:void 0},{value:"click",label:"click"},{value:"clickNode",label:"clickNode"},{value:"clickCenter",label:"clickCenter"},{value:"back",label:"back"},{value:"longClick",label:"longClick"},{value:"longClickNode",label:"longClickNode"},{value:"longClickCenter",label:"longClickCenter"}],v=$({selector:"",action:"click",quickFind:!1}),M=B(async()=>{const e=await o.execSelector({...v,fastQuery:v.quickFind});if(e.message){c.success("操作成功:"+e.message);return}e.action?c.success((e.result?"操作成功:":"操作失败")+e.action):!e.action&&e.result&&c.success("查询成功")}),ne=`
2
- 请输入订阅文本(JSON5语法):
3
- 示例1-更新单个应用的规则:
4
- {
5
- id: 'appId',
6
- groups: []
7
- }
8
-
9
- 示例2-更新多个应用的规则:
10
- [
11
- {
12
- id: 'appId1',
13
- groups: []
14
- },
15
- {
16
- id: 'appId2',
17
- groups: []
18
- }
19
- ]
20
-
21
- 示例3-更新全局规则(1.7.0):
22
- {
23
- name: '全局规则-1',
24
- key: 0,
25
- rules: []
26
- }
27
-
28
- 示例3-更新多个全局规则(1.7.0):
29
- [
30
- {
31
- name: '全局规则-1',
32
- key: 0,
33
- rules: []
34
- },
35
- {
36
- name: '全局规则-2',
37
- key: 1,
38
- rules: []
39
- }
40
- ]
41
-
42
- 示例4-更新整个订阅(1.7.0):
43
- {
44
- apps: [],
45
- globalGroups: [],
46
- categories: [],
47
- }
48
- `.trim();return(e,t)=>{const p=Re,h=fe,R=ve,l=Q,A=be,q=Pe,y=H,oe=_e,ae=ye;return D(),J(K,null,[a(h,{show:s(U),"onUpdate:show":t[1]||(t[1]=i=>O(U)?U.value=i:null),preset:"dialog",style:{width:"800px"},title:"修改内存订阅","positive-text":"确认",positiveButtonProps:{loading:s(F).loading,onClick(){s(F).invoke()}}},{default:r(()=>[a(p,{value:s(I),"onUpdate:value":t[0]||(t[0]=i=>O(I)?I.value=i:null),disabled:s(F).loading,type:"textarea",class:"gkd_code",autosize:{minRows:20,maxRows:25},placeholder:s(ne)},null,8,["value","disabled","placeholder"])]),_:1},8,["show","positiveButtonProps"]),a(h,{show:s(V),"onUpdate:show":t[5]||(t[5]=i=>O(V)?V.value=i:null),preset:"dialog",style:{width:"800px"},title:"执行选择器","positive-text":"确认",positiveButtonProps:{loading:s(M).loading,onClick(){s(M).invoke()}}},{default:r(()=>[a(p,{value:s(v).selector,"onUpdate:value":t[2]||(t[2]=i=>s(v).selector=i),disabled:s(M).loading,type:"textarea",class:"gkd_code",autosize:{minRows:4,maxRows:10},placeholder:"请输入合法的选择器"},null,8,["value","disabled"]),t[12]||(t[12]=u("div",{"h-15px":""},null,-1)),a(l,null,{default:r(()=>[a(R,{checked:s(v).quickFind,"onUpdate:checked":t[3]||(t[3]=i=>s(v).quickFind=i)},{default:r(()=>t[9]||(t[9]=[k(" 快速查找 ")])),_:1},8,["checked"]),t[10]||(t[10]=u("a",{href:"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind",target:"_blank",rel:"noopener noreferrer"}," 查找说明 ",-1))]),_:1}),t[13]||(t[13]=u("div",{"h-10px":""},null,-1)),u("div",ze,[a(A,{value:s(v).action,"onUpdate:value":t[4]||(t[4]=i=>s(v).action=i),options:se,class:"w-150px"},null,8,["value"]),t[11]||(t[11]=u("a",{href:"https://gkd.li/api/interfaces/RawRuleProps#action",target:"_blank",rel:"noopener noreferrer"}," 操作说明 ",-1))])]),_:1},8,["show","positiveButtonProps"]),u("div",Te,[u("div",Ue,[u("a",Ve,[a(y,{text:""},{icon:r(()=>[a(q,{size:24},{default:r(()=>t[14]||(t[14]=[u("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},[u("path",{d:"M16.612 2.214a1.01 1.01 0 0 0-1.242 0L1 13.419l1.243 1.572L4 13.621V26a2.004 2.004 0 0 0 2 2h20a2.004 2.004 0 0 0 2-2V13.63L29.757 15L31 13.428zM18 26h-4v-8h4zm2 0v-8a2.002 2.002 0 0 0-2-2h-4a2.002 2.002 0 0 0-2 2v8H6V12.062l10-7.79l10 7.8V26z",fill:"currentColor"})],-1)])),_:1})]),_:1})]),a(oe,null,{default:r(()=>[a(p,{value:s(m),"onUpdate:value":t[6]||(t[6]=i=>O(m)?m.value=i:null),placeholder:"请输入设备地址",style:{width:"200px"},onKeyup:ge(s(n).invoke,["enter"])},null,8,["value","onKeyup"]),a(y,{onClick:s(n).invoke,loading:s(n).loading},{default:r(()=>t[15]||(t[15]=[k(" 刷新连接 ")])),_:1},8,["onClick","loading"])]),_:1}),s(w)?(D(),J(K,{key:0},[u("div",Ae,ce(`已连接 ${s(w).manufacturer} Android ${s(w).release}`),1),a(y,{onClick:s(C).invoke,loading:s(C).loading},{default:r(()=>t[16]||(t[16]=[k(" 快照 ")])),_:1},8,["onClick","loading"]),a(y,{onClick:s(d).invoke,loading:s(d).loading},{default:r(()=>t[17]||(t[17]=[k(" 下载设备所有快照 ")])),_:1},8,["onClick","loading"]),a(y,{onClick:t[7]||(t[7]=i=>U.value=!0)},{default:r(()=>t[18]||(t[18]=[k(" 修改内存订阅 ")])),_:1}),a(y,{onClick:t[8]||(t[8]=i=>V.value=!0)},{default:r(()=>t[19]||(t[19]=[k(" 执行选择器 ")])),_:1})],64)):de("",!0)]),a(ae,{striped:"",flexHeight:"",data:s(f),columns:te,pagination:s(N),"onUpdate:sorter":ee,size:"small",class:"flex-1",scrollX:1200},null,8,["data","pagination"])])],64)}}});export{$e as default};
49
- //# sourceMappingURL=DevicePage-tRz2IA8K.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevicePage-tRz2IA8K.js","sources":["../../src/utils/api.ts","../../src/views/DevicePage.vue"],"sourcesContent":["import { message } from './discrete';\nimport { enhanceFetch } from './fetch';\nimport type { Device, RpcError, Snapshot } from './types';\n\ntype RpcOptions = {\n query?: Record<string, unknown>;\n init?: RequestInit;\n};\n\nexport const useDeviceApi = (initOrigin?: string) => {\n const origin = shallowRef(initOrigin);\n const rpc = async (rpcName: string, options: RpcOptions = {}) => {\n if (!origin.value) {\n throw new Error(`origin must exist`);\n }\n const u = new URL(`/api/` + rpcName, origin.value);\n Object.entries(options.query || {}).forEach(([key, value]) => {\n if (value === undefined) return;\n u.searchParams.set(key, String(value));\n });\n const response = await enhanceFetch(u, options.init).catch((e) => {\n message.error(`网络错误:/` + rpcName);\n throw e;\n });\n if (!response.ok) {\n message.error(`接口错误:/` + rpcName + `:` + response.status);\n throw response;\n }\n if (response.headers.get(`Content-Type`)?.includes(`application/json`)) {\n const error = (await response.clone().json()) as RpcError;\n if (error.__error) {\n message.error(error.message);\n throw response;\n }\n }\n return response;\n };\n const jsonRpc = async <T>(...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return (await response.json()) as T;\n };\n const blobRpc = async (...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return await response.blob();\n };\n const arrayBufferRpc = async (...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return await response.arrayBuffer();\n };\n const api = {\n device: async () => jsonRpc<Device>(`device`),\n snapshot: async (query?: { id?: string | number }) => {\n return jsonRpc<Snapshot>(`snapshot`, { query });\n },\n screenshot: async (query: { id: string | number }) => {\n return arrayBufferRpc(`screenshot`, { query });\n },\n captureSnapshot: async () => {\n return jsonRpc<Snapshot>(`captureSnapshot`);\n },\n snapshots: async () => {\n return jsonRpc<Snapshot[]>(`snapshots`);\n },\n updateSubsApps: async (data: unknown[]) => {\n return blobRpc(`updateSubsApps`, {\n init: {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n });\n },\n updateSubscription: async (data: any) => {\n return blobRpc(`updateSubscription`, {\n init: {\n method: 'POST',\n body: JSON.stringify({\n ...data,\n id: -1,\n name: '内存订阅',\n version: 0,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n });\n },\n execSelector: async (data: {\n selector: string;\n action?: string;\n quickFind?: boolean;\n fastQuery?: boolean;\n }) => {\n return jsonRpc<{ message: string; action: string; result: boolean }>(\n `execSelector`,\n {\n init: {\n method: 'POST',\n // value 是旧版本的选择器\n body: JSON.stringify({ ...data, value: data.selector }),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n },\n );\n },\n };\n return { origin, api };\n};\n","<script setup lang=\"tsx\">\nimport { useDeviceApi } from '@/utils/api';\nimport { toValidURL } from '@/utils/check';\nimport { message } from '@/utils/discrete';\nimport { errorWrap } from '@/utils/error';\nimport { delay } from '@/utils/others';\nimport { screenshotStorage, snapshotStorage } from '@/utils/storage';\nimport { useSnapshotColumns } from '@/utils/table';\nimport { useBatchTask, useTask } from '@/utils/task';\nimport type { Device, Snapshot } from '@/utils/types';\nimport type { DataTableColumns, PaginationProps } from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\nimport pLimit from 'p-limit';\n\nconst router = useRouter();\nconst title = useTitle(`新设备`);\nconst { api, origin } = useDeviceApi();\nconst link = useStorage(`device_link`, ``);\nconst device = shallowRef<Device>();\nconst connect = useTask(async () => {\n if (!link.value) return;\n origin.value = errorWrap(\n () => new URL(link.value.trim()),\n () => `非法设备地址`,\n ).origin;\n link.value = origin.value;\n device.value = await api.device();\n});\nonMounted(async () => {\n await delay(500);\n if (toValidURL(link.value)) {\n connect.invoke();\n }\n});\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nwatchEffect(async () => {\n if (!device.value) return;\n title.value = `已连接 ` + device.value.manufacturer;\n const result = await api.snapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n subsText.value = '';\n});\n\nconst captureSnapshot = useTask(async () => {\n const snapshot = await api.captureSnapshot();\n const screenshot = await api.screenshot({ id: snapshot.id });\n await snapshotStorage.setItem(snapshot.id, snapshot);\n await screenshotStorage.setItem(snapshot.id, screenshot);\n message.success(`保存快照成功`);\n const result = await api.snapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n});\nconst downloadAllSnapshot = useTask(async () => {\n const snapshotIds = (await api.snapshots()).map((s) => s.id);\n const existSnapshotIds = new Set(\n (await screenshotStorage.keys()).map((s) => parseInt(s)),\n );\n const unimportSnapshotIds = snapshotIds.filter(\n (k) => !existSnapshotIds.has(k),\n );\n if (unimportSnapshotIds.length == 0) {\n message.success(`没有新记录可导入`);\n return;\n }\n let r = 0;\n const limit = pLimit(3);\n await Promise.all(\n unimportSnapshotIds.map((snapshotId) =>\n limit(async () => {\n const [newSnapshot, newScreenshot] = await Promise.all([\n api.snapshot({ id: snapshotId }),\n api.screenshot({ id: snapshotId }),\n ] as const);\n if (!newSnapshot.nodes) return;\n await Promise.all([\n snapshotStorage.setItem(snapshotId, newSnapshot),\n screenshotStorage.setItem(snapshotId, newScreenshot),\n ]);\n r++;\n }),\n ),\n );\n message.success(`导入${r}条新记录`);\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n appVersionCodeCol,\n appVersionNameCol,\n resetColWidth,\n} = useSnapshotColumns();\nconst handleSorterChange = (sorter: SortState) => {\n if (sorter.columnKey == ctimeCol.key) {\n ctimeCol.sortOrder = sorter.order;\n }\n};\nconst previewSnapshot = useBatchTask(\n async (row: Snapshot) => {\n if (!(await snapshotStorage.hasItem(row.id))) {\n await snapshotStorage.setItem(row.id, await api.snapshot({ id: row.id }));\n }\n if (!(await screenshotStorage.hasItem(row.id))) {\n const bf = await api.screenshot({ id: row.id });\n await screenshotStorage.setItem(row.id, bf);\n }\n window.open(\n router.resolve({\n name: 'snapshot',\n params: { snapshotId: row.id },\n }).href,\n );\n },\n (r) => r.id,\n);\n\nconst columns: DataTableColumns<Snapshot> = [\n ctimeCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `120px`,\n render(row) {\n return (\n <NSpace size=\"small\">\n <NButton\n size=\"small\"\n loading={previewSnapshot.loading[row.id]}\n onClick={() => previewSnapshot.invoke(row)}\n >\n 查看\n </NButton>\n </NSpace>\n );\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 showSubsModel = shallowRef(false);\nconst subsText = shallowRef(``);\nconst updateSubs = useTask(async () => {\n const data = errorWrap(() => JSON5.parse(subsText.value.trim()));\n if (!data) return;\n if (data.categories || data.globalGroups || data.apps) {\n await api.updateSubscription(data);\n } else if (typeof data.id == 'string') {\n await api.updateSubscription({\n apps: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].id == 'string') {\n await api.updateSubscription({\n apps: data,\n });\n } else if (typeof data.key == 'number') {\n await api.updateSubscription({\n globalGroups: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].key == 'number') {\n await api.updateSubscription({\n globalGroups: data,\n });\n } else {\n message.error(`无法识别的订阅文本`);\n return;\n }\n message.success(`修改成功`);\n});\n\nconst showSelectorModel = shallowRef(false);\n\nconst actionOptions: {\n value?: string;\n label: string;\n}[] = [\n {\n label: '仅查询',\n value: undefined,\n },\n {\n value: 'click',\n label: 'click',\n },\n {\n value: 'clickNode',\n label: 'clickNode',\n },\n {\n value: 'clickCenter',\n label: 'clickCenter',\n },\n {\n value: 'back',\n label: 'back',\n },\n {\n value: 'longClick',\n label: 'longClick',\n },\n {\n value: 'longClickNode',\n label: 'longClickNode',\n },\n {\n value: 'longClickCenter',\n label: 'longClickCenter',\n },\n];\nconst clickAction = shallowReactive({\n selector: ``,\n action: 'click',\n quickFind: false,\n});\nconst execSelector = useTask(async () => {\n const result = await api.execSelector({\n ...clickAction,\n fastQuery: clickAction.quickFind,\n });\n if (result.message) {\n message.success(`操作成功:` + result.message);\n return;\n }\n if (result.action) {\n message.success((result.result ? `操作成功:` : `操作失败`) + result.action);\n } else if (!result.action && result.result) {\n message.success(`查询成功`);\n }\n});\n\nconst placeholder = `\n请输入订阅文本(JSON5语法):\n示例1-更新单个应用的规则:\n{\n id: 'appId',\n groups: []\n}\n\n示例2-更新多个应用的规则:\n[\n {\n id: 'appId1',\n groups: []\n },\n {\n id: 'appId2',\n groups: []\n }\n]\n\n示例3-更新全局规则(1.7.0):\n{\n name: '全局规则-1',\n key: 0,\n rules: []\n}\n\n示例3-更新多个全局规则(1.7.0):\n[\n {\n name: '全局规则-1',\n key: 0,\n rules: []\n },\n {\n name: '全局规则-2',\n key: 1,\n rules: []\n }\n]\n\n示例4-更新整个订阅(1.7.0):\n{\n apps: [],\n globalGroups: [],\n categories: [],\n}\n`.trim();\n</script>\n<template>\n <NModal\n v-model:show=\"showSubsModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"修改内存订阅\"\n positive-text=\"确认\"\n :positiveButtonProps=\"{\n loading: updateSubs.loading,\n onClick() {\n updateSubs.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"subsText\"\n :disabled=\"updateSubs.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 20,\n maxRows: 25,\n }\"\n :placeholder=\"placeholder\"\n />\n </NModal>\n <NModal\n v-model:show=\"showSelectorModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"执行选择器\"\n positive-text=\"确认\"\n :positiveButtonProps=\"{\n loading: execSelector.loading,\n onClick() {\n execSelector.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"clickAction.selector\"\n :disabled=\"execSelector.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 4,\n maxRows: 10,\n }\"\n placeholder=\"请输入合法的选择器\"\n />\n <div h-15px></div>\n <NSpace>\n <NCheckbox v-model:checked=\"clickAction.quickFind\"> 快速查找 </NCheckbox>\n <a\n href=\"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 查找说明\n </a>\n </NSpace>\n <div h-10px></div>\n <div flex gap-10px flex-items-center>\n <NSelect\n v-model:value=\"clickAction.action\"\n :options=\"actionOptions\"\n class=\"w-150px\"\n />\n <a\n href=\"https://gkd.li/api/interfaces/RawRuleProps#action\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 操作说明\n </a>\n </div>\n </NModal>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex items-center gap-24px>\n <a href=\"/\" flex ml-12px title=\"首页\">\n <NButton text>\n <template #icon>\n <NIcon :size=\"24\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 32 32\"\n >\n <path\n d=\"M16.612 2.214a1.01 1.01 0 0 0-1.242 0L1 13.419l1.243 1.572L4 13.621V26a2.004 2.004 0 0 0 2 2h20a2.004 2.004 0 0 0 2-2V13.63L29.757 15L31 13.428zM18 26h-4v-8h4zm2 0v-8a2.002 2.002 0 0 0-2-2h-4a2.002 2.002 0 0 0-2 2v8H6V12.062l10-7.79l10 7.8V26z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </a>\n <NInputGroup>\n <NInput\n v-model:value=\"link\"\n placeholder=\"请输入设备地址\"\n :style=\"{ width: `200px` }\"\n @keyup.enter=\"connect.invoke\"\n ></NInput>\n <NButton @click=\"connect.invoke\" :loading=\"connect.loading\">\n 刷新连接\n </NButton>\n </NInputGroup>\n <template v-if=\"device\">\n <div whitespace-nowrap>\n {{ `已连接 ${device.manufacturer} Android ${device.release}` }}\n </div>\n <NButton\n @click=\"captureSnapshot.invoke\"\n :loading=\"captureSnapshot.loading\"\n >\n 快照\n </NButton>\n <NButton\n @click=\"downloadAllSnapshot.invoke\"\n :loading=\"downloadAllSnapshot.loading\"\n >\n 下载设备所有快照\n </NButton>\n <NButton @click=\"showSubsModel = true\"> 修改内存订阅 </NButton>\n <NButton @click=\"showSelectorModel = true\"> 执行选择器 </NButton>\n </template>\n </div>\n <NDataTable\n striped\n flexHeight\n :data=\"snapshots\"\n :columns=\"columns\"\n :pagination=\"pagination\"\n @update:sorter=\"handleSorterChange\"\n size=\"small\"\n class=\"flex-1\"\n :scrollX=\"1200\"\n />\n </div>\n</template>\n"],"names":["useDeviceApi","initOrigin","origin","shallowRef","rpc","rpcName","options","u","key","value","response","enhanceFetch","e","message","_a","error","jsonRpc","args","blobRpc","arrayBufferRpc","query","data","router","useRouter","title","useTitle","api","link","useStorage","device","connect","useTask","errorWrap","URL","trim","onMounted","delay","toValidURL","invoke","snapshots","watchEffect","manufacturer","result","sort","a","b","id","subsText","captureSnapshot","snapshot","screenshot","snapshotStorage","setItem","screenshotStorage","success","downloadAllSnapshot","snapshotIds","map","s","existSnapshotIds","Set","keys","parseInt","unimportSnapshotIds","filter","k","has","length","r","limit","pLimit","Promise","all","snapshotId","newSnapshot","newScreenshot","nodes","activityIdCol","appIdCol","appNameCol","ctimeCol","appVersionCodeCol","appVersionNameCol","resetColWidth","useSnapshotColumns","handleSorterChange","sorter","columnKey","sortOrder","order","previewSnapshot","useBatchTask","row","hasItem","bf","window","open","resolve","name","params","href","columns","fixed","width","render","_createVNode2","_resolveComponent2","default","loading","onClick","_createTextVNode2","pagination","shallowReactive","page","pageSize","showSizePicker","pageSizes","onChange","onUpdatePageSize","watch","showSubsModel","updateSubs","JSON5","parse","categories","globalGroups","apps","updateSubscription","Array","isArray","showSelectorModel","actionOptions","label","undefined","clickAction","selector","action","quickFind","execSelector","fastQuery","placeholder"],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import{d as Re,c as Pe,a as Xt,b as A,i as te,e as At,f as j,g as ee,h as Yt,u as xe,j as ce,k as Le,r as Rt,t as ze,l as Ue,m as ut,n as tt,p as Pt,o as q,q as De,s as xt,v as D,w as et,N as Fe,x as Ve,y as Lt,z as $e,A as K,B as dt,C as bt,D as Ct,E as b,F as S,G as v,H as ct,I as Ht,J as He,_ as de,K as R,L as H,M as fe,O as he,P as ge,Q as Ke,R as ne,S as Oe,T as Je,U as We,V as Ye,W as oe,X as je,Y as qe,Z as nt,$ as Qe}from"./index-CO1qYhnZ.js";import{_ as Ge,w as ie,s as re}from"./ActionCard.vue_vue_type_script_setup_true_lang-DAWLUyKw.js";import{c as Ze,d as Xe}from"./fetch-2UM4nFb0.js";import{u as tn,b as en,a as nn,c as on,d as rn}from"./export-Buob1Zpw.js";import{i as ln,a as an}from"./import-ChO_D4YK.js";import{u as Q,g as le,_ as sn,a as un,b as cn}from"./dayjs.min-CkIlo5Nq.js";import{u as dn,_ as fn,r as hn}from"./table-4d-AVR8Z.js";import{u as gn,l as zt,_ as pe,N as pn}from"./index-B5vK2Zkg.js";import"./index-CE_5kTG8.js";const wn={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 mn(t){const{primaryColor:e,opacityDisabled:r,borderRadius:o,textColor3:n}=t;return Object.assign(Object.assign({},wn),{iconColor:n,textColor:"white",loadingColor:e,opacityDisabled:r,railColor:"rgba(0, 0, 0, .14)",railColorActive:e,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:o,railBorderRadiusMedium:o,railBorderRadiusLarge:o,buttonBorderRadiusSmall:o,buttonBorderRadiusMedium:o,buttonBorderRadiusLarge:o,boxShadowFocus:`0 0 0 2px ${Pe(e,{alpha:.2})}`})}const vn={name:"Switch",common:Re,self:mn},yn=Xt("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
- `,[A("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
- `),A("rail-placeholder",`
19
- display: flex;
20
- flex-wrap: none;
21
- `),A("button-placeholder",`
22
- width: calc(1.75 * var(--n-rail-height));
23
- height: var(--n-rail-height);
24
- `),Xt("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
- `,[te({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),A("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
- `),A("checked",`
44
- right: 0;
45
- padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));
46
- `),A("unchecked",`
47
- left: 0;
48
- justify-content: flex-end;
49
- padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));
50
- `),At("&:focus",[A("rail",`
51
- box-shadow: var(--n-box-shadow-focus);
52
- `)]),j("round",[A("rail","border-radius: calc(var(--n-rail-height) / 2);",[A("button","border-radius: calc(var(--n-button-height) / 2);")])]),ee("disabled",[ee("icon",[j("rubber-band",[j("pressed",[A("rail",[A("button","max-width: var(--n-button-width-pressed);")])]),A("rail",[At("&:active",[A("button","max-width: var(--n-button-width-pressed);")])]),j("active",[j("pressed",[A("rail",[A("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),A("rail",[At("&:active",[A("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),j("active",[A("rail",[A("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),A("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
- `,[A("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
- `,[te()]),A("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
- `)]),j("active",[A("rail","background-color: var(--n-rail-color-active);")]),j("loading",[A("rail",`
98
- cursor: wait;
99
- `)]),j("disabled",[A("rail",`
100
- cursor: not-allowed;
101
- opacity: .5;
102
- `)])]),bn=Object.assign(Object.assign({},ce.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 st;const Cn=Yt({name:"Switch",props:bn,setup(t){st===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?st=CSS.supports("width","max(1px)"):st=!1:st=!0);const{mergedClsPrefixRef:e,inlineThemeDisabled:r}=xe(t),o=ce("Switch","-switch",yn,vn,t,e),n=Le(t),{mergedSizeRef:i,mergedDisabledRef:l}=n,a=Rt(t.defaultValue),s=ze(t,"value"),d=Ue(s,a),f=ut(()=>d.value===t.checkedValue),C=Rt(!1),c=Rt(!1),h=ut(()=>{const{railStyle:k}=t;if(k)return k({focused:c.value,checked:f.value})});function p(k){const{"onUpdate:value":L,onChange:P,onUpdateValue:F}=t,{nTriggerFormInput:O,nTriggerFormChange:x}=n;L&&Lt(L,k),F&&Lt(F,k),P&&Lt(P,k),a.value=k,O(),x()}function y(){const{nTriggerFormFocus:k}=n;k()}function _(){const{nTriggerFormBlur:k}=n;k()}function m(){t.loading||l.value||(d.value!==t.checkedValue?p(t.checkedValue):p(t.uncheckedValue))}function B(){c.value=!0,y()}function w(){c.value=!1,_(),C.value=!1}function g(k){t.loading||l.value||k.key===" "&&(d.value!==t.checkedValue?p(t.checkedValue):p(t.uncheckedValue),C.value=!1)}function N(k){t.loading||l.value||k.key===" "&&(k.preventDefault(),C.value=!0)}const T=ut(()=>{const{value:k}=i,{self:{opacityDisabled:L,railColor:P,railColorActive:F,buttonBoxShadow:O,buttonColor:x,boxShadowFocus:X,loadingColor:E,textColor:u,iconColor:J,[tt("buttonHeight",k)]:U,[tt("buttonWidth",k)]:z,[tt("buttonWidthPressed",k)]:_t,[tt("railHeight",k)]:V,[tt("railWidth",k)]:Y,[tt("railBorderRadius",k)]:It,[tt("buttonBorderRadius",k)]:wt},common:{cubicBezierEaseInOut:mt}}=o.value;let at,M,Mt;return st?(at=`calc((${V} - ${U}) / 2)`,M=`max(${V}, ${U})`,Mt=`max(${Y}, calc(${Y} + ${U} - ${V}))`):(at=Pt((q(V)-q(U))/2),M=Pt(Math.max(q(V),q(U))),Mt=q(V)>q(U)?Y:Pt(q(Y)+q(U)-q(V))),{"--n-bezier":mt,"--n-button-border-radius":wt,"--n-button-box-shadow":O,"--n-button-color":x,"--n-button-width":z,"--n-button-width-pressed":_t,"--n-button-height":U,"--n-height":M,"--n-offset":at,"--n-opacity-disabled":L,"--n-rail-border-radius":It,"--n-rail-color":P,"--n-rail-color-active":F,"--n-rail-height":V,"--n-rail-width":Y,"--n-width":Mt,"--n-box-shadow-focus":X,"--n-loading-color":E,"--n-text-color":u,"--n-icon-color":J}}),I=r?De("switch",ut(()=>i.value[0]),T,t):void 0;return{handleClick:m,handleBlur:w,handleFocus:B,handleKeyup:g,handleKeydown:N,mergedRailStyle:h,pressed:C,mergedClsPrefix:e,mergedValue:d,checked:f,mergedDisabled:l,cssVars:r?void 0:T,themeClass:I==null?void 0:I.themeClass,onRender:I==null?void 0:I.onRender}},render(){const{mergedClsPrefix:t,mergedDisabled:e,checked:r,mergedRailStyle:o,onRender:n,$slots:i}=this;n==null||n();const{checked:l,unchecked:a,icon:s,"checked-icon":d,"unchecked-icon":f}=i,C=!(xt(s)&&xt(d)&&xt(f));return D("div",{role:"switch","aria-checked":r,class:[`${t}-switch`,this.themeClass,C&&`${t}-switch--icon`,r&&`${t}-switch--active`,e&&`${t}-switch--disabled`,this.round&&`${t}-switch--round`,this.loading&&`${t}-switch--loading`,this.pressed&&`${t}-switch--pressed`,this.rubberBand&&`${t}-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},D("div",{class:`${t}-switch__rail`,"aria-hidden":"true",style:o},et(l,c=>et(a,h=>c||h?D("div",{"aria-hidden":!0,class:`${t}-switch__children-placeholder`},D("div",{class:`${t}-switch__rail-placeholder`},D("div",{class:`${t}-switch__button-placeholder`}),c),D("div",{class:`${t}-switch__rail-placeholder`},D("div",{class:`${t}-switch__button-placeholder`}),h)):null)),D("div",{class:`${t}-switch__button`},et(s,c=>et(d,h=>et(f,p=>D(Fe,null,{default:()=>this.loading?D(Ve,{key:"loading",clsPrefix:t,strokeWidth:20}):this.checked&&(h||c)?D("div",{class:`${t}-switch__button-icon`,key:h?"checked-icon":"icon"},h||c):!this.checked&&(p||c)?D("div",{class:`${t}-switch__button-icon`,key:p?"unchecked-icon":"icon"},p||c):null})))),et(l,c=>c&&D("div",{key:"checked",class:`${t}-switch__checked`},c)),et(a,c=>c&&D("div",{key:"unchecked",class:`${t}-switch__unchecked`},c)))))}});var gt={},Bn=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},we={},$={};let jt;const kn=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];$.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};$.getSymbolTotalCodewords=function(e){return kn[e]};$.getBCHDigit=function(t){let e=0;for(;t!==0;)e++,t>>>=1;return e};$.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');jt=e};$.isKanjiModeEnabled=function(){return typeof jt<"u"};$.toSJIS=function(e){return jt(e)};var Et={};(function(t){t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2};function e(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+r)}}t.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},t.from=function(o,n){if(t.isValid(o))return o;try{return e(o)}catch{return n}}})(Et);function me(){this.buffer=[],this.length=0}me.prototype={get:function(t){const e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)===1},put:function(t,e){for(let r=0;r<e;r++)this.putBit((t>>>e-r-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var En=me;function pt(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}pt.prototype.set=function(t,e,r,o){const n=t*this.size+e;this.data[n]=r,o&&(this.reservedBit[n]=!0)};pt.prototype.get=function(t,e){return this.data[t*this.size+e]};pt.prototype.xor=function(t,e,r){this.data[t*this.size+e]^=r};pt.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]};var Sn=pt,ve={};(function(t){const e=$.getSymbolSize;t.getRowColCoords=function(o){if(o===1)return[];const n=Math.floor(o/7)+2,i=e(o),l=i===145?26:Math.ceil((i-13)/(2*n-2))*2,a=[i-7];for(let s=1;s<n-1;s++)a[s]=a[s-1]-l;return a.push(6),a.reverse()},t.getPositions=function(o){const n=[],i=t.getRowColCoords(o),l=i.length;for(let a=0;a<l;a++)for(let s=0;s<l;s++)a===0&&s===0||a===0&&s===l-1||a===l-1&&s===0||n.push([i[a],i[s]]);return n}})(ve);var ye={};const Tn=$.getSymbolSize,ae=7;ye.getPositions=function(e){const r=Tn(e);return[[0,0],[r-ae,0],[0,r-ae]]};var be={};(function(t){t.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const e={N1:3,N2:3,N3:40,N4:10};t.isValid=function(n){return n!=null&&n!==""&&!isNaN(n)&&n>=0&&n<=7},t.from=function(n){return t.isValid(n)?parseInt(n,10):void 0},t.getPenaltyN1=function(n){const i=n.size;let l=0,a=0,s=0,d=null,f=null;for(let C=0;C<i;C++){a=s=0,d=f=null;for(let c=0;c<i;c++){let h=n.get(C,c);h===d?a++:(a>=5&&(l+=e.N1+(a-5)),d=h,a=1),h=n.get(c,C),h===f?s++:(s>=5&&(l+=e.N1+(s-5)),f=h,s=1)}a>=5&&(l+=e.N1+(a-5)),s>=5&&(l+=e.N1+(s-5))}return l},t.getPenaltyN2=function(n){const i=n.size;let l=0;for(let a=0;a<i-1;a++)for(let s=0;s<i-1;s++){const d=n.get(a,s)+n.get(a,s+1)+n.get(a+1,s)+n.get(a+1,s+1);(d===4||d===0)&&l++}return l*e.N2},t.getPenaltyN3=function(n){const i=n.size;let l=0,a=0,s=0;for(let d=0;d<i;d++){a=s=0;for(let f=0;f<i;f++)a=a<<1&2047|n.get(d,f),f>=10&&(a===1488||a===93)&&l++,s=s<<1&2047|n.get(f,d),f>=10&&(s===1488||s===93)&&l++}return l*e.N3},t.getPenaltyN4=function(n){let i=0;const l=n.data.length;for(let s=0;s<l;s++)i+=n.data[s];return Math.abs(Math.ceil(i*100/l/5)-10)*e.N4};function r(o,n,i){switch(o){case t.Patterns.PATTERN000:return(n+i)%2===0;case t.Patterns.PATTERN001:return n%2===0;case t.Patterns.PATTERN010:return i%3===0;case t.Patterns.PATTERN011:return(n+i)%3===0;case t.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(i/3))%2===0;case t.Patterns.PATTERN101:return n*i%2+n*i%3===0;case t.Patterns.PATTERN110:return(n*i%2+n*i%3)%2===0;case t.Patterns.PATTERN111:return(n*i%3+(n+i)%2)%2===0;default:throw new Error("bad maskPattern:"+o)}}t.applyMask=function(n,i){const l=i.size;for(let a=0;a<l;a++)for(let s=0;s<l;s++)i.isReserved(s,a)||i.xor(s,a,r(n,s,a))},t.getBestMask=function(n,i){const l=Object.keys(t.Patterns).length;let a=0,s=1/0;for(let d=0;d<l;d++){i(d),t.applyMask(d,n);const f=t.getPenaltyN1(n)+t.getPenaltyN2(n)+t.getPenaltyN3(n)+t.getPenaltyN4(n);t.applyMask(d,n),f<s&&(s=f,a=d)}return a}})(be);var St={};const G=Et,vt=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],yt=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];St.getBlocksCount=function(e,r){switch(r){case G.L:return vt[(e-1)*4+0];case G.M:return vt[(e-1)*4+1];case G.Q:return vt[(e-1)*4+2];case G.H:return vt[(e-1)*4+3];default:return}};St.getTotalCodewordsCount=function(e,r){switch(r){case G.L:return yt[(e-1)*4+0];case G.M:return yt[(e-1)*4+1];case G.Q:return yt[(e-1)*4+2];case G.H:return yt[(e-1)*4+3];default:return}};var Ce={},Tt={};const ft=new Uint8Array(512),Bt=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)ft[r]=e,Bt[e]=r,e<<=1,e&256&&(e^=285);for(let r=255;r<512;r++)ft[r]=ft[r-255]})();Tt.log=function(e){if(e<1)throw new Error("log("+e+")");return Bt[e]};Tt.exp=function(e){return ft[e]};Tt.mul=function(e,r){return e===0||r===0?0:ft[Bt[e]+Bt[r]]};(function(t){const e=Tt;t.mul=function(o,n){const i=new Uint8Array(o.length+n.length-1);for(let l=0;l<o.length;l++)for(let a=0;a<n.length;a++)i[l+a]^=e.mul(o[l],n[a]);return i},t.mod=function(o,n){let i=new Uint8Array(o);for(;i.length-n.length>=0;){const l=i[0];for(let s=0;s<n.length;s++)i[s]^=e.mul(n[s],l);let a=0;for(;a<i.length&&i[a]===0;)a++;i=i.slice(a)}return i},t.generateECPolynomial=function(o){let n=new Uint8Array([1]);for(let i=0;i<o;i++)n=t.mul(n,new Uint8Array([1,e.exp(i)]));return n}})(Ce);const Be=Ce;function qt(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}qt.prototype.initialize=function(e){this.degree=e,this.genPoly=Be.generateECPolynomial(this.degree)};qt.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const r=new Uint8Array(e.length+this.degree);r.set(e);const o=Be.mod(r,this.genPoly),n=this.degree-o.length;if(n>0){const i=new Uint8Array(this.degree);return i.set(o,n),i}return o};var Nn=qt,ke={},Z={},Qt={};Qt.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40};var W={};const Ee="[0-9]+",_n="[A-Z $%*+\\-./:]+";let ht="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";ht=ht.replace(/u/g,"\\u");const In="(?:(?![A-Z0-9 $%*+\\-./:]|"+ht+`)(?:.|[\r
103
- ]))+`;W.KANJI=new RegExp(ht,"g");W.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");W.BYTE=new RegExp(In,"g");W.NUMERIC=new RegExp(Ee,"g");W.ALPHANUMERIC=new RegExp(_n,"g");const Mn=new RegExp("^"+ht+"$"),An=new RegExp("^"+Ee+"$"),Rn=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");W.testKanji=function(e){return Mn.test(e)};W.testNumeric=function(e){return An.test(e)};W.testAlphanumeric=function(e){return Rn.test(e)};(function(t){const e=Qt,r=W;t.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},t.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},t.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},t.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},t.MIXED={bit:-1},t.getCharCountIndicator=function(i,l){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!e.isValid(l))throw new Error("Invalid version: "+l);return l>=1&&l<10?i.ccBits[0]:l<27?i.ccBits[1]:i.ccBits[2]},t.getBestModeForData=function(i){return r.testNumeric(i)?t.NUMERIC:r.testAlphanumeric(i)?t.ALPHANUMERIC:r.testKanji(i)?t.KANJI:t.BYTE},t.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},t.isValid=function(i){return i&&i.bit&&i.ccBits};function o(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"numeric":return t.NUMERIC;case"alphanumeric":return t.ALPHANUMERIC;case"kanji":return t.KANJI;case"byte":return t.BYTE;default:throw new Error("Unknown mode: "+n)}}t.from=function(i,l){if(t.isValid(i))return i;try{return o(i)}catch{return l}}})(Z);(function(t){const e=$,r=St,o=Et,n=Z,i=Qt,l=7973,a=e.getBCHDigit(l);function s(c,h,p){for(let y=1;y<=40;y++)if(h<=t.getCapacity(y,p,c))return y}function d(c,h){return n.getCharCountIndicator(c,h)+4}function f(c,h){let p=0;return c.forEach(function(y){const _=d(y.mode,h);p+=_+y.getBitsLength()}),p}function C(c,h){for(let p=1;p<=40;p++)if(f(c,p)<=t.getCapacity(p,h,n.MIXED))return p}t.from=function(h,p){return i.isValid(h)?parseInt(h,10):p},t.getCapacity=function(h,p,y){if(!i.isValid(h))throw new Error("Invalid QR Code version");typeof y>"u"&&(y=n.BYTE);const _=e.getSymbolTotalCodewords(h),m=r.getTotalCodewordsCount(h,p),B=(_-m)*8;if(y===n.MIXED)return B;const w=B-d(y,h);switch(y){case n.NUMERIC:return Math.floor(w/10*3);case n.ALPHANUMERIC:return Math.floor(w/11*2);case n.KANJI:return Math.floor(w/13);case n.BYTE:default:return Math.floor(w/8)}},t.getBestVersionForData=function(h,p){let y;const _=o.from(p,o.M);if(Array.isArray(h)){if(h.length>1)return C(h,_);if(h.length===0)return 1;y=h[0]}else y=h;return s(y.mode,y.getLength(),_)},t.getEncodedBits=function(h){if(!i.isValid(h)||h<7)throw new Error("Invalid QR Code version");let p=h<<12;for(;e.getBCHDigit(p)-a>=0;)p^=l<<e.getBCHDigit(p)-a;return h<<12|p}})(ke);var Se={};const Kt=$,Te=1335,Pn=21522,se=Kt.getBCHDigit(Te);Se.getEncodedBits=function(e,r){const o=e.bit<<3|r;let n=o<<10;for(;Kt.getBCHDigit(n)-se>=0;)n^=Te<<Kt.getBCHDigit(n)-se;return(o<<10|n)^Pn};var Ne={};const xn=Z;function ot(t){this.mode=xn.NUMERIC,this.data=t.toString()}ot.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};ot.prototype.getLength=function(){return this.data.length};ot.prototype.getBitsLength=function(){return ot.getBitsLength(this.data.length)};ot.prototype.write=function(e){let r,o,n;for(r=0;r+3<=this.data.length;r+=3)o=this.data.substr(r,3),n=parseInt(o,10),e.put(n,10);const i=this.data.length-r;i>0&&(o=this.data.substr(r),n=parseInt(o,10),e.put(n,i*3+1))};var Ln=ot;const zn=Z,Ut=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function it(t){this.mode=zn.ALPHANUMERIC,this.data=t}it.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};it.prototype.getLength=function(){return this.data.length};it.prototype.getBitsLength=function(){return it.getBitsLength(this.data.length)};it.prototype.write=function(e){let r;for(r=0;r+2<=this.data.length;r+=2){let o=Ut.indexOf(this.data[r])*45;o+=Ut.indexOf(this.data[r+1]),e.put(o,11)}this.data.length%2&&e.put(Ut.indexOf(this.data[r]),6)};var Un=it;const Dn=Z;function rt(t){this.mode=Dn.BYTE,typeof t=="string"?this.data=new TextEncoder().encode(t):this.data=new Uint8Array(t)}rt.getBitsLength=function(e){return e*8};rt.prototype.getLength=function(){return this.data.length};rt.prototype.getBitsLength=function(){return rt.getBitsLength(this.data.length)};rt.prototype.write=function(t){for(let e=0,r=this.data.length;e<r;e++)t.put(this.data[e],8)};var Fn=rt;const Vn=Z,$n=$;function lt(t){this.mode=Vn.KANJI,this.data=t}lt.getBitsLength=function(e){return e*13};lt.prototype.getLength=function(){return this.data.length};lt.prototype.getBitsLength=function(){return lt.getBitsLength(this.data.length)};lt.prototype.write=function(t){let e;for(e=0;e<this.data.length;e++){let r=$n.toSJIS(this.data[e]);if(r>=33088&&r<=40956)r-=33088;else if(r>=57408&&r<=60351)r-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+`
104
- Make sure your charset is UTF-8`);r=(r>>>8&255)*192+(r&255),t.put(r,13)}};var Hn=lt,_e={exports:{}};(function(t){var e={single_source_shortest_paths:function(r,o,n){var i={},l={};l[o]=0;var a=e.PriorityQueue.make();a.push(o,0);for(var s,d,f,C,c,h,p,y,_;!a.empty();){s=a.pop(),d=s.value,C=s.cost,c=r[d]||{};for(f in c)c.hasOwnProperty(f)&&(h=c[f],p=C+h,y=l[f],_=typeof l[f]>"u",(_||y>p)&&(l[f]=p,a.push(f,p),i[f]=d))}if(typeof n<"u"&&typeof l[n]>"u"){var m=["Could not find a path from ",o," to ",n,"."].join("");throw new Error(m)}return i},extract_shortest_path_from_predecessor_list:function(r,o){for(var n=[],i=o;i;)n.push(i),r[i],i=r[i];return n.reverse(),n},find_path:function(r,o,n){var i=e.single_source_shortest_paths(r,o,n);return e.extract_shortest_path_from_predecessor_list(i,n)},PriorityQueue:{make:function(r){var o=e.PriorityQueue,n={},i;r=r||{};for(i in o)o.hasOwnProperty(i)&&(n[i]=o[i]);return n.queue=[],n.sorter=r.sorter||o.default_sorter,n},default_sorter:function(r,o){return r.cost-o.cost},push:function(r,o){var n={value:r,cost:o};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t.exports=e})(_e);var Kn=_e.exports;(function(t){const e=Z,r=Ln,o=Un,n=Fn,i=Hn,l=W,a=$,s=Kn;function d(m){return unescape(encodeURIComponent(m)).length}function f(m,B,w){const g=[];let N;for(;(N=m.exec(w))!==null;)g.push({data:N[0],index:N.index,mode:B,length:N[0].length});return g}function C(m){const B=f(l.NUMERIC,e.NUMERIC,m),w=f(l.ALPHANUMERIC,e.ALPHANUMERIC,m);let g,N;return a.isKanjiModeEnabled()?(g=f(l.BYTE,e.BYTE,m),N=f(l.KANJI,e.KANJI,m)):(g=f(l.BYTE_KANJI,e.BYTE,m),N=[]),B.concat(w,g,N).sort(function(I,k){return I.index-k.index}).map(function(I){return{data:I.data,mode:I.mode,length:I.length}})}function c(m,B){switch(B){case e.NUMERIC:return r.getBitsLength(m);case e.ALPHANUMERIC:return o.getBitsLength(m);case e.KANJI:return i.getBitsLength(m);case e.BYTE:return n.getBitsLength(m)}}function h(m){return m.reduce(function(B,w){const g=B.length-1>=0?B[B.length-1]:null;return g&&g.mode===w.mode?(B[B.length-1].data+=w.data,B):(B.push(w),B)},[])}function p(m){const B=[];for(let w=0;w<m.length;w++){const g=m[w];switch(g.mode){case e.NUMERIC:B.push([g,{data:g.data,mode:e.ALPHANUMERIC,length:g.length},{data:g.data,mode:e.BYTE,length:g.length}]);break;case e.ALPHANUMERIC:B.push([g,{data:g.data,mode:e.BYTE,length:g.length}]);break;case e.KANJI:B.push([g,{data:g.data,mode:e.BYTE,length:d(g.data)}]);break;case e.BYTE:B.push([{data:g.data,mode:e.BYTE,length:d(g.data)}])}}return B}function y(m,B){const w={},g={start:{}};let N=["start"];for(let T=0;T<m.length;T++){const I=m[T],k=[];for(let L=0;L<I.length;L++){const P=I[L],F=""+T+L;k.push(F),w[F]={node:P,lastCount:0},g[F]={};for(let O=0;O<N.length;O++){const x=N[O];w[x]&&w[x].node.mode===P.mode?(g[x][F]=c(w[x].lastCount+P.length,P.mode)-c(w[x].lastCount,P.mode),w[x].lastCount+=P.length):(w[x]&&(w[x].lastCount=P.length),g[x][F]=c(P.length,P.mode)+4+e.getCharCountIndicator(P.mode,B))}}N=k}for(let T=0;T<N.length;T++)g[N[T]].end=0;return{map:g,table:w}}function _(m,B){let w;const g=e.getBestModeForData(m);if(w=e.from(B,g),w!==e.BYTE&&w.bit<g.bit)throw new Error('"'+m+'" cannot be encoded with mode '+e.toString(w)+`.
105
- Suggested mode is: `+e.toString(g));switch(w===e.KANJI&&!a.isKanjiModeEnabled()&&(w=e.BYTE),w){case e.NUMERIC:return new r(m);case e.ALPHANUMERIC:return new o(m);case e.KANJI:return new i(m);case e.BYTE:return new n(m)}}t.fromArray=function(B){return B.reduce(function(w,g){return typeof g=="string"?w.push(_(g,null)):g.data&&w.push(_(g.data,g.mode)),w},[])},t.fromString=function(B,w){const g=C(B,a.isKanjiModeEnabled()),N=p(g),T=y(N,w),I=s.find_path(T.map,"start","end"),k=[];for(let L=1;L<I.length-1;L++)k.push(T.table[I[L]].node);return t.fromArray(h(k))},t.rawSplit=function(B){return t.fromArray(C(B,a.isKanjiModeEnabled()))}})(Ne);const Nt=$,Dt=Et,On=En,Jn=Sn,Wn=ve,Yn=ye,Ot=be,Jt=St,jn=Nn,kt=ke,qn=Se,Qn=Z,Ft=Ne;function Gn(t,e){const r=t.size,o=Yn.getPositions(e);for(let n=0;n<o.length;n++){const i=o[n][0],l=o[n][1];for(let a=-1;a<=7;a++)if(!(i+a<=-1||r<=i+a))for(let s=-1;s<=7;s++)l+s<=-1||r<=l+s||(a>=0&&a<=6&&(s===0||s===6)||s>=0&&s<=6&&(a===0||a===6)||a>=2&&a<=4&&s>=2&&s<=4?t.set(i+a,l+s,!0,!0):t.set(i+a,l+s,!1,!0))}}function Zn(t){const e=t.size;for(let r=8;r<e-8;r++){const o=r%2===0;t.set(r,6,o,!0),t.set(6,r,o,!0)}}function Xn(t,e){const r=Wn.getPositions(e);for(let o=0;o<r.length;o++){const n=r[o][0],i=r[o][1];for(let l=-2;l<=2;l++)for(let a=-2;a<=2;a++)l===-2||l===2||a===-2||a===2||l===0&&a===0?t.set(n+l,i+a,!0,!0):t.set(n+l,i+a,!1,!0)}}function to(t,e){const r=t.size,o=kt.getEncodedBits(e);let n,i,l;for(let a=0;a<18;a++)n=Math.floor(a/3),i=a%3+r-8-3,l=(o>>a&1)===1,t.set(n,i,l,!0),t.set(i,n,l,!0)}function Vt(t,e,r){const o=t.size,n=qn.getEncodedBits(e,r);let i,l;for(i=0;i<15;i++)l=(n>>i&1)===1,i<6?t.set(i,8,l,!0):i<8?t.set(i+1,8,l,!0):t.set(o-15+i,8,l,!0),i<8?t.set(8,o-i-1,l,!0):i<9?t.set(8,15-i-1+1,l,!0):t.set(8,15-i-1,l,!0);t.set(o-8,8,1,!0)}function eo(t,e){const r=t.size;let o=-1,n=r-1,i=7,l=0;for(let a=r-1;a>0;a-=2)for(a===6&&a--;;){for(let s=0;s<2;s++)if(!t.isReserved(n,a-s)){let d=!1;l<e.length&&(d=(e[l]>>>i&1)===1),t.set(n,a-s,d),i--,i===-1&&(l++,i=7)}if(n+=o,n<0||r<=n){n-=o,o=-o;break}}}function no(t,e,r){const o=new On;r.forEach(function(s){o.put(s.mode.bit,4),o.put(s.getLength(),Qn.getCharCountIndicator(s.mode,t)),s.write(o)});const n=Nt.getSymbolTotalCodewords(t),i=Jt.getTotalCodewordsCount(t,e),l=(n-i)*8;for(o.getLengthInBits()+4<=l&&o.put(0,4);o.getLengthInBits()%8!==0;)o.putBit(0);const a=(l-o.getLengthInBits())/8;for(let s=0;s<a;s++)o.put(s%2?17:236,8);return oo(o,t,e)}function oo(t,e,r){const o=Nt.getSymbolTotalCodewords(e),n=Jt.getTotalCodewordsCount(e,r),i=o-n,l=Jt.getBlocksCount(e,r),a=o%l,s=l-a,d=Math.floor(o/l),f=Math.floor(i/l),C=f+1,c=d-f,h=new jn(c);let p=0;const y=new Array(l),_=new Array(l);let m=0;const B=new Uint8Array(t.buffer);for(let I=0;I<l;I++){const k=I<s?f:C;y[I]=B.slice(p,p+k),_[I]=h.encode(y[I]),p+=k,m=Math.max(m,k)}const w=new Uint8Array(o);let g=0,N,T;for(N=0;N<m;N++)for(T=0;T<l;T++)N<y[T].length&&(w[g++]=y[T][N]);for(N=0;N<c;N++)for(T=0;T<l;T++)w[g++]=_[T][N];return w}function io(t,e,r,o){let n;if(Array.isArray(t))n=Ft.fromArray(t);else if(typeof t=="string"){let d=e;if(!d){const f=Ft.rawSplit(t);d=kt.getBestVersionForData(f,r)}n=Ft.fromString(t,d||40)}else throw new Error("Invalid data");const i=kt.getBestVersionForData(n,r);if(!i)throw new Error("The amount of data is too big to be stored in a QR Code");if(!e)e=i;else if(e<i)throw new Error(`
106
- The chosen QR Code version cannot contain this amount of data.
107
- Minimum version required to store current data is: `+i+`.
108
- `);const l=no(e,r,n),a=Nt.getSymbolSize(e),s=new Jn(a);return Gn(s,e),Zn(s),Xn(s,e),Vt(s,r,0),e>=7&&to(s,e),eo(s,l),isNaN(o)&&(o=Ot.getBestMask(s,Vt.bind(null,s,r))),Ot.applyMask(o,s),Vt(s,r,o),{modules:s,version:e,errorCorrectionLevel:r,maskPattern:o,segments:n}}we.create=function(e,r){if(typeof e>"u"||e==="")throw new Error("No input text");let o=Dt.M,n,i;return typeof r<"u"&&(o=Dt.from(r.errorCorrectionLevel,Dt.M),n=kt.from(r.version),i=Ot.from(r.maskPattern),r.toSJISFunc&&Nt.setToSJISFunction(r.toSJISFunc)),io(e,n,o,i)};var Ie={},Gt={};(function(t){function e(r){if(typeof r=="number"&&(r=r.toString()),typeof r!="string")throw new Error("Color should be defined as hex string");let o=r.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+r);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const n=parseInt(o.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:"#"+o.slice(0,6).join("")}}t.getOptions=function(o){o||(o={}),o.color||(o.color={});const n=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,l=o.scale||4;return{width:i,scale:i?4:l,margin:n,color:{dark:e(o.color.dark||"#000000ff"),light:e(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},t.getScale=function(o,n){return n.width&&n.width>=o+n.margin*2?n.width/(o+n.margin*2):n.scale},t.getImageWidth=function(o,n){const i=t.getScale(o,n);return Math.floor((o+n.margin*2)*i)},t.qrToImageData=function(o,n,i){const l=n.modules.size,a=n.modules.data,s=t.getScale(l,i),d=Math.floor((l+i.margin*2)*s),f=i.margin*s,C=[i.color.light,i.color.dark];for(let c=0;c<d;c++)for(let h=0;h<d;h++){let p=(c*d+h)*4,y=i.color.light;if(c>=f&&h>=f&&c<d-f&&h<d-f){const _=Math.floor((c-f)/s),m=Math.floor((h-f)/s);y=C[a[_*l+m]?1:0]}o[p++]=y.r,o[p++]=y.g,o[p++]=y.b,o[p]=y.a}}})(Gt);(function(t){const e=Gt;function r(n,i,l){n.clearRect(0,0,i.width,i.height),i.style||(i.style={}),i.height=l,i.width=l,i.style.height=l+"px",i.style.width=l+"px"}function o(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}t.render=function(i,l,a){let s=a,d=l;typeof s>"u"&&(!l||!l.getContext)&&(s=l,l=void 0),l||(d=o()),s=e.getOptions(s);const f=e.getImageWidth(i.modules.size,s),C=d.getContext("2d"),c=C.createImageData(f,f);return e.qrToImageData(c.data,i,s),r(C,d,f),C.putImageData(c,0,0),d},t.renderToDataURL=function(i,l,a){let s=a;typeof s>"u"&&(!l||!l.getContext)&&(s=l,l=void 0),s||(s={});const d=t.render(i,l,s),f=s.type||"image/png",C=s.rendererOpts||{};return d.toDataURL(f,C.quality)}})(Ie);var Me={};const ro=Gt;function ue(t,e){const r=t.a/255,o=e+'="'+t.hex+'"';return r<1?o+" "+e+'-opacity="'+r.toFixed(2).slice(1)+'"':o}function $t(t,e,r){let o=t+e;return typeof r<"u"&&(o+=" "+r),o}function lo(t,e,r){let o="",n=0,i=!1,l=0;for(let a=0;a<t.length;a++){const s=Math.floor(a%e),d=Math.floor(a/e);!s&&!i&&(i=!0),t[a]?(l++,a>0&&s>0&&t[a-1]||(o+=i?$t("M",s+r,.5+d+r):$t("m",n,0),n=0,i=!1),s+1<e&&t[a+1]||(o+=$t("h",l),l=0)):n++}return o}Me.render=function(e,r,o){const n=ro.getOptions(r),i=e.modules.size,l=e.modules.data,a=i+n.margin*2,s=n.color.light.a?"<path "+ue(n.color.light,"fill")+' d="M0 0h'+a+"v"+a+'H0z"/>':"",d="<path "+ue(n.color.dark,"stroke")+' d="'+lo(l,i,n.margin)+'"/>',f='viewBox="0 0 '+a+" "+a+'"',c='<svg xmlns="http://www.w3.org/2000/svg" '+(n.width?'width="'+n.width+'" height="'+n.width+'" ':"")+f+' shape-rendering="crispEdges">'+s+d+`</svg>
109
- `;return typeof o=="function"&&o(null,c),c};const ao=Bn,Wt=we,Ae=Ie,so=Me;function Zt(t,e,r,o,n){const i=[].slice.call(arguments,1),l=i.length,a=typeof i[l-1]=="function";if(!a&&!ao())throw new Error("Callback required as last argument");if(a){if(l<2)throw new Error("Too few arguments provided");l===2?(n=r,r=e,e=o=void 0):l===3&&(e.getContext&&typeof n>"u"?(n=o,o=void 0):(n=o,o=r,r=e,e=void 0))}else{if(l<1)throw new Error("Too few arguments provided");return l===1?(r=e,e=o=void 0):l===2&&!e.getContext&&(o=r,r=e,e=void 0),new Promise(function(s,d){try{const f=Wt.create(r,o);s(t(f,e,o))}catch(f){d(f)}})}try{const s=Wt.create(r,o);n(null,t(s,e,o))}catch(s){n(s)}}gt.create=Wt.create;gt.toCanvas=Zt.bind(null,Ae.render);gt.toDataURL=Zt.bind(null,Ae.renderToDataURL);gt.toString=Zt.bind(null,function(t,e,r){return so.render(t,r)});const uo=["src"],co=Yt({__name:"BuildShareDlg",props:{show:{default:!1},showModifiers:{}},emits:["update:show"],setup(t){const e=He(),r=$e(t,"show"),o=K(""),n=K(!1),i=gn(()=>{try{zt.parse(o.value),n.value=!1}catch{n.value=!0}},500);dt(()=>{o.value.trim()?i():n.value=!0});const l=K(!1),a=K(""),s=K("");dt(()=>{a.value?gt.toDataURL(a.value,{width:256,margin:2}).then(C=>{s.value=C}):s.value=""});const d=()=>{Ze(a.value),l.value=!1},f=Q(async()=>{const C=zt.parse(o.value),c=await tn(new TextEncoder().encode(zt.stringify({data:C,ctime:Date.now(),type:"share"})),"file.txt"),h=location.origin+e.resolve(`/s/${c.id}`).href;a.value=h,l.value=!0});return(C,c)=>{const h=pe,p=de,y=ge;return bt(),Ct(Ht,null,[b(p,{show:r.value,"onUpdate:show":c[1]||(c[1]=_=>r.value=_),preset:"dialog",title:"分享规则",positiveText:v(f).loading?"分享中...":"分享",onPositiveClick:v(f).invoke,loading:v(f).loading,positiveButtonProps:{disabled:v(n)},style:{width:"800px"},onAfterLeave:c[2]||(c[2]=_=>o.value="")},{default:S(()=>[b(h,{class:"gkd_code h-[calc(var(--gkd-height)*0.6)]",type:"textarea","show-count":"",value:v(o),"onUpdate:value":c[0]||(c[0]=_=>{v(f).loading||(o.value=_)}),placeholder:"请输入需要分享的规则"},null,8,["value"])]),_:1},8,["show","positiveText","onPositiveClick","loading","positiveButtonProps"]),b(p,{show:v(l),"onUpdate:show":c[3]||(c[3]=_=>ct(l)?l.value=_:null),preset:"dialog",title:"分享成功",positiveText:"复制并关闭",negativeText:"重新分享",onPositiveClick:d,onNegativeClick:c[4]||(c[4]=_=>{l.value=!1,o.value="",r.value=!0}),onAfterLeave:c[5]||(c[5]=_=>a.value=""),maskClosable:!1},{default:S(()=>[R("div",null,[b(y,{text:"",tag:"a",href:v(a),target:"_blank",type:"primary"},{default:S(()=>[H(fe(v(a)),1)]),_:1},8,["href"]),v(s)?(bt(),Ct("img",{key:0,src:v(s),"size-200px":"",block:""},null,8,uo)):he("",!0)])]),_:1},8,["show"])],64)}}}),fo={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},ho={flex:""},go={"h-full":"",flex:"","flex-items-center":""},po={flex:"","gap-24px":"","items-center":"","pr-8px":""},wo={flex:"",href:"/device",title:"连接设备"},mo={flex:"",href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},vo={flex:"","gap-10px":""},_o=Yt({__name:"HomePage",setup(t){const e=K([]),r=K(!0),o=async()=>{r.value=!0,e.value=(await We.getAllItems()).reverse(),T.value=[],r.value=!1};Ke(o);const n=ne({query:"",actualQuery:"",updateQuery:()=>{n.actualQuery=n.query.trim(),T.value=[]}}),i=ut(()=>{const E=n.actualQuery;return E?e.value.filter(u=>(le(u).name||"").includes(E)||(u.appId||"").includes(E)||(u.activityId||"").includes(E)):e.value}),l=Q(async()=>{await ln(),await o()}),{activityIdCol:a,appIdCol:s,appNameCol:d,ctimeCol:f,mtimeCol:C,deviceCol:c,appVersionCodeCol:h,appVersionNameCol:p,resetColWidth:y}=dn();dt(()=>{const E=i.value.reduce((u,J)=>(u.add(hn(J)),u),new Set);if(E.size<=1){c.filterOptions=void 0;return}c.filterOptions=[...E.values()].map(u=>({value:u,label:u}))}),dt(()=>{const E=i.value.reduce((u,J)=>(u.add(le(J).name),u),new Set);if(E.size<=1){d.filterOptions=void 0;return}d.filterOptions=[...E.values()].map(u=>({value:u,label:u}))}),dt(()=>{const E=i.value.reduce((u,J)=>(u.add(J.activityId),u),new Set);if(E.size<=1){a.filterOptions=void 0;return}a.filterOptions=[...E.values()].map(u=>({value:u,label:u}))});const _=Oe([{type:"selection"},f,C,c,d,s,h,p,a,{key:"actions",title:"操作",fixed:"right",width:"160px",render(E){return b(Ge,{snapshot:E,onDelete:o},null)}}]),m=ne({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:E=>{m.page=E},onUpdatePageSize:E=>{m.pageSize=E,m.page=1}});Je(m,y);const B=E=>{[f,C].forEach(u=>{E.columnKey!=u.key?u.sortOrder=void 0:u.sortOrder=E.order})};C.sortOrder="descend";const w=K(!1),g=K(""),N=Q(async()=>{const E=g.value.trim().split(`
110
- `).map(u=>u.trim()).filter(u=>Ye(u));E.length!=0&&(await an(E),await o(),g.value="")}),T=K([]),I=()=>Promise.all(T.value.map(E=>oe.getItem(E))),k=Q(async()=>{await new Promise((E,u)=>{Xe.warning({title:"删除",content:`是否批量删除 ${T.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:u,onEsc:u,onMaskClick:u,onNegativeClick:u,onPositiveClick:E})}),await Promise.all(T.value.map(E=>oe.removeItem(E))),await o()}),L=Q(async()=>{await en(await I())}),P=Q(async()=>{await nn(await I())}),F=Q(async()=>{await ie();const E=await on(await I());re({content:E.map(u=>je(u)).join(`
111
- `)+`
112
- `})}),O=Q(async()=>{await ie();const E=await rn(await I());re({content:E.map(u=>location.origin+"/i/"+u).join(`
113
- `)+`
114
- `})}),x=K(!1),X=K(!1);return(E,u)=>{const J=pe,U=pn,z=ge,_t=cn,V=sn,Y=un,It=fn,wt=de,mt=Qe,at=Cn;return bt(),Ct(Ht,null,[R("div",fo,[R("div",ho,[b(V,null,{default:S(()=>[b(_t,null,{default:S(()=>[b(J,{placeholder:"请输入应用名称/应用ID/界面ID",clearable:"",class:"min-w-320px",value:v(n).query,"onUpdate:value":u[0]||(u[0]=M=>v(n).query=M),onKeyup:qe(v(n).updateQuery,["enter"]),onChange:v(n).updateQuery},null,8,["value","onKeyup","onChange"]),b(z,{onClick:v(n).updateQuery},{icon:S(()=>[b(U,null,{default:S(()=>u[13]||(u[13]=[R("svg",{viewBox:"0 0 32 32"},[R("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)])),_:1})]),_:1},8,["onClick"])]),_:1}),v(T).length?(bt(),Ct(Ht,{key:0},[b(Y,null,{trigger:S(()=>[b(z,null,{default:S(()=>u[14]||(u[14]=[H(" 批量下载 ")])),_:1})]),default:S(()=>[b(V,{vertical:""},{default:S(()=>[b(z,{onClick:v(P).invoke,loading:v(P).loading},{default:S(()=>u[15]||(u[15]=[H(" 批量下载-快照 ")])),_:1},8,["onClick","loading"]),b(z,{onClick:v(L).invoke,loading:v(L).loading},{default:S(()=>u[16]||(u[16]=[H(" 批量下载-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),b(Y,null,{trigger:S(()=>[b(z,null,{default:S(()=>u[17]||(u[17]=[H(" 批量分享 ")])),_:1})]),default:S(()=>[b(V,{vertical:""},{default:S(()=>[b(z,{onClick:v(O).invoke,loading:v(O).loading},{default:S(()=>u[18]||(u[18]=[H(" 批量生成链接-快照 ")])),_:1},8,["onClick","loading"]),b(z,{onClick:v(F).invoke,loading:v(F).loading},{default:S(()=>u[19]||(u[19]=[H(" 批量生成链接-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),b(z,{onClick:v(k).invoke},{default:S(()=>u[20]||(u[20]=[H(" 批量删除 ")])),_:1},8,["onClick"]),R("div",go,fe(`已选中 ${v(T).length} 个快照`),1)],64)):he("",!0)]),_:1}),u[27]||(u[27]=R("div",{"flex-1":""},null,-1)),R("div",po,[b(z,{text:"",title:"设置",onClick:u[1]||(u[1]=M=>X.value=!0)},{icon:S(()=>[b(U,{size:24},{default:S(()=>u[21]||(u[21]=[R("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},[R("path",{d:"M19.43 12.98c.04-.32.07-.64.07-.98c0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1a.566.566 0 0 0-.18-.03c-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98c0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03c.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73c0 .21-.02.43-.05.73l-.14 1.13l.89.7l1.08.84l-.7 1.21l-1.27-.51l-1.04-.42l-.9.68c-.43.32-.84.56-1.25.73l-1.06.43l-.16 1.13l-.2 1.35h-1.4l-.19-1.35l-.16-1.13l-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7l-1.06.43l-1.27.51l-.7-1.21l1.08-.84l.89-.7l-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13l-.89-.7l-1.08-.84l.7-1.21l1.27.51l1.04.42l.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43l.16-1.13l.2-1.35h1.39l.19 1.35l.16 1.13l1.06.43c.43.18.83.41 1.23.71l.91.7l1.06-.43l1.27-.51l.7 1.21l-1.07.85l-.89.7l.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4s4-1.79 4-4s-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2z",fill:"currentColor"})],-1)])),_:1})]),_:1}),b(Y,null,{trigger:S(()=>[b(z,{text:""},{icon:S(()=>[b(U,{size:24},{default:S(()=>u[22]||(u[22]=[R("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},[R("path",{fill:"currentColor",d:"M28 19H14.83l2.58-2.59L16 15l-5 5l5 5l1.41-1.41L14.83 21H28z"}),R("path",{fill:"currentColor",d:"M24 14v-4a1 1 0 0 0-.29-.71l-7-7A1 1 0 0 0 16 2H6a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2h-2v2H6V4h8v6a2 2 0 0 0 2 2h6v2Zm-8-4V4.41L21.59 10Z"})],-1)])),_:1})]),_:1})]),default:S(()=>[b(V,{vertical:""},{default:S(()=>[b(z,{onClick:v(l).invoke,loading:v(l).loading},{default:S(()=>u[23]||(u[23]=[H(" 导入本地文件 ")])),_:1},8,["onClick","loading"]),b(z,{onClick:u[2]||(u[2]=M=>w.value=!0),loading:v(N).loading},{default:S(()=>u[24]||(u[24]=[H(" 导入网络文件 ")])),_:1},8,["loading"])]),_:1})]),_:1}),R("a",wo,[b(z,{text:""},{icon:S(()=>[b(U,{size:24},{default:S(()=>u[25]||(u[25]=[R("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},[R("path",{fill:"currentColor",d:"M18.35 14.85L16.9 13.4q.3-.275.463-.637t.162-.763t-.162-.763t-.463-.637l1.45-1.45q.575.575.875 1.313t.3 1.537t-.3 1.538t-.875 1.312m2.45 2.45l-1.4-1.4q.775-.775 1.2-1.775T21.025 12T20.6 9.875T19.4 8.1l1.4-1.4q1.075 1.05 1.65 2.425T23.025 12t-.575 2.875T20.8 17.3M7 23q-.825 0-1.412-.587T5 21V3q0-.825.588-1.412T7 1h10q.825 0 1.413.588T19 3v4h-2V6H7v12h10v-1h2v4q0 .825-.587 1.413T17 23zm0-3v1h10v-1zM7 4h10V3H7zm0 0V3zm0 16v1z"})],-1)])),_:1})]),_:1})]),R("a",mo,[b(z,{text:""},{icon:S(()=>[b(U,{size:24},{default:S(()=>u[26]||(u[26]=[R("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 496 512"},[R("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)])),_:1})]),_:1})])])]),b(It,{striped:"",data:v(i),columns:v(_),scrollX:1800,pagination:v(m),checkedRowKeys:v(T),"onUpdate:checkedRowKeys":u[3]||(u[3]=M=>ct(T)?T.value=M:null),rowKey:M=>M.id,"onUpdate:sorter":B,size:"small",class:"flex-1",flexHeight:"",loading:v(r)},null,8,["data","columns","pagination","checkedRowKeys","rowKey","loading"])]),b(wt,{show:v(w),"onUpdate:show":u[5]||(u[5]=M=>ct(w)?w.value=M:null),preset:"dialog",title:"导入网络文件",showIcon:!1,positiveText:"确认",negativeText:"取消",style:{width:"800px"},onPositiveClick:v(N).invoke,loading:v(N).loading,onAfterLeave:u[6]||(u[6]=M=>g.value="")},{default:S(()=>[b(J,{value:v(g),"onUpdate:value":u[4]||(u[4]=M=>{v(N).loading||(g.value=M)}),type:"textarea",placeholder:`1.支持ZIP文件链接
115
- 2.支持快照链接
116
- 每行一个
117
- 空白行自动忽略
118
- 非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"}},null,8,["value"])]),_:1},8,["show","onPositiveClick","loading"]),b(co,{show:v(x),"onUpdate:show":u[7]||(u[7]=M=>ct(x)?x.value=M:null)},null,8,["show"]),b(wt,{show:v(X),"onUpdate:show":u[11]||(u[11]=M=>ct(X)?X.value=M:null),preset:"dialog",title:"设置",showIcon:!1,positiveText:"关闭",style:{width:"600px"},onPositiveClick:u[12]||(u[12]=M=>X.value=!1)},{default:S(()=>[b(mt,{checked:v(nt).ignoreUploadWarn,"onUpdate:checked":u[8]||(u[8]=M=>v(nt).ignoreUploadWarn=M)},{default:S(()=>u[28]||(u[28]=[H(" 关闭生成分享链接弹窗提醒 ")])),_:1},8,["checked"]),u[31]||(u[31]=R("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),b(mt,{checked:v(nt).ignoreWasmWarn,"onUpdate:checked":u[9]||(u[9]=M=>v(nt).ignoreWasmWarn=M)},{default:S(()=>u[29]||(u[29]=[H(" 关闭浏览器版本正则表达式 WASM(GC) 提醒 ")])),_:1},8,["checked"]),u[32]||(u[32]=R("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),R("div",vo,[b(at,{value:v(nt).autoUploadImport,"onUpdate:value":u[10]||(u[10]=M=>v(nt).autoUploadImport=M)},null,8,["value"]),u[30]||(u[30]=R("div",null,"打开快照页面自动生成分享链接(请确保不含隐私)",-1))])]),_:1},8,["show"])],64)}}});export{_o as default};
119
- //# sourceMappingURL=HomePage-DvhjaXqH.js.map
@@ -1,2 +0,0 @@
1
- import{h as k,A as d,aO as w,Q as y,aP as v,aQ as n,W as S,aR as I,aC as R,C as f,D as g,G as i,L as h,K as x,O as B,a6 as C,a7 as D,M as N,aD as V,J as b}from"./index-CO1qYhnZ.js";import{m as q,a as _,l,e as O,g as Q}from"./fetch-2UM4nFb0.js";import{e as U}from"./export-Buob1Zpw.js";import{a as F}from"./import-ChO_D4YK.js";import"./index-CE_5kTG8.js";const L={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","pt-40px":"","flex-col":"","flex-items-center":""},M={key:0,"mb-20px":""},K=k({__name:"ImportPage",setup(P){const p=V(),c=b(),u=d(!0),r=d("加载中..."),m=async s=>{c.replace({name:"snapshot",params:{snapshotId:s},query:O(p.query,["str","gkd"])})},o=String(p.query.url||""),t=w(o);return y(async()=>{var s;if(!v(o)){q.error("非法URL参数"),await _(1e3),c.replace({path:"/"});return}if(t){const e=n[t];if(e)if(await S.getItem(e)){m(e);return}else delete n[t]}l.start();try{const[e]=(s=await F(t?I(t):o))!=null?s:[];if(e.status=="fulfilled"){l.finish();const a=e.value;a!=null&&a.id?(t&&(U(t),n[t]=a.id,R[a.id]=t),u.value=!1,await _(500),m(a.id)):r.value="获取资源失败"}else throw e.reason}catch{l.error(),r.value="加载资源失败"}}),(s,e)=>(f(),g("div",L,[i(Q)()?B("",!0):(f(),g("div",M,e[0]||(e[0]=[h(" 建议安装并启用 "),x("a",{href:"https://github.com/gkd-kit/network-extension",target:"_blank",rel:"noopener noreferrer"}," 油猴脚本 ",-1),h(" 获取更快加载速度 ")]))),C(x("div",null,N(i(r)),513),[[D,i(u)]])]))}});export{K as default};
2
- //# sourceMappingURL=ImportPage-Gwj1_Wz3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportPage-Gwj1_Wz3.js","sources":["../../src/views/ImportPage.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { loadingBar, message } from '@/utils/discrete';\nimport { detectSnapshot } from '@/utils/export';\nimport { gmOk } from '@/utils/gm';\nimport { importFromNetwork } from '@/utils/import';\nimport { delay, filterQuery } from '@/utils/others';\nimport { importStorage, snapshotStorage, urlStorage } from '@/utils/storage';\nimport { getImportFileUrl, getImportId, isValidUrl } from '@/utils/url';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst loading = shallowRef(true);\nconst tip = shallowRef(`加载中...`);\n\nconst goToSnapshot = async (snapshotId: number) => {\n router.replace({\n name: 'snapshot',\n params: { snapshotId },\n query: filterQuery(route.query, ['str', 'gkd']),\n });\n};\n\nconst url = String(route.query.url || ``);\nconst importId = getImportId(url);\n\nonMounted(async () => {\n if (!isValidUrl(url)) {\n message.error(`非法URL参数`);\n await delay(1000);\n router.replace({\n path: `/`,\n });\n return;\n }\n if (importId) {\n const snapshotId = urlStorage[importId];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n goToSnapshot(snapshotId);\n return;\n } else {\n delete urlStorage[importId];\n }\n }\n }\n loadingBar.start();\n try {\n const [result] =\n (await importFromNetwork(importId ? getImportFileUrl(importId) : url)) ??\n [];\n\n if (result.status == 'fulfilled') {\n loadingBar.finish();\n const snapshot = result.value;\n if (snapshot?.id) {\n if (importId) {\n detectSnapshot(importId);\n urlStorage[importId] = snapshot.id;\n importStorage[snapshot.id] = importId;\n }\n loading.value = false;\n await delay(500);\n goToSnapshot(snapshot.id);\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 pt-40px\n flex-col\n flex-items-center\n >\n <div v-if=\"!gmOk()\" mb-20px>\n 建议安装并启用\n <a\n href=\"https://github.com/gkd-kit/network-extension\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 油猴脚本\n </a>\n 获取更快加载速度\n </div>\n <div v-show=\"loading\">\n {{ tip }}\n </div>\n </div>\n</template>\n"],"names":["route","useRoute","router","useRouter","loading","shallowRef","tip","goToSnapshot","snapshotId","replace","name","params","query","filterQuery","url","String","importId","getImportId","onMounted","isValidUrl","message","error","delay","path","urlStorage","snapshotStorage","getItem","loadingBar","start","result","_a","importFromNetwork","getImportFileUrl","status","finish","snapshot","value","id","detectSnapshot","importStorage","reason"],"mappings":"wgBASA,MAAMA,EAAQC,IACRC,EAASC,IAETC,EAAUC,EAAW,EAAI,EACzBC,EAAMD,EAAW,QAAQ,EAEzBE,EAAe,MAAOC,GAAuB,CACjDN,EAAOO,QAAQ,CACbC,KAAM,WACNC,OAAQ,CAAEH,WAAAA,CAAY,EACtBI,MAAOC,EAAYb,EAAMY,MAAO,CAAC,MAAO,KAAK,CAAC,CAChD,CAAC,GAGGE,EAAMC,OAAOf,EAAMY,MAAME,KAAO,EAAE,EAClCE,EAAWC,EAAYH,CAAG,EAEhCI,OAAAA,EAAU,SAAY,OACpB,GAAI,CAACC,EAAWL,CAAG,EAAG,CACpBM,EAAQC,MAAM,SAAS,EACvB,MAAMC,EAAM,GAAI,EAChBpB,EAAOO,QAAQ,CACbc,KAAM,GACR,CAAC,EACD,MACF,CACA,GAAIP,EAAU,CACZ,MAAMR,EAAagB,EAAWR,CAAQ,EACtC,GAAIR,EAEF,GADiB,MAAMiB,EAAgBC,QAAQlB,CAAU,EAC3C,CACZD,EAAaC,CAAU,EACvB,MACF,MACE,OAAOgB,EAAWR,CAAQ,CAGhC,CACAW,EAAWC,MAAK,EAChB,GAAI,CACF,KAAM,CAACC,CAAM,GACVC,EAAA,MAAMC,EAAkBf,EAAWgB,EAAiBhB,CAAQ,EAAIF,CAAG,IAAnE,KAAAgB,EACD,GAEF,GAAID,EAAOI,QAAU,YAAa,CAChCN,EAAWO,OAAM,EACjB,MAAMC,EAAWN,EAAOO,MACpBD,GAAAA,MAAAA,EAAUE,IACRrB,IACFsB,EAAetB,CAAQ,EACvBQ,EAAWR,CAAQ,EAAImB,EAASE,GAChCE,EAAcJ,EAASE,EAAE,EAAIrB,GAE/BZ,EAAQgC,MAAQ,GAChB,MAAMd,EAAM,GAAG,EACff,EAAa4B,EAASE,EAAE,GAExB/B,EAAI8B,MAAQ,QAEhB,KACE,OAAMP,EAAOW,MAEjB,MAAQ,CACNb,EAAWN,MAAK,EAChBf,EAAI8B,MAAQ,QACd,CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import{h as b,m as _,V,A as c,B,G as s,C as f,D as m,K as a,M as h,E as r,F as l,O as C,aD as D,P as E,L as k}from"./index-CO1qYhnZ.js";import{u as S,t as G,c as R,l as v,h as z}from"./fetch-2UM4nFb0.js";import{b as F}from"./index-BhADOIu0.js";import{l as w,_ as K,N as L}from"./index-B5vK2Zkg.js";const P={key:0,"pt-40px":"","text-center":""},A={key:1,"pt-40px":"","text-center":""},H={key:2,"p-20px":"",flex:"","flex-col":"","gap-20px":"","h-full":"",relative:""},I={flex:"","flex-items-center":"","gap-10px":""},M={"h-full":"",relative:""},J=b({__name:"PreviewSharePage",setup(U){const g=D();S(),F("GKD-规则预览");const x=_(()=>{const e=V(String(g.query.url));if(e)return e;const t=String(g.params.github_asset_id);return new URL(`https://github.com/gkd-kit/inspect/files/${t}/file.txt`)}),n=c(),i=c(""),u=_(()=>{var e,t;return(e=n.value)!=null&&e.data?w.stringify((t=n.value)==null?void 0:t.data,null,2):""}),d=c(!0);B(async()=>{var e,t;d.value=!0;try{v.start();const o=await z(x.value.href,void 0,{proxy:!0}).then(p=>p.text());if(o=="Not Found")throw new Error("Not Found");if(n.value=w.parse(o),(e=n.value)!=null&&e.ctime&&((t=n.value)!=null&&t.data))v.finish();else throw new Error(o)}catch(o){v.error(),o instanceof Error?i.value=o.message:i.value=String(o||"unknown error")}d.value=!1});const y=()=>{const e=new URL("gkd://import");e.searchParams.set("url",x.value.href),location.href=e.href};return(e,t)=>{const o=E,p=L,N=K;return s(d)?(f(),m("div",P,"加载中...")):s(i)?(f(),m("div",A,[t[1]||(t[1]=a("div",null,"解析失败",-1)),a("div",null,h(s(i)),1)])):s(n)&&s(u)?(f(),m("div",H,[a("div",I,[t[3]||(t[3]=a("div",{"font-bold":""},"规则预览",-1)),a("div",null,h(s(G)(s(n).ctime)),1),t[4]||(t[4]=a("div",{"flex-1":""},null,-1)),r(o,{text:"",tag:"a",href:"https://gkd.li/guide/",target:"_blank",type:"primary"},{default:l(()=>t[2]||(t[2]=[k(" 下载 GKD ")])),_:1})]),r(N,{class:"flex-1 gkd_code",type:"textarea","show-count":"",value:s(u),disabled:""},{suffix:l(()=>[a("div",M,[r(o,{class:"absolute right-0 top-10px",size:"small",onClick:t[0]||(t[0]=T=>s(R)(s(u)))},{icon:l(()=>[r(p,null,{default:l(()=>t[5]||(t[5]=[a("svg",{viewBox:"0 0 24 24"},[a("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z",fill:"currentColor"})],-1)])),_:1})]),_:1})])]),_:1},8,["value"]),r(o,{onClick:y},{default:l(()=>t[6]||(t[6]=[k(" 导入 GKD ")])),_:1})])):C("",!0)}}});export{J as default};
2
- //# sourceMappingURL=PreviewSharePage-Hyw0Tb6U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectorPage-D1_qZf8a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}