@taiga-ui/kit
Version:
Taiga UI Angular main components kit
26 lines • 3.38 kB
JavaScript
import { svgNodeFilter } from '@taiga-ui/cdk';
/**
* Range.setStart/set-end, except it uses offset in characters only
*/
export function setRangeOffset(range, node, offset, method) {
var ownerDocument = node.ownerDocument;
if (!ownerDocument) {
return;
}
var treeWalker = ownerDocument.createTreeWalker(node, NodeFilter.SHOW_TEXT, svgNodeFilter, false);
treeWalker.currentNode = node;
while (treeWalker.nextNode()) {
if (treeWalker.currentNode.nodeType === Node.TEXT_NODE) {
var length_1 = treeWalker.currentNode.nodeValue
? treeWalker.currentNode.nodeValue.length
: 0;
if (offset > length_1) {
offset -= length_1;
}
else {
range[method](treeWalker.currentNode, offset);
}
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXJhbmdlLW9mZnNldC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsic2V0LXJhbmdlLW9mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsS0FBWSxFQUNaLElBQWlCLEVBQ2pCLE1BQWMsRUFDZCxNQUE2QjtJQUV0QixJQUFBLGtDQUFhLENBQVM7SUFFN0IsSUFBSSxDQUFDLGFBQWEsRUFBRTtRQUNoQixPQUFPO0tBQ1Y7SUFFRCxJQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQzdDLElBQUksRUFDSixVQUFVLENBQUMsU0FBUyxFQUNwQixhQUFhLEVBQ2IsS0FBSyxDQUNSLENBQUM7SUFFRixVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUU5QixPQUFPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUMxQixJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDcEQsSUFBTSxRQUFNLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTO2dCQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTTtnQkFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVSLElBQUksTUFBTSxHQUFHLFFBQU0sRUFBRTtnQkFDakIsTUFBTSxJQUFJLFFBQU0sQ0FBQzthQUNwQjtpQkFBTTtnQkFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNqRDtTQUNKO0tBQ0o7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuLyoqXG4gKiBSYW5nZS5zZXRTdGFydC9zZXQtZW5kLCBleGNlcHQgaXQgdXNlcyBvZmZzZXQgaW4gY2hhcmFjdGVycyBvbmx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSYW5nZU9mZnNldChcbiAgICByYW5nZTogUmFuZ2UsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbWV0aG9kOiAnc2V0U3RhcnQnIHwgJ3NldEVuZCcsXG4pIHtcbiAgICBjb25zdCB7b3duZXJEb2N1bWVudH0gPSBub2RlO1xuXG4gICAgaWYgKCFvd25lckRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gb3duZXJEb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICBub2RlLFxuICAgICAgICBOb2RlRmlsdGVyLlNIT1dfVEVYVCxcbiAgICAgICAgc3ZnTm9kZUZpbHRlcixcbiAgICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIHRyZWVXYWxrZXIuY3VycmVudE5vZGUgPSBub2RlO1xuXG4gICAgd2hpbGUgKHRyZWVXYWxrZXIubmV4dE5vZGUoKSkge1xuICAgICAgICBpZiAodHJlZVdhbGtlci5jdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRyZWVXYWxrZXIuY3VycmVudE5vZGUubm9kZVZhbHVlXG4gICAgICAgICAgICAgICAgPyB0cmVlV2Fsa2VyLmN1cnJlbnROb2RlLm5vZGVWYWx1ZS5sZW5ndGhcbiAgICAgICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgICAgIGlmIChvZmZzZXQgPiBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgLT0gbGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByYW5nZVttZXRob2RdKHRyZWVXYWxrZXIuY3VycmVudE5vZGUsIG9mZnNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=