openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

utils_line.min.js (1324B)


      1 /* JSqueeze fails minifying the source. */
      2 import{indexOf}from"../util/misc.js";export function getLine(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");let i=e;for(;!i.lines;)for(let e=0;;++e){let n=i.children[e],r=n.chunkSize();if(t<r){i=n;break}t-=r}return i.lines[t]}export function getBetween(e,t,i){let n=[],r=t.line;return e.iter(t.line,i.line+1,e=>{let l=e.text;r==i.line&&(l=l.slice(0,i.ch)),r==t.line&&(l=l.slice(t.ch)),n.push(l),++r}),n}export function getLines(e,t,i){let n=[];return e.iter(t,i,e=>{n.push(e.text)}),n}export function updateLineHeight(e,t){let i=t-e.height;if(i)for(let t=e;t;t=t.parent)t.height+=i}export function lineNo(e){if(null==e.parent)return null;let t=e.parent,i=indexOf(t.lines,e);for(let e=t.parent;e;t=e,e=e.parent)for(let n=0;e.children[n]!=t;++n)i+=e.children[n].chunkSize();return i+t.first}export function lineAtHeight(e,t){let i=e.first;e:do{for(let n=0;n<e.children.length;++n){let r=e.children[n],l=r.height;if(t<l){e=r;continue e}t-=l,i+=r.chunkSize()}return i}while(!e.lines);let n=0;for(;n<e.lines.length;++n){let i=e.lines[n].height;if(t<i)break;t-=i}return i+n}export function isLine(e,t){return t>=e.first&&t<e.first+e.size}export function lineNumberFor(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}