UNPKG

ngx-extended-pdf-viewer

Version:

Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.

46 lines 6.61 kB
export class UnitToPx { static initElements() { // this.con = document.createElement('div'); this.con.style.position = 'absolute'; this.con.style.width = '0'; this.con.style.height = '0'; this.con.style.visibility = 'hidden'; this.con.style.overflow = 'hidden'; // this.el = document.createElement('div'); this.con.appendChild(this.el); } static pxPerUnit(unit) { if (!this.pxPerUnitCache[unit]) { if (!this.con) { this.initElements(); } this.el.style.width = this.sample + unit; document.body.appendChild(this.con); var dimension = this.el.getBoundingClientRect(); this.con.parentNode.removeChild(this.con); this.pxPerUnitCache[unit] = dimension.width / this.sample; } return this.pxPerUnitCache[unit]; } static toPx(length) { var unitRe = /^\s*([+-]?[\d\.]*)\s*(.*)\s*$/i; var match = unitRe.exec(length); if (match != null && match.length > 2) { const bare = match[1] === ''; const val = bare ? 1 : Number(match[1]); const unit = match[2]; const valid = !isNaN(val) && unit; if (valid) { return unit == 'px' ? val : this.pxPerUnit(unit) * val; } } throw new TypeError('Error parsing length'); } } // cache this.con, el for reused UnitToPx.con = document.createElement('div'); UnitToPx.el = document.createElement('div'); // high sample will more accurate? UnitToPx.sample = 100; UnitToPx.pxPerUnitCache = {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC10by1weC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdW5pdC10by1weC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQVVYLE1BQU0sQ0FBQyxZQUFZO1FBQ3pCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFbkMsMkNBQTJDO1FBRTNDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDM0Q7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTTtRQUN2QixJQUFJLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQztRQUM5QyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNsQyxJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7YUFDeEQ7U0FDRjtRQUNELE1BQU0sSUFBSSxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM5QyxDQUFDOztBQWpERCxnQ0FBZ0M7QUFDakIsWUFBRyxHQUFtQixRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BELFdBQUUsR0FBbUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVsRSxrQ0FBa0M7QUFDVixlQUFNLEdBQUcsR0FBRyxDQUFDO0FBRXRCLHVCQUFjLEdBQThCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVbml0VG9QeCB7XG4gIC8vIGNhY2hlIHRoaXMuY29uLCBlbCBmb3IgcmV1c2VkXG4gIHByaXZhdGUgc3RhdGljIGNvbjogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgcHJpdmF0ZSBzdGF0aWMgZWw6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgLy8gaGlnaCBzYW1wbGUgd2lsbCBtb3JlIGFjY3VyYXRlP1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBzYW1wbGUgPSAxMDA7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcHhQZXJVbml0Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuICBwcml2YXRlIHN0YXRpYyBpbml0RWxlbWVudHMoKSB7XG4gICAgLy8gdGhpcy5jb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLmNvbi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgdGhpcy5jb24uc3R5bGUud2lkdGggPSAnMCc7XG4gICAgdGhpcy5jb24uc3R5bGUuaGVpZ2h0ID0gJzAnO1xuICAgIHRoaXMuY29uLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB0aGlzLmNvbi5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuXG4gICAgLy8gdGhpcy5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgdGhpcy5jb24uYXBwZW5kQ2hpbGQodGhpcy5lbCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBweFBlclVuaXQodW5pdDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucHhQZXJVbml0Q2FjaGVbdW5pdF0pIHtcbiAgICAgIGlmICghdGhpcy5jb24pIHtcbiAgICAgICAgdGhpcy5pbml0RWxlbWVudHMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZWwuc3R5bGUud2lkdGggPSB0aGlzLnNhbXBsZSArIHVuaXQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29uKTtcbiAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5jb24ucGFyZW50Tm9kZSEucmVtb3ZlQ2hpbGQodGhpcy5jb24pO1xuICAgICAgdGhpcy5weFBlclVuaXRDYWNoZVt1bml0XSA9IGRpbWVuc2lvbi53aWR0aCAvIHRoaXMuc2FtcGxlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5weFBlclVuaXRDYWNoZVt1bml0XTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9QeChsZW5ndGgpOiBudW1iZXIge1xuICAgIHZhciB1bml0UmUgPSAvXlxccyooWystXT9bXFxkXFwuXSopXFxzKiguKilcXHMqJC9pO1xuICAgIHZhciBtYXRjaCA9IHVuaXRSZS5leGVjKGxlbmd0aCk7XG4gICAgaWYgKG1hdGNoICE9IG51bGwgJiYgbWF0Y2gubGVuZ3RoID4gMikge1xuICAgICAgY29uc3QgYmFyZSA9IG1hdGNoWzFdID09PSAnJztcbiAgICAgIGNvbnN0IHZhbCA9IGJhcmUgPyAxIDogTnVtYmVyKG1hdGNoWzFdKTtcbiAgICAgIGNvbnN0IHVuaXQgPSBtYXRjaFsyXTtcbiAgICAgIGNvbnN0IHZhbGlkID0gIWlzTmFOKHZhbCkgJiYgdW5pdDtcbiAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICByZXR1cm4gdW5pdCA9PSAncHgnID8gdmFsIDogdGhpcy5weFBlclVuaXQodW5pdCkgKiB2YWw7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Vycm9yIHBhcnNpbmcgbGVuZ3RoJyk7XG4gIH1cbn1cbiJdfQ==