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.
46 lines
1.3 KiB
46 lines
1.3 KiB
/* |
|
* https://github.com/morethanwords/tweb |
|
* Copyright (C) 2019-2021 Eduard Kuzmenko |
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE |
|
* |
|
* Originally from: |
|
* https://github.com/zhukov/webogram |
|
* Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com> |
|
* https://github.com/zhukov/webogram/blob/master/LICENSE |
|
*/ |
|
|
|
export default function setRichFocus(field: HTMLElement, selectNode: Node, noCollapse?: boolean) { |
|
field.focus(); |
|
if(selectNode && |
|
selectNode.parentNode == field && |
|
!selectNode.nextSibling && |
|
!noCollapse) { |
|
field.removeChild(selectNode); |
|
selectNode = null; |
|
} |
|
|
|
if(window.getSelection && document.createRange) { |
|
const range = document.createRange(); |
|
if(selectNode) { |
|
range.selectNode(selectNode); |
|
} else { |
|
range.selectNodeContents(field); |
|
} |
|
|
|
if(!noCollapse) { |
|
range.collapse(false); |
|
} |
|
|
|
const sel = window.getSelection(); |
|
sel.removeAllRanges(); |
|
sel.addRange(range); |
|
} |
|
/* else if (document.body.createTextRange !== undefined) { |
|
var textRange = document.body.createTextRange() |
|
textRange.moveToElementText(selectNode || field) |
|
if (!noCollapse) { |
|
textRange.collapse(false) |
|
} |
|
textRange.select() |
|
} */ |
|
}
|
|
|