2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
|
|
import{b as p,g as B}from"./settings-CgBxHrrF.js";import{i as w,n as W}from"./downloadIntent-Dv31jC2S.js";import{n as g,a as q}from"./clipTypes-C_ha5Ash.js";function M(){const e=document.body||document.documentElement;if(!e)return[];const t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=[];let r=0,o=t.nextNode();for(;o;){const i=o,l=(i.nodeValue||"").length;l>0&&(n.push({node:i,start:r,end:r+l}),r+=l),o=t.nextNode()}return n}function H(e){return e.map(t=>t.node.nodeValue||"").join("")}function I(e){const t=document.body||document.documentElement;if(!t)return"";if(e===t)return"/body";const n=[];let r=e.nodeType===Node.TEXT_NODE?e.parentNode:e;for(;r&&r!==t&&r.nodeType===Node.ELEMENT_NODE;){const o=r,i=o.tagName.toLowerCase();let s=1,l=o.previousElementSibling;for(;l;)l.tagName.toLowerCase()===i&&(s+=1),l=l.previousElementSibling;n.unshift(`${i}[${s}]`),r=o.parentElement}return`/body/${n.join("/")}`}function P(e){if(!e)return null;try{return document.evaluate(e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}function V(e){const t=e.commonAncestorContainer,n=t.nodeType===Node.ELEMENT_NODE?t:t.parentElement;return!(!n||n.closest("input, textarea, select, button, script, style")||n.closest('[contenteditable="true"]'))}function Y(e,t,n){const r=e.slice(Math.max(0,t-40),t).trim(),o=e.slice(n,Math.min(e.length,n+40)).trim();return{prefix:r,suffix:o}}function Q(e,t){const n=e.startContainer,r=e.endContainer;if(n.nodeType!==Node.TEXT_NODE||r.nodeType!==Node.TEXT_NODE)return null;const o=t.find(s=>s.node===n),i=t.find(s=>s.node===r);return!o||!i?null:{start:o.start+e.startOffset,end:i.start+e.endOffset}}function R(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e>=t)return null;const n=M(),r=n.find(s=>e>=s.start&&e<s.end),o=n.find(s=>t>s.start&&t<=s.end);if(!r||!o)return null;const i=document.createRange();return i.setStart(r.node,Math.max(0,Math.min(r.node.length,e-r.start))),i.setEnd(o.node,Math.max(0,Math.min(o.node.length,t-o.start))),i}function j(e){if(!e.xpathStart||!e.xpathEnd)return null;const t=P(e.xpathStart),n=P(e.xpathEnd);if(!t||!n||t.nodeType!==Node.ELEMENT_NODE||n.nodeType!==Node.ELEMENT_NODE)return null;const r=l=>{const b=document.createTreeWalker(l,NodeFilter.SHOW_TEXT).nextNode();return b&&b.nodeType===Node.TEXT_NODE?b:null},o=r(t),i=r(n);if(!o||!i||o.nodeType!==Node.TEXT_NODE||i.nodeType!==Node.TEXT_NODE||!Number.isInteger(e.startOffset)||!Number.isInteger(e.endOffset))return null;const s=document.createRange();return s.setStart(o,Math.min((o.nodeValue||"").length,Math.max(0,e.startOffset||0))),s.setEnd(i,Math.min((i.nodeValue||"").length,Math.max(0,e.endOffset||0))),s}function G(e){const t=String(e.exact||"");if(!t)return null;const n=M(),r=H(n);let o=r.indexOf(t);if(o<0)return null;const i=String(e.prefix||""),s=String(e.suffix||"");if(!i&&!s)return{start:o,end:o+t.length};for(;o>=0;){const l=r.slice(Math.max(0,o-i.length),o).trim(),S=r.slice(o+t.length,o+t.length+s.length).trim();if((!i||l===i)&&(!s||S===s))return{start:o,end:o+t.length};o=r.indexOf(t,o+t.length)}return null}function J(e){if(!e.rangeCount)return null;const t=e.getRangeAt(0);if(t.collapsed||!V(t))return null;const n=e.toString();if(!n.trim())return null;const r=M(),o=Q(t,r),i={exact:n};if(t.startContainer.nodeType===Node.TEXT_NODE&&t.endContainer.nodeType===Node.TEXT_NODE){const s=t.startContainer,l=t.endContainer;i.xpathStart=I(s),i.xpathEnd=I(l),i.startOffset=t.startOffset,i.endOffset=t.endOffset}if(o){i.startTextOffset=o.start,i.endTextOffset=o.end;const s=H(r),l=Y(s,o.start,o.end);l.prefix&&(i.prefix=l.prefix),l.suffix&&(i.suffix=l.suffix)}return{anchor:i,quote:n}}function Z(e){if(Number.isInteger(e.startTextOffset)&&Number.isInteger(e.endTextOffset)){const r=R(e.startTextOffset||0,e.endTextOffset||0);if(r&&!r.collapsed)return r}const t=G(e);if(t){const r=R(t.start,t.end);if(r&&!r.collapsed)return r}const n=j(e);return n&&!n.collapsed?n:null}const ee=8e3,m=new Map;let a=!1,A=null,T=g(window.location.href);function te(){const e=Date.now();for(const[t,n]of m.entries())n<=e&&m.delete(t)}async
|