|
1 | | -import { addLink, addScript } from "../BootstrapBlazor/modules/utility.js" |
| 1 | +import { addLink } from "../BootstrapBlazor/modules/utility.js" |
2 | 2 | import Data from "../BootstrapBlazor/modules/data.js" |
3 | 3 |
|
4 | 4 | export async function init(id) { |
5 | 5 | await addLink("./_content/BootstrapBlazor.PdfViewer/pdf-viewer.css"); |
6 | 6 |
|
7 | 7 | const el = document.getElementById(id); |
8 | | - const url = el.getAttribute('data-bb-url'); |
9 | 8 | const pdfViewer = { el }; |
10 | | - |
11 | | - createFrame(pdfViewer, url); |
12 | 9 | Data.set(id, pdfViewer); |
13 | 10 |
|
14 | | - console.log(pdfViewer); |
| 11 | + const url = el.getAttribute('data-bb-url'); |
| 12 | + loadPdf(id, url); |
15 | 13 | } |
16 | 14 |
|
17 | 15 | export function loadPdf(id, url) { |
18 | 16 | const pdfViewer = Data.get(id); |
19 | | - const { frame } = pdfViewer; |
20 | | - if (frame) { |
21 | | - frame.src = url; |
22 | | - } |
23 | | - else { |
24 | | - createFrame(pdfViewer, url); |
25 | | - } |
26 | | -} |
27 | | - |
28 | | -const createFrame = (pdfViewer, url) => { |
29 | 17 | const { el } = pdfViewer; |
30 | 18 | if (url) { |
31 | | - const frame = document.createElement('iframe'); |
32 | | - frame.src = url; |
33 | | - frame.classList.add('bb-pdf-viewer'); |
34 | | - el.appendChild(frame); |
35 | | - pdfViewer.frame = frame; |
| 19 | + const { frame } = pdfViewer; |
| 20 | + const viewer = frame || createFrame(el); |
| 21 | + viewer.src = url; |
| 22 | + } |
| 23 | + else { |
| 24 | + delete pdfViewer.frame; |
| 25 | + el.innerHTML = ''; |
36 | 26 | } |
37 | 27 | } |
38 | 28 |
|
39 | | -export function dispose(id) { |
| 29 | +const createFrame = el => { |
| 30 | + const frame = document.createElement('iframe'); |
| 31 | + frame.classList.add('bb-pdf-viewer'); |
| 32 | + el.appendChild(frame); |
| 33 | + return frame; |
40 | 34 | } |
0 commit comments