Skip to content
Snippets Groups Projects
Select Git revision
  • dc2c2be09a3f12501afa2de0936979d0da3c9153
  • main default protected
  • demo protected
  • master
  • icon-set-mapping
  • production protected
  • revert-62666d1a
  • favorites-and-recent-files
  • lit2
  • wc-part
  • mark-downloaded-files
  • feature/annotpdf-test
  • fix-zip-upload
  • config-cleanup
  • wip
  • app-shell-update
16 results

dbp-pdf-preview.js

Blame
  • dbp-pdf-preview.js 26.15 KiB
    import {createInstance} from './i18n.js';
    import {css, html} from 'lit-element';
    import {classMap} from 'lit-html/directives/class-map.js';
    import {live} from 'lit-html/directives/live.js';
    import {ScopedElementsMixin} from '@open-wc/scoped-elements';
    import DBPLitElement from '@dbp-toolkit/common/dbp-lit-element';
    import {MiniSpinner, Icon} from '@dbp-toolkit/common';
    import * as commonUtils from "@dbp-toolkit/common/utils";
    import * as commonStyles from '@dbp-toolkit/common/styles';
    import pdfjs from 'pdfjs-dist/legacy/build/pdf.js';
    import {name as pkgName} from './../package.json';
    import {readBinaryFileContent} from './utils.js';
    
    /**
     * PdfPreview web component
     */
    export class PdfPreview extends ScopedElementsMixin(DBPLitElement) {
        constructor() {
            super();
            this._i18n = createInstance();
            this.lang = this._i18n.language;
            this.pdfDoc = null;
            this.currentPage = 0;
            this.totalPages = 0;
            this.isShowPage = false;
            this.isPageLoaded = false;
            this.showErrorMessage = false;
            this.isPageRenderingInProgress = false;
            this.isShowPlacement = true;
            this.canvas = null;
            this.annotationLayer = null;
            this.fabricCanvas = null;
            this.canvasToPdfScale = 1.0;
            this.currentPageOriginalHeight = 0;
            this.placeholder = '';
            this.signature_width = 42;
            this.signature_height = 42;
            this.border_width = 2;
            this.allowSignatureRotation = false;
    
            this._onWindowResize = this._onWindowResize.bind(this);
        }
    
        static get scopedElements() {
            return {
                'dbp-mini-spinner': MiniSpinner,
                'dbp-icon': Icon,
            };
        }
    
        /**
         * See: https://lit-element.polymer-project.org/guide/properties#initialize
         */
        static get properties() {
            return {
                ...super.properties,
                lang: { type: String },
                currentPage: { type: Number, attribute: false },
                totalPages: { type: Number, attribute: false },
                isShowPage: { type: Boolean, attribute: false },
                isPageRenderingInProgress: { type: Boolean, attribute: false },
                isPageLoaded: { type: Boolean, attribute: false },
                showErrorMessage: { type: Boolean, attribute: false },
                isShowPlacement: { type: Boolean, attribute: false },
                placeholder: { type: String, attribute: 'signature-placeholder-image-src' },
                signature_width: { type: Number, attribute: 'signature-width' },
                signature_height: { type: Number, attribute: 'signature-height' },
                allowSignatureRotation: { type: Boolean, attribute: 'allow-signature-rotation' },
            };
        }