<template> <div class="pdf-viewer" :class="{ 'blocked': pdf.blocked }"> <div class="page-container"> <div class="layers-container"> <canvas class="pdf-canvas" :class="{ 'ready': !pdf.blocked }" :data-pdf-url="pdf.url" :data-pdf-worker-url="pdf.worker_url" ></canvas> <div class="textLayer"></div> </div> </div> <div class="pdf-toolbar"> <button class="btn btn-light icon-btn prev-page"> <i class="fas fa-arrow-left"></i> </button> <div class="page-counter sci-input-container"> <input type="text" class="sci-input-field current-page" value=1> {{ i18n.t('pdf_preview.pages.of') }} <span class="total-page">...</span> </div> <button class="btn btn-light icon-btn next-page"> <i class="fas fa-arrow-right"></i> </button> <div class="divider"></div> <div class="zoom-page"> <select class="zoom-page-selector"> <option value="auto">{{ i18n.t('pdf_preview.fit_to_screen') }}</option> <option v-for="i in Array.from(Array(12).keys())" :selected="(i + 1) * 25 == 100" :value="((i + 1) * 0.25).toString().replaceAll(/\.?0+$/g, '')" :key="i"> {{(i + 1) * 25}}% </option> </select> </div> <div class="sci-btn-group"> <button class="btn btn-light icon-btn zoom-out"> <i class="fas fa-search-minus"></i> </button> <button class="btn btn-light icon-btn zoom-in"> <i class="fas fa-search-plus"></i> </button> </div> </div> <div class="blocked-screen"> <img :src="blockedIcon"> <p class="title">{{ i18n.t('pdf_previepw.blocked.title') }}</p> <p class="description">{{ i18n.t('pdf_preview.blocked.description') }}</p> <button class="btn btn-primary load-blocked-pdf"> <i class="fas fa-cloud-download-alt"></i> {{ i18n.t('pdf_preview.blocked.submit_button') }} </button> </div> </div> </template> <script> import blockedIcon from 'images/pdf_js/blocked.svg' export default { name: 'PdfViewer', props: { pdf: { type: Object, required: true } }, data() { return { blockedIcon, value: '' } }, mounted() { // from legacy code in app/assets/javascripts/sitewide/pdf_preview.js PdfPreview.initCanvas(); }, methods: { } } </script>