2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
|
|
import{b as d,g as se}from"./settings-mco8QK8Y.js";import{i as N,n as ae}from"./downloadIntent-Dv31jC2S.js";import{n as M}from"./clipTypes-C_ha5Ash.js";function _(){const e=document.body||document.documentElement;if(!e)return[];const n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),t=[];let r=0,o=n.nextNode();for(;o;){const l=o,s=(l.nodeValue||"").length;s>0&&(t.push({node:l,start:r,end:r+s}),r+=s),o=n.nextNode()}return t}function G(e){return e.map(n=>n.node.nodeValue||"").join("")}function X(e){const n=document.body||document.documentElement;if(!n)return"";if(e===n)return"/body";const t=[];let r=e.nodeType===Node.TEXT_NODE?e.parentNode:e;for(;r&&r!==n&&r.nodeType===Node.ELEMENT_NODE;){const o=r,l=o.tagName.toLowerCase();let i=1,s=o.previousElementSibling;for(;s;)s.tagName.toLowerCase()===l&&(i+=1),s=s.previousElementSibling;t.unshift(`${l}[${i}]`),r=o.parentElement}return`/body/${t.join("/")}`}function Y(e){if(!e)return null;try{return document.evaluate(e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}function ce(e){const n=e.commonAncestorContainer,t=n.nodeType===Node.ELEMENT_NODE?n:n.parentElement;return!(!t||t.closest("input, textarea, select, button, script, style")||t.closest('[contenteditable="true"]'))}function ue(e,n,t){const r=e.slice(Math.max(0,n-40),n).trim(),o=e.slice(t,Math.min(e.length,t+40)).trim();return{prefix:r,suffix:o}}function de(e,n){const t=e.startContainer,r=e.endContainer;if(t.nodeType!==Node.TEXT_NODE||r.nodeType!==Node.TEXT_NODE)return null;const o=n.find(i=>i.node===t),l=n.find(i=>i.node===r);return!o||!l?null:{start:o.start+e.startOffset,end:l.start+e.endOffset}}function Q(e,n){if(!Number.isFinite(e)||!Number.isFinite(n)||e>=n)return null;const t=_(),r=t.find(i=>e>=i.start&&e<i.end),o=t.find(i=>n>i.start&&n<=i.end);if(!r||!o)return null;const l=document.createRange();return l.setStart(r.node,Math.max(0,Math.min(r.node.length,e-r.start))),l.setEnd(o.node,Math.max(0,Math.min(o.node.length,n-o.start))),l}function fe(e){if(!e.xpathStart||!e.xpathEnd)return null;const n=Y(e.xpathStart),t=Y(e.xpathEnd);if(!n||!t||n.nodeType!==Node.ELEMENT_NODE||t.nodeType!==Node.ELEMENT_NODE)return null;const r=s=>{const a=document.createTreeWalker(s,NodeFilter.SHOW_TEXT).nextNode();return a&&a.nodeType===Node.TEXT_NODE?a:null},o=r(n),l=r(t);if(!o||!l||o.nodeType!==Node.TEXT_NODE||l.nodeType!==Node.TEXT_NODE||!Number.isInteger(e.startOffset)||!Number.isInteger(e.endOffset))return null;const i=document.createRange();return i.setStart(o,Math.min((o.nodeValue||"").length,Math.max(0,e.startOffset||0))),i.setEnd(l,Math.min((l.nodeValue||"").length,Math.max(0,e.endOffset||0))),i}function pe(e){const n=String(e.exact||"");if(!n)return null;const t=_(),r=G(t);let o=r.indexOf(n);if(o<0)return null;const l=String(e.prefix||""),i=String(e.suffix||"");if(!l&&!i)return{start:o,end:o+n.length};for(;o>=0;){const s=r.slice(Math.max(0,o-l.length),o).trim(),p=r.slice(o+n.length,o+n.length+i.length).trim();if((!l||s===l)&&(!i||p===i))return{start:o,end:o+n.length};o=r.indexOf(n,o+n.length)}return null}function ye(e){if(!e.rangeCount)return null;const n=e.getRangeAt(0);if(n.collapsed||!ce(n))return null;const t=e.toString();if(!t.trim())return null;const r=_(),o=de(n,r),l={exact:t};if(n.startContainer.nodeType===Node.TEXT_NODE&&n.endContainer.nodeType===Node.TEXT_NODE){const i=n.startContainer,s=n.endContainer;l.xpathStart=X(i),l.xpathEnd=X(s),l.startOffset=n.startOffset,l.endOffset=n.endOffset}if(o){l.startTextOffset=o.start,l.endTextOffset=o.end;const i=G(r),s=ue(i,o.start,o.end);s.prefix&&(l.prefix=s.prefix),s.suffix&&(l.suffix=s.suffix)}return{anchor:l,quote:t}}function me(e){if(Number.isInteger(e.startTextOffset)&&Number.isInteger(e.endTextOffset)){const r=Q(e.startTextOffset||0,e.endTextOffset||0);if(r&&!r.collapsed)return r}const n=pe(e);if(n){const r=Q(n.start,n.end);if(r&&!r.collapsed)return r}const t=fe(e);return t&&!t.collapsed?t:null}const he=8e3,k=new Map;let c=!1,V=null,I=M(window.location.href),U=0;function m(...e){console.log("[gomdown-helper][clip][content]",...e)}funct
|