@vaadin-component-factory/vcf-pdf-viewer 0.9.4 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,10 @@
1
1
  import { PolymerElement, html } from '@polymer/polymer/polymer-element';
2
2
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin';
3
- import { ElementMixin } from '@vaadin/vaadin-element-mixin';
4
- import { IronResizableBehavior } from '@polymer/iron-resizable-behavior';
5
- import { mixinBehaviors } from '@polymer/polymer/lib/legacy/class.js';
6
- import '@vaadin/vaadin-text-field';
7
- import '@vaadin/vaadin-select';
8
- import '@vaadin/vaadin-item';
3
+ import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
4
+ import '@vaadin/polymer-legacy-adapter/template-renderer.js';
5
+ import '@vaadin/text-field';
6
+ import '@vaadin/select';
7
+ import '@vaadin/item';
9
8
 
10
9
  import * as pdfjsLib from '../pdfjs/dist/pdf';
11
10
  import * as pdfjsViewer from '../pdfjs/dist/pdf_viewer';
@@ -33,8 +32,7 @@ pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker;
33
32
  */
34
33
  class PdfViewerElement extends
35
34
  ElementMixin(
36
- ThemableMixin(
37
- mixinBehaviors([IronResizableBehavior], PolymerElement))) {
35
+ ThemableMixin(PolymerElement)) {
38
36
 
39
37
  static get template() {
40
38
  return html`
@@ -254,25 +252,25 @@ class PdfViewerElement extends
254
252
  <vaadin-select id="zoom" part="toolbar-zoom" value="{{zoom}}">
255
253
  <template>
256
254
  <vaadin-list-box>
257
- <vaadin-item value='auto'>Automatic zoom</vaadin-item>
258
- <vaadin-item value='page-fit'>Page fit</vaadin-item>
259
- <vaadin-item value='0.5'>50%</vaadin-item>
260
- <vaadin-item value='0.75'>75%</vaadin-item>
261
- <vaadin-item value='1.0'>100%</vaadin-item>
262
- <vaadin-item value='1.25'>125%</vaadin-item>
263
- <vaadin-item value='1.5'>150%</vaadin-item>
264
- <vaadin-item value='2.0'>200%</vaadin-item>
265
- <vaadin-item value='3.0'>300%</vaadin-item>
266
- <vaadin-item value='4.0'>400%</vaadin-item>
255
+ <vaadin-item value='auto'>Automatic zoom</vaadin-item>
256
+ <vaadin-item value='page-fit'>Page fit</vaadin-item>
257
+ <vaadin-item value='0.5'>50%</vaadin-item>
258
+ <vaadin-item value='0.75'>75%</vaadin-item>
259
+ <vaadin-item value='1.0'>100%</vaadin-item>
260
+ <vaadin-item value='1.25'>125%</vaadin-item>
261
+ <vaadin-item value='1.5'>150%</vaadin-item>
262
+ <vaadin-item value='2.0'>200%</vaadin-item>
263
+ <vaadin-item value='3.0'>300%</vaadin-item>
264
+ <vaadin-item value='4.0'>400%</vaadin-item>
267
265
  </vaadin-list-box>
268
266
  </template>
269
267
  </vaadin-select>
270
268
  <div part="toolbar-pages">
271
- <vaadin-text-field id="currentPage" part="toolbar-current-page" value="{{currentPage}}" on-change="__pageChange"></vaadin-text-field>
272
- <span id="pageSeparator" part="toolbar-text toolbar-page-separator">/</span>
273
- <span id="totalPages" part="toolbar-text toolbar-total-pages">{{__totalPages}}</span>
274
- <button id="previousPage" part="toolbar-button toolbar-button-previous-page" on-click="__previousPage"></button>
275
- <button id="nextPage" part="toolbar-button toolbar-button-next-page" on-click="__nextPage"></button>
269
+ <vaadin-text-field id="currentPage" part="toolbar-current-page" value="{{currentPage}}" on-change="__pageChange"></vaadin-text-field>
270
+ <span id="pageSeparator" part="toolbar-text toolbar-page-separator">/</span>
271
+ <span id="totalPages" part="toolbar-text toolbar-total-pages">{{__totalPages}}</span>
272
+ <button id="previousPage" part="toolbar-button toolbar-button-previous-page" on-click="__previousPage"></button>
273
+ <button id="nextPage" part="toolbar-button toolbar-button-next-page" on-click="__nextPage"></button>
276
274
  </div>
277
275
  <slot></slot>
278
276
  </div>
@@ -468,8 +466,15 @@ class PdfViewerElement extends
468
466
  }
469
467
  });
470
468
 
471
- this.addEventListener('iron-resize', this.__recalculateSizes);
472
- this.__recalculateSizes();
469
+ this.__resizeObserver = new ResizeObserver(() => {
470
+ requestAnimationFrame(() => this.__recalculateSizes());
471
+ });
472
+ this.__resizeObserver.observe(this);
473
+ }
474
+
475
+ connectedCallback() {
476
+ super.connectedCallback();
477
+ this.__recalculateSizes();
473
478
  }
474
479
 
475
480
  __updateCurrentPageValue(pageNumber){
@@ -512,7 +517,7 @@ class PdfViewerElement extends
512
517
  return;
513
518
  }
514
519
  this.__setFilename(src);
515
- this.__document = pdfjsLib.getDocument(src);
520
+ this.__document = pdfjsLib.getDocument(new URL(src, document.baseURI).href);
516
521
  return this.__document.promise.then((pdfDocument) => {
517
522
  // Document loaded, specifying document for the viewer.
518
523
  this.__thumbnailViewer.setDocument(pdfDocument);
@@ -6,9 +6,9 @@ import '@vaadin/vaadin-lumo-styles/spacing.js';
6
6
  import '@vaadin/vaadin-lumo-styles/typography.js';
7
7
  import '@vaadin/vaadin-lumo-styles/font-icons.js';
8
8
 
9
- import '@vaadin/vaadin-select/theme/lumo/vaadin-select-styles.js';
10
- import '@vaadin/vaadin-list-box/theme/lumo/vaadin-list-box-styles.js';
11
- import '@vaadin/vaadin-item/theme/lumo/vaadin-item-styles.js';
9
+ import '@vaadin/select/theme/lumo/vaadin-select-styles.js';
10
+ import '@vaadin/list-box/theme/lumo/vaadin-list-box-styles.js';
11
+ import '@vaadin/item/theme/lumo/vaadin-item-styles.js';
12
12
 
13
13
  registerStyles(
14
14
  'vcf-pdf-viewer',
@@ -4,10 +4,10 @@ import { registerStyles, css } from '@vaadin/vaadin-themable-mixin/register-styl
4
4
  import '@vaadin/vaadin-material-styles/color.js';
5
5
  import '@vaadin/vaadin-material-styles/typography.js';
6
6
 
7
- import '@vaadin/vaadin-text-field/theme/material/vaadin-text-field-styles.js';
8
- import '@vaadin/vaadin-select/theme/material/vaadin-select-styles.js';
9
- import '@vaadin/vaadin-list-box/theme/material/vaadin-list-box-styles.js';
10
- import '@vaadin/vaadin-item/theme/material/vaadin-item-styles.js';
7
+ import '@vaadin/text-field/theme/material/vaadin-text-field-styles.js';
8
+ import '@vaadin/select/theme/material/vaadin-select-styles.js';
9
+ import '@vaadin/list-box/theme/material/vaadin-list-box-styles.js';
10
+ import '@vaadin/item/theme/material/vaadin-item-styles.js';
11
11
 
12
12
  registerStyles(
13
13
  'vcf-pdf-viewer',