Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
878 B
27 lines
878 B
/* |
|
* https://github.com/morethanwords/tweb |
|
* Copyright (C) 2019-2021 Eduard Kuzmenko |
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE |
|
*/ |
|
|
|
export default function getSelectedNodes() { |
|
const nodes: Node[] = []; |
|
const selection = window.getSelection(); |
|
for(let i = 0; i < selection.rangeCount; ++i) { |
|
const range = selection.getRangeAt(i); |
|
let {startContainer, endContainer} = range; |
|
if(endContainer.nodeType !== 3) endContainer = endContainer.firstChild; |
|
|
|
while(startContainer && startContainer !== endContainer) { |
|
nodes.push(startContainer.nodeType === 3 ? startContainer : startContainer.firstChild); |
|
startContainer = startContainer.nextSibling; |
|
} |
|
|
|
if(nodes[nodes.length - 1] !== endContainer) { |
|
nodes.push(endContainer); |
|
} |
|
} |
|
|
|
// * filter null's due to <br> |
|
return nodes.filter(node => !!node); |
|
}
|
|
|