@gkd-kit/inspect 0.0.1740333832069 → 0.0.1740482998257
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-M9Jd4dkp.js → ActionCard.vue_vue_type_script_setup_true_lang-DacJ-UuI.js} +4 -4
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-M9Jd4dkp.js.map → ActionCard.vue_vue_type_script_setup_true_lang-DacJ-UuI.js.map} +1 -1
- package/dist/assets/DevicePage-DnuVnPW5.js +49 -0
- package/dist/assets/{DevicePage-BY8c3kk2.js.map → DevicePage-DnuVnPW5.js.map} +1 -1
- package/dist/assets/HomePage-C7CH_Ajg.js +112 -0
- package/dist/assets/{HomePage-DYj0zwbp.js.map → HomePage-C7CH_Ajg.js.map} +1 -1
- package/dist/assets/ImportPage-BWc_h_CQ.js +2 -0
- package/dist/assets/{ImportPage-Dx4dFmFA.js.map → ImportPage-BWc_h_CQ.js.map} +1 -1
- package/dist/assets/{Input-BaPhd4Xe.js → Input-CXshwgiN.js} +2 -2
- package/dist/assets/{Input-BaPhd4Xe.js.map → Input-CXshwgiN.js.map} +1 -1
- package/dist/assets/SelectorPage-BLZCmKya.css +1 -0
- package/dist/assets/SelectorPage-DycNBpQf.js +2 -0
- package/dist/assets/SelectorPage-DycNBpQf.js.map +1 -0
- package/dist/assets/SnapshotPage-CozGdn53.js +272 -0
- package/dist/assets/SnapshotPage-CozGdn53.js.map +1 -0
- package/dist/assets/{SvgPage--vO-sFJF.js → SvgPage-D3NUkPtO.js} +2 -2
- package/dist/assets/{SvgPage--vO-sFJF.js.map → SvgPage-D3NUkPtO.js.map} +1 -1
- package/dist/assets/{_404Page-7wWLVOx5.js → _404Page-BE1vUiRw.js} +2 -2
- package/dist/assets/{_404Page-7wWLVOx5.js.map → _404Page-BE1vUiRw.js.map} +1 -1
- package/dist/assets/chunk-D5zCSjLw.js +3 -0
- package/dist/assets/{chunk-ByxVegT1.js.map → chunk-D5zCSjLw.js.map} +1 -1
- package/dist/assets/dayjs.min-Bg7KENpr.js +371 -0
- package/dist/assets/dayjs.min-Bg7KENpr.js.map +1 -0
- package/dist/assets/{error-D3WWUJoU.js → error-BlyahdiG.js} +5 -5
- package/dist/assets/{error-D3WWUJoU.js.map → error-BlyahdiG.js.map} +1 -1
- package/dist/assets/{import-BNdtZgHc.js → import-Cxh63wVM.js} +2 -2
- package/dist/assets/{import-BNdtZgHc.js.map → import-Cxh63wVM.js.map} +1 -1
- package/dist/assets/index-BvMJHG7T.js +10 -0
- package/dist/assets/index-BvMJHG7T.js.map +1 -0
- package/dist/assets/index-CO6qK6ey.css +1 -0
- package/dist/assets/{index-BTV8ur8d.js → index-CYASaayu.js} +57 -49
- package/dist/assets/index-CYASaayu.js.map +1 -0
- package/dist/assets/{jszip.min-lOcGYU14.js → jszip.min-BOS24VEm.js} +2 -2
- package/dist/assets/{jszip.min-lOcGYU14.js.map → jszip.min-BOS24VEm.js.map} +1 -1
- package/dist/assets/node-CLCaX0fb.js +2 -0
- package/dist/assets/node-CLCaX0fb.js.map +1 -0
- package/dist/assets/{polyfills-D3OwY3vx.js → polyfills-VJCO8far.js} +2 -2
- package/dist/assets/{polyfills-D3OwY3vx.js.map → polyfills-VJCO8far.js.map} +1 -1
- package/dist/assets/{snapshot-Dvvnbv-2.js → snapshot-yzw3cyQE.js} +3 -3
- package/dist/assets/{snapshot-Dvvnbv-2.js.map → snapshot-yzw3cyQE.js.map} +1 -1
- package/dist/assets/{table-DBRGLq9y.js → table-DC8EQEY9.js} +4 -4
- package/dist/assets/{table-DBRGLq9y.js.map → table-DC8EQEY9.js.map} +1 -1
- package/dist/index.html +3 -3
- package/package.json +2 -2
- package/dist/assets/DevicePage-BY8c3kk2.js +0 -49
- package/dist/assets/HomePage-DYj0zwbp.js +0 -112
- package/dist/assets/ImportPage-Dx4dFmFA.js +0 -2
- package/dist/assets/SelectorPage-DKTOtPQ2.js +0 -2
- package/dist/assets/SelectorPage-DKTOtPQ2.js.map +0 -1
- package/dist/assets/SnapshotPage-TZ0BPxvr.js +0 -280
- package/dist/assets/SnapshotPage-TZ0BPxvr.js.map +0 -1
- package/dist/assets/chunk-ByxVegT1.js +0 -3
- package/dist/assets/dayjs.min-BV2cDtR1.js +0 -371
- package/dist/assets/dayjs.min-BV2cDtR1.js.map +0 -1
- package/dist/assets/index-BTV8ur8d.js.map +0 -1
- package/dist/assets/index-DkIJjf93.css +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const b=t=>{let r=t.lastIndexOf(".");return r===-1?t:t.slice(r+1)},l=(t,r)=>t+(r===1?"":r),y=(t,r=!0,e=1)=>{if(!t.parent)return r?"[parent=null]":[l("<",e),"[parent=null]"].join(" ");if(t.idQf){const i=t.attr.vid?"vid":"id",a=t.attr.vid||t.attr.id;return r?`[${i}="${a}"]`:[l("<",e),`[${i}="${a}"]`].join(" ")}return r?["@"+b(t.attr.name),y(t.parent,!1,t.attr.index+1)].join(" "):[l("<",e),b(t.attr.name),y(t.parent,!1,t.attr.index+1)].join(" ")},I=t=>(t.forEach(r=>{var e,i,a,n,c,p,u,g,m,o,h,v;(e=r.attr)!=null||(r.attr={name:"NULL"}),(i=r.children)!=null||(r.children=[]),r.parent=t[r.pid],r.parent&&((n=(a=r.attr).index)!=null||(a.index=r.parent.children.length),(c=r.parent)==null||c.children.push(r)),Object.defineProperty(r,"isLeaf",{get(){return r.children.length==0}}),r.attr.depth=((g=(u=(p=r.parent)==null?void 0:p.attr)==null?void 0:u.depth)!=null?g:-1)+1,(o=(m=r.attr)._id)!=null||(m._id=r.id),(v=(h=r.attr)._pid)!=null||(h._pid=r.pid)}),t[0]),k=(t,r)=>{const e=t.attr,{x:i,y:a}=r;return e.left<=i&&i<=e.right&&e.top<=a&&a<=e.bottom},x=(t,r)=>t.attr.left<=r.attr.left&&t.attr.top<=r.attr.top&&t.attr.right>=r.attr.right&&t.attr.bottom>=r.attr.bottom,S=(t,r)=>t.attr.left===r.attr.left&&t.attr.top===r.attr.top&&t.attr.right===r.attr.right&&t.attr.bottom===r.attr.bottom,f=(t,r)=>{let e=r.parent;for(;;){if(e===t)return!0;if(e=e==null?void 0:e.parent,!e)break}return!1},R=(t,r)=>{var i;if(!t||!r)return[];let e=[];for(const a of t)((i=a==null?void 0:a.attr)==null?void 0:i.left)!==void 0&&k(a,r)&&e.push(a);return e.length<=1||(e=e.filter(a=>!e.some(n=>f(a,n)&&x(a,n))),e.length<=1)||(e=e.filter(a=>!e.some(n=>a!=n&&(f(a,n)||f(a.parent,n))&&x(a,n)&&!S(a,n))),e.sort((a,n)=>$(a)-$(n))),e},$=t=>{var i,a;const r=(i=t.attr.width)!=null?i:t.attr.right-t.attr.left,e=(a=t.attr.height)!=null?a:t.attr.bottom-t.attr.top;return r*e},j=t=>{const r=t.attr.childCount;return(t.attr.name||"🐔"+(r>1?"":` [${r}]`)).split(".").at(-1)},w=t=>t.attr.text||t.attr.desc||t.attr.vid||t.attr.id,s=Symbol("labelKey"),A=t=>{if(Reflect.has(t,s))return Reflect.get(t,s);let r=j(t);const e=t.children.length;e>1&&(r=`${r} [${e}]`);const i=w(t);return i&&(r=`${r} : ${i}`),Reflect.set(t,s,r),r},C=t=>typeof t.device=="object"&&t.device?t.device:t,L=t=>t.appInfo||{id:t.appId,name:t.appName,versionCode:t.appVersionCode,versionName:t.appVersionName,hidden:!1,isSystem:!1,mtime:Date.now()},q=t=>{const r=C(t);return t.gkdAppInfo||{id:"li.songe.gkd",name:"GKD",versionCode:r.gkdVersionCode,versionName:r.gkdVersionName,hidden:!1,isSystem:!1,mtime:Date.now()}},D=t=>!!(t&&typeof t=="object"&&typeof t.id=="number"&&t.attr),V=(t,r)=>{const i=!!(t.idQf||t.textQf||t.quickFind)?"bold":void 0,a=t.id===(r==null?void 0:r.id)?"#00F":void 0;return{fontWeight:i,color:a}};export{y as a,V as b,A as c,C as d,q as e,R as f,L as g,D as i,I as l};
|
|
2
|
+
//# sourceMappingURL=node-CLCaX0fb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-CLCaX0fb.js","sources":["../../src/utils/node.ts"],"sourcesContent":["import type {\n AppInfo,\n Device,\n Position,\n RawNode,\n SizeExt,\n Snapshot,\n} from './types';\n\n// 获取元素id最后一个.后面的内容\nconst getShortName = (fullName: string): string => {\n let lstIndex = fullName.lastIndexOf('.');\n if (lstIndex === -1) {\n return fullName;\n }\n return fullName.slice(lstIndex + 1);\n};\n\nconst getConnectOperator = (operator: string, index: number): string => {\n return operator + (index === 1 ? '' : index);\n};\n\nexport const getNodeSelectorText = (\n curNode: RawNode /* 当前节点 */,\n isFirst: boolean = true /* 调用时须省略 */,\n lastIndex: number = 1 /* 调用时须省略 */,\n): string => {\n // 先处理递归基\n if (!curNode.parent) {\n // 当前节点为根节点\n if (isFirst) {\n return '[parent=null]';\n } else {\n return [getConnectOperator('<', lastIndex), '[parent=null]'].join(' ');\n }\n }\n if (curNode.idQf) {\n // 可以快速查询\n // (依赖页面结构而不是文本内容,只处理idQf的情况)\n const key = curNode.attr.vid ? 'vid' : 'id';\n const value = curNode.attr.vid || curNode.attr.id;\n if (isFirst) {\n return `[${key}=\"${value}\"]`;\n } else {\n return [getConnectOperator('<', lastIndex), `[${key}=\"${value}\"]`].join(\n ' ',\n );\n }\n }\n if (isFirst) {\n return [\n '@' + getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n }\n return [\n getConnectOperator('<', lastIndex),\n getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n};\n\nexport const listToTree = (nodes: RawNode[]) => {\n nodes.forEach((node) => {\n node.attr ??= { name: `NULL` } as any;\n node.children ??= [];\n node.parent = nodes[node.pid];\n if (node.parent) {\n node.attr.index ??= node.parent.children.length;\n node.parent?.children.push(node);\n }\n Object.defineProperty(node, 'isLeaf', {\n get() {\n return node.children.length == 0;\n },\n });\n node.attr.depth = (node.parent?.attr?.depth ?? -1) + 1;\n node.attr._id ??= node.id;\n node.attr._pid ??= node.pid;\n });\n return nodes[0];\n};\n\nconst xyInNode = (node: RawNode, position: Position) => {\n const attr = node.attr;\n const { x, y } = position;\n return attr.left <= x && x <= attr.right && attr.top <= y && y <= attr.bottom;\n};\n\nconst includesRectNode = (outer: RawNode, inner: RawNode) => {\n return (\n outer.attr.left <= inner.attr.left &&\n outer.attr.top <= inner.attr.top &&\n outer.attr.right >= inner.attr.right &&\n outer.attr.bottom >= inner.attr.bottom\n );\n};\n\nconst equalRectNode = (a: RawNode, b: RawNode) => {\n return (\n a.attr.left === b.attr.left &&\n a.attr.top === b.attr.top &&\n a.attr.right === b.attr.right &&\n a.attr.bottom === b.attr.bottom\n );\n};\n\nconst isAncestor = (parent: RawNode | undefined, child: RawNode): boolean => {\n let p = child.parent;\n while (true) {\n if (p === parent) return true;\n p = p?.parent;\n if (!p) break;\n }\n return false;\n};\n\nexport const findNodesByXy = (\n nodes: RawNode[] | undefined,\n position: Position | undefined,\n): RawNode[] => {\n if (!nodes || !position) return [];\n let results: RawNode[] = [];\n for (const node of nodes) {\n if (node?.attr?.left === undefined) continue;\n if (!xyInNode(node, position)) continue;\n results.push(node);\n }\n if (results.length <= 1) {\n return results;\n }\n\n // remove ancestor node\n results = results.filter((node) => {\n return !results.some(\n (other) => isAncestor(node, other) && includesRectNode(node, other),\n );\n });\n if (results.length <= 1) {\n return results;\n }\n\n // remove includes node\n results = results.filter((node) => {\n return !results.some(\n (other) =>\n node != other &&\n // ancestor https://i.gkd.li/i/17451180\n // uncle https://i.gkd.li/i/14881985\n (isAncestor(node, other) || isAncestor(node.parent, other)) &&\n includesRectNode(node, other) &&\n !equalRectNode(node, other),\n );\n });\n results.sort((a, b) => {\n return getNodeArea(a) - getNodeArea(b);\n });\n return results;\n};\n\nconst getNodeArea = (node: RawNode) => {\n const w = node.attr.width ?? node.attr.right - node.attr.left;\n const h = node.attr.height ?? node.attr.bottom - node.attr.top;\n return w * h;\n};\n\nexport function* traverseNode(node: RawNode, skipKeys: number[] = []) {\n const stack: RawNode[] = [];\n stack.push(node);\n while (stack.length > 0) {\n const top = stack.pop()!;\n if (skipKeys.includes(top.id)) {\n continue;\n }\n yield top;\n stack.push(...[...top.children].reverse());\n }\n}\n\nexport const getImageSize = async (src: string) => {\n return new Promise<SizeExt>((res, rej) => {\n const img = new Image();\n img.onload = () => {\n res({\n height: img.naturalHeight,\n width: img.naturalWidth,\n });\n };\n img.onerror = rej;\n img.src = src;\n });\n};\nconst getSafeName = (node: RawNode) => {\n const c = node.attr.childCount;\n return (node.attr.name || `🐔` + (c > 1 ? `` : ` [${c}]`)).split('.').at(-1)!;\n};\nconst getLabelSuffix = (node: RawNode) => {\n return node.attr.text || node.attr.desc || node.attr.vid || node.attr.id;\n};\nconst labelKey = Symbol(`labelKey`);\nexport const getNodeLabel = (node: RawNode): string => {\n if (Reflect.has(node, labelKey)) {\n return Reflect.get(node, labelKey);\n }\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n // if (text.length > labelLimit) {\n // label = `${label} : ${text.slice(0, labelLimit)}...`;\n // } else {\n // label = `${label} : ${text}`;\n // }\n label = `${label} : ${text}`;\n }\n Reflect.set(node, labelKey, label);\n return label;\n};\nexport const getLimitLabel = (node: RawNode, limit = 15): string => {\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n if (text.length > limit) {\n return `${label} : ${text.slice(0, limit)}...`;\n }\n return `${label} : ${text}`;\n }\n return label;\n};\n\nexport const getDevice = (snapshot: Snapshot): Device => {\n if (typeof snapshot.device == 'object' && snapshot.device) {\n return snapshot.device;\n }\n return snapshot as unknown as Device;\n};\n\nexport const getAppInfo = (snapshot: Snapshot): AppInfo => {\n return (\n snapshot.appInfo || {\n id: snapshot.appId,\n name: snapshot.appName,\n versionCode: snapshot.appVersionCode,\n versionName: snapshot.appVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const getGkdAppInfo = (snapshot: Snapshot): AppInfo => {\n const device = getDevice(snapshot);\n return (\n snapshot.gkdAppInfo || {\n id: 'li.songe.gkd',\n name: 'GKD',\n versionCode: device.gkdVersionCode,\n versionName: device.gkdVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const isRawNode = (node: any): node is RawNode => {\n if (\n node &&\n typeof node === 'object' &&\n typeof node.id === 'number' &&\n node.attr\n ) {\n return true;\n }\n return false;\n};\n\nexport const getNodeStyle = (node: RawNode, focusNode?: RawNode) => {\n const qf = Boolean(node.idQf || node.textQf || node.quickFind);\n const fontWeight = qf ? 'bold' : undefined;\n const color = node.id === focusNode?.id ? '#00F' : undefined;\n return {\n fontWeight,\n color,\n };\n};\n"],"names":["getShortName","fullName","lstIndex","getConnectOperator","operator","index","getNodeSelectorText","curNode","isFirst","lastIndex","key","value","listToTree","nodes","node","_a","_b","_d","_c","_e","_h","_g","_f","_j","_i","_l","_k","xyInNode","position","attr","x","y","includesRectNode","outer","inner","equalRectNode","a","b","isAncestor","parent","child","p","findNodesByXy","results","other","getNodeArea","w","h","getSafeName","c","getLabelSuffix","labelKey","getNodeLabel","label","length","text","getDevice","snapshot","getAppInfo","getGkdAppInfo","device","isRawNode","getNodeStyle","focusNode","fontWeight","color"],"mappings":"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"}
|