@syncfusion/ej2-pdfviewer 17.3.58-4568 → 17.3.60-4568

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.
Files changed (77) hide show
  1. package/dist/ej2-pdfviewer.umd.min.js +1 -1
  2. package/dist/ej2-pdfviewer.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-pdfviewer.es2015.js +64 -49
  4. package/dist/es6/ej2-pdfviewer.es2015.js.map +1 -1
  5. package/dist/es6/ej2-pdfviewer.es5.js +64 -49
  6. package/dist/es6/ej2-pdfviewer.es5.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/pdfviewer/annotation/annotation.js +3 -0
  9. package/src/pdfviewer/annotation/text-markup-annotation.js +8 -2
  10. package/src/pdfviewer/base/pdfviewer-base.d.ts +2 -0
  11. package/src/pdfviewer/base/pdfviewer-base.js +36 -10
  12. package/src/pdfviewer/magnification/magnification.d.ts +0 -1
  13. package/src/pdfviewer/magnification/magnification.js +14 -37
  14. package/src/pdfviewer/pdfviewer-model.d.ts +7 -0
  15. package/src/pdfviewer/pdfviewer.d.ts +6 -0
  16. package/src/pdfviewer/pdfviewer.js +3 -0
  17. package/styles/bootstrap-dark.css +10 -6
  18. package/styles/bootstrap-dark.scss +4 -1
  19. package/styles/bootstrap.css +10 -6
  20. package/styles/bootstrap.scss +4 -1
  21. package/styles/bootstrap4.css +10 -6
  22. package/styles/bootstrap4.scss +4 -1
  23. package/styles/bootstrap5-dark.css +15 -8
  24. package/styles/bootstrap5-dark.scss +4 -1
  25. package/styles/bootstrap5.css +15 -8
  26. package/styles/bootstrap5.scss +4 -1
  27. package/styles/fabric-dark.css +10 -6
  28. package/styles/fabric-dark.scss +4 -1
  29. package/styles/fabric.css +10 -6
  30. package/styles/fabric.scss +4 -1
  31. package/styles/fluent-dark.css +10 -6
  32. package/styles/fluent-dark.scss +4 -1
  33. package/styles/fluent.css +10 -6
  34. package/styles/fluent.scss +4 -1
  35. package/styles/fluent2.css +5008 -0
  36. package/styles/fluent2.scss +4 -0
  37. package/styles/highcontrast-light.css +10 -6
  38. package/styles/highcontrast-light.scss +4 -1
  39. package/styles/highcontrast.css +10 -6
  40. package/styles/highcontrast.scss +4 -1
  41. package/styles/material-dark.css +10 -6
  42. package/styles/material-dark.scss +4 -1
  43. package/styles/material.css +10 -6
  44. package/styles/material.scss +4 -1
  45. package/styles/material3-dark.css +12 -9
  46. package/styles/material3-dark.scss +4 -1
  47. package/styles/material3.css +12 -9
  48. package/styles/material3.scss +4 -1
  49. package/styles/pdfviewer/_bootstrap5.3-definition.scss +540 -0
  50. package/styles/pdfviewer/_fluent2-definition.scss +45 -44
  51. package/styles/pdfviewer/_theme.scss +461 -36
  52. package/styles/pdfviewer/bootstrap-dark.css +10 -6
  53. package/styles/pdfviewer/bootstrap.css +10 -6
  54. package/styles/pdfviewer/bootstrap4.css +10 -6
  55. package/styles/pdfviewer/bootstrap5-dark.css +15 -8
  56. package/styles/pdfviewer/bootstrap5.css +15 -8
  57. package/styles/pdfviewer/fabric-dark.css +10 -6
  58. package/styles/pdfviewer/fabric.css +10 -6
  59. package/styles/pdfviewer/fluent-dark.css +10 -6
  60. package/styles/pdfviewer/fluent.css +10 -6
  61. package/styles/pdfviewer/fluent2.css +5008 -0
  62. package/styles/pdfviewer/fluent2.scss +4 -0
  63. package/styles/pdfviewer/highcontrast-light.css +10 -6
  64. package/styles/pdfviewer/highcontrast.css +10 -6
  65. package/styles/pdfviewer/icons/_bootstrap5.3.scss +509 -0
  66. package/styles/pdfviewer/icons/_bootstrap5.scss +0 -2
  67. package/styles/pdfviewer/icons/_fluent2.scss +510 -0
  68. package/styles/pdfviewer/material-dark.css +10 -6
  69. package/styles/pdfviewer/material.css +10 -6
  70. package/styles/pdfviewer/material3-dark.css +12 -9
  71. package/styles/pdfviewer/material3.css +12 -9
  72. package/styles/pdfviewer/tailwind-dark.css +10 -6
  73. package/styles/pdfviewer/tailwind.css +10 -6
  74. package/styles/tailwind-dark.css +10 -6
  75. package/styles/tailwind-dark.scss +4 -1
  76. package/styles/tailwind.css +10 -6
  77. package/styles/tailwind.scss +4 -1
@@ -4190,6 +4190,9 @@ class Annotation {
4190
4190
  // tslint:disable-next-line
4191
4191
  let sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);
4192
4192
  let maxSessionSize = 4500;
4193
+ if (this.pdfViewerBase.isDeviceiOS || this.pdfViewerBase.isMacSafari) {
4194
+ maxSessionSize = 2000;
4195
+ }
4193
4196
  if (sessionSize > maxSessionSize) {
4194
4197
  let storageLength = window.sessionStorage.length;
4195
4198
  // tslint:disable-next-line
@@ -9674,8 +9677,14 @@ class TextMarkupAnnotation {
9674
9677
  }
9675
9678
  annotCanvas.style.width = '';
9676
9679
  annotCanvas.style.height = '';
9677
- annotCanvas.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor();
9678
- annotCanvas.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();
9680
+ if (this.pdfViewer.restrictZoomRequest) {
9681
+ annotCanvas.style.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor() + 'px';
9682
+ annotCanvas.style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';
9683
+ }
9684
+ else {
9685
+ annotCanvas.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor();
9686
+ annotCanvas.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();
9687
+ }
9679
9688
  this.renderTextMarkupAnnotations(null, pageNumber, annotCanvas, this.pdfViewerBase.getZoomFactor());
9680
9689
  }
9681
9690
  }
@@ -17812,12 +17821,12 @@ class PdfViewerBase {
17812
17821
  * @private
17813
17822
  */
17814
17823
  // eslint-disable-next-line
17815
- this.isDeviceiOS = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || (navigator.userAgent.includes("Mac") && "ontouchend" in document));
17824
+ this.isDeviceiOS = false;
17816
17825
  /**
17817
17826
  * @private
17818
17827
  */
17819
17828
  // eslint-disable-next-line
17820
- this.isMacSafari = navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") === -1 && !this.isDeviceiOS;
17829
+ this.isMacSafari = false;
17821
17830
  /**
17822
17831
  * @private
17823
17832
  */
@@ -17826,6 +17835,8 @@ class PdfViewerBase {
17826
17835
  this.isGotoPageEnabled = false;
17827
17836
  this.taggedTextHandler = null;
17828
17837
  this.taggedCollection = [];
17838
+ this.isScrollerMoving = false;
17839
+ this.isScrollerMovingTimer = null;
17829
17840
  this.clearSessionStorage = () => {
17830
17841
  let documentId = window.sessionStorage.getItem('hashId');
17831
17842
  let documentLiveCount = window.sessionStorage.getItem('documentLiveCount');
@@ -18816,9 +18827,21 @@ class PdfViewerBase {
18816
18827
  if (this.isThumb) {
18817
18828
  this.ispageMoved = true;
18818
18829
  event.preventDefault();
18830
+ this.isScrollerMoving = true;
18819
18831
  this.mobilePageNoContainer.style.display = 'block';
18820
18832
  scrollposX = event.touches[0].pageX - this.scrollX;
18821
18833
  scrollposY = event.touches[0].pageY - this.viewerContainer.offsetTop;
18834
+ if (isNullOrUndefined(this.isScrollerMovingTimer)) {
18835
+ this.isScrollerMovingTimer = setTimeout(() => {
18836
+ this.isScrollerMoving = false;
18837
+ this.pageViewScrollChanged(this.currentPageNumber);
18838
+ }, 300);
18839
+ }
18840
+ let differenceY = Math.abs(this.viewerContainer.scrollTop - (scrollposY * ratio));
18841
+ if (differenceY > 10) {
18842
+ clearTimeout(this.isScrollerMovingTimer);
18843
+ this.isScrollerMovingTimer = null;
18844
+ }
18822
18845
  this.viewerContainer.scrollTop = scrollposY * ratio;
18823
18846
  // tslint:disable-next-line
18824
18847
  let containerValue = event.touches[0].pageY;
@@ -18933,8 +18956,6 @@ class PdfViewerBase {
18933
18956
  this.textLayer = new TextLayer(this.pdfViewer, this);
18934
18957
  this.taggedPdf = new TaggedPDF(this.pdfViewer, this);
18935
18958
  this.signatureModule = new Signature(this.pdfViewer, this);
18936
- // tslint:disable-next-line:max-line-length
18937
- this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);
18938
18959
  }
18939
18960
  /**
18940
18961
  * @private
@@ -19079,6 +19100,7 @@ class PdfViewerBase {
19079
19100
  mobileScrollContainerDown(event) {
19080
19101
  this.ispageMoved = false;
19081
19102
  this.isThumb = true;
19103
+ this.isScrollerMoving = false;
19082
19104
  if (this.isTextMarkupAnnotationModule()) {
19083
19105
  if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage != null && Browser.isDevice) {
19084
19106
  let pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;
@@ -19152,6 +19174,8 @@ class PdfViewerBase {
19152
19174
  }
19153
19175
  this.isThumb = false;
19154
19176
  this.ispageMoved = false;
19177
+ this.isScrollerMoving = false;
19178
+ this.pageViewScrollChanged(this.currentPageNumber);
19155
19179
  this.mobileScrollerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);
19156
19180
  this.mobilePageNoContainer.style.display = 'none';
19157
19181
  }
@@ -20187,6 +20211,9 @@ class PdfViewerBase {
20187
20211
  this.focusViewerContainer();
20188
20212
  }
20189
20213
  wireEvents() {
20214
+ this.isDeviceiOS = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || (navigator.userAgent.includes("Mac") && "ontouchend" in document));
20215
+ this.isMacSafari = navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") === -1 && !this.isDeviceiOS;
20216
+ this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1) || (navigator.userAgent.indexOf('WebKit') !== -1);
20190
20217
  this.viewerContainer.addEventListener('scroll', this.viewerContainerOnScroll, true);
20191
20218
  if (Browser.isDevice) {
20192
20219
  this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnScroll, true);
@@ -21446,7 +21473,7 @@ class PdfViewerBase {
21446
21473
  if (this.isDataExits && !this.getStoredData(currentPageIndex)) {
21447
21474
  isSkip = true;
21448
21475
  }
21449
- if (this.renderedPagesList.indexOf(currentPageIndex) === -1 && !this.getMagnified() && !isSkip) {
21476
+ if (this.renderedPagesList.indexOf(currentPageIndex) === -1 && !this.getMagnified() && !isSkip && !this.isScrollerMoving) {
21450
21477
  this.createRequestForRender(currentPageIndex);
21451
21478
  this.renderCountIncrement();
21452
21479
  }
@@ -21459,7 +21486,7 @@ class PdfViewerBase {
21459
21486
  isSkip = true;
21460
21487
  }
21461
21488
  if (canvas !== null && !isSkip) {
21462
- if (this.renderedPagesList.indexOf(previous) === -1 && !this.getMagnified()) {
21489
+ if (this.renderedPagesList.indexOf(previous) === -1 && !this.getMagnified() && !this.isScrollerMoving) {
21463
21490
  this.createRequestForRender(previous);
21464
21491
  this.renderCountIncrement();
21465
21492
  }
@@ -21471,7 +21498,7 @@ class PdfViewerBase {
21471
21498
  let pageHeight = 0;
21472
21499
  if (next < this.pageCount) {
21473
21500
  pageHeight = this.getPageHeight(next);
21474
- if ((this.renderedPagesList.indexOf(next) === -1 || this.isMinimumZoom) && !this.getMagnified()) {
21501
+ if ((this.renderedPagesList.indexOf(next) === -1 || this.isMinimumZoom) && !this.getMagnified() && !this.isScrollerMoving) {
21475
21502
  if (this.renderedPagesList.indexOf(next) === -1) {
21476
21503
  this.createRequestForRender(next);
21477
21504
  this.renderCountIncrement();
@@ -22143,6 +22170,9 @@ class PdfViewerBase {
22143
22170
  // tslint:disable-next-line
22144
22171
  getStoredData(pageIndex) {
22145
22172
  let zoomFactor = this.retrieveCurrentZoomFactor();
22173
+ if (this.pdfViewer.restrictZoomRequest && !this.pdfViewer.tileRenderingSettings.enableTileRendering) {
22174
+ zoomFactor = 1;
22175
+ }
22146
22176
  // tslint:disable-next-line
22147
22177
  let storedData = this.getWindowSessionStorage(pageIndex, zoomFactor) ? this.getWindowSessionStorage(pageIndex, zoomFactor) : this.getPinchZoomPage(pageIndex);
22148
22178
  // tslint:disable-next-line
@@ -22263,6 +22293,11 @@ class PdfViewerBase {
22263
22293
  // tslint:disable-next-line
22264
22294
  let sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);
22265
22295
  let maxSessionSize = 5000;
22296
+ let maxSessionLength = 200;
22297
+ if (this.isDeviceiOS || this.isMacSafari) {
22298
+ maxSessionSize = 2000;
22299
+ maxSessionLength = 80;
22300
+ }
22266
22301
  if (sessionSize >= maxSessionSize) {
22267
22302
  if (!this.isStorageExceed) {
22268
22303
  // tslint:disable-next-line
@@ -22284,10 +22319,10 @@ class PdfViewerBase {
22284
22319
  }
22285
22320
  this.isStorageExceed = true;
22286
22321
  sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);
22287
- if (sessionSize >= 5000) {
22322
+ if (sessionSize >= maxSessionSize) {
22288
22323
  let storageLength = window.sessionStorage.length;
22289
- if (storageLength > 200) {
22290
- storageLength = 200;
22324
+ if (storageLength > maxSessionLength) {
22325
+ storageLength = maxSessionLength;
22291
22326
  }
22292
22327
  for (let i = 0; i < storageLength; i++) {
22293
22328
  if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {
@@ -26265,12 +26300,9 @@ class Magnification {
26265
26300
  * @private
26266
26301
  */
26267
26302
  this.isDoubleTapZoom = false;
26268
- this.isWebkitMobile = false;
26269
26303
  this.pdfViewer = pdfViewer;
26270
26304
  this.pdfViewerBase = viewerBase;
26271
26305
  this.zoomLevel = 2;
26272
- // tslint:disable-next-line:max-line-length
26273
- this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);
26274
26306
  }
26275
26307
  /**
26276
26308
  * Zoom the PDF document to the given zoom value
@@ -26363,7 +26395,7 @@ class Magnification {
26363
26395
  this.isAutoZoom = false;
26364
26396
  this.onZoomChanged(zoomValue);
26365
26397
  if (Browser.isDevice) {
26366
- if (this.isWebkitMobile) {
26398
+ if (this.pdfViewerBase.isWebkitMobile) {
26367
26399
  this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';
26368
26400
  }
26369
26401
  else {
@@ -26525,7 +26557,7 @@ class Magnification {
26525
26557
  this.pdfViewerBase.isMinimumZoom = false;
26526
26558
  }
26527
26559
  if (Browser.isDevice) {
26528
- if (this.isWebkitMobile) {
26560
+ if (this.pdfViewerBase.isWebkitMobile) {
26529
26561
  this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';
26530
26562
  }
26531
26563
  else {
@@ -26798,9 +26830,16 @@ class Magnification {
26798
26830
  let pageNumber = parseInt(pageDivs[i].id.split('_pageCanvas_')[1]);
26799
26831
  let pageWidth = this.pdfViewerBase.pageSize[pageNumber].width;
26800
26832
  if ((viewPortWidth < pageWidth) && this.pdfViewer.tileRenderingSettings.enableTileRendering) {
26801
- pageDivs[i].width = pageWidth * this.pdfViewerBase.getZoomFactor();
26802
- // tslint:disable-next-line:max-line-length
26803
- pageDivs[i].height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();
26833
+ if (this.pdfViewer.restrictZoomRequest) {
26834
+ pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';
26835
+ // eslint-disable-next-line max-len
26836
+ pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';
26837
+ }
26838
+ else {
26839
+ pageDivs[i].width = pageWidth * this.pdfViewerBase.getZoomFactor();
26840
+ // eslint-disable-next-line max-len
26841
+ pageDivs[i].height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();
26842
+ }
26804
26843
  }
26805
26844
  }
26806
26845
  if (this.pdfViewerBase.textLayer) {
@@ -26902,11 +26941,11 @@ class Magnification {
26902
26941
  let canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);
26903
26942
  let width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;
26904
26943
  let height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;
26905
- if (canvas) {
26944
+ if (canvas && !this.pdfViewer.restrictZoomRequest) {
26906
26945
  // tslint:disable-next-line:max-line-length
26907
26946
  this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');
26908
26947
  }
26909
- else {
26948
+ else if (!this.pdfViewer.restrictZoomRequest) {
26910
26949
  this.pdfViewerBase.renderPageElement(i);
26911
26950
  }
26912
26951
  }
@@ -27088,33 +27127,6 @@ class Magnification {
27088
27127
  aElement[index].parentNode.removeChild(aElement[index]);
27089
27128
  }
27090
27129
  }
27091
- if (textLayer) {
27092
- textLayer.style.width = width + 'px';
27093
- textLayer.style.height = height + 'px';
27094
- if (this.pdfViewer.textSelectionModule) {
27095
- if (this.isPinchZoomed) {
27096
- textLayer.style.display = 'none';
27097
- }
27098
- else if (this.isMagnified) {
27099
- const lowerValue = ((pageNumber - 2) === 0) ? 0 : (pageNumber - 2);
27100
- // eslint-disable-next-line max-len
27101
- const higherValue = ((pageNumber) === (this.pdfViewerBase.pageCount)) ? (this.pdfViewerBase.pageCount - 1) : (pageNumber + 1);
27102
- if ((lowerValue <= i) && (i <= higherValue) && ((this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) || this.pdfViewerBase.textLayer.getTextSearchStatus() || this.pdfViewerBase.isInitialPageMode)) {
27103
- this.pdfViewerBase.textLayer.resizeTextContentsOnZoom(i);
27104
- if (this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) {
27105
- this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);
27106
- }
27107
- }
27108
- else {
27109
- textLayer.style.display = 'none';
27110
- }
27111
- }
27112
- else {
27113
- textLayer.style.display = 'none';
27114
- }
27115
- }
27116
- this.pdfViewerBase.applyElementStyles(textLayer, i);
27117
- }
27118
27130
  const adornerSvg = getDiagramElement(this.pdfViewer.element.id + '_textLayer_' + i);
27119
27131
  if (adornerSvg) {
27120
27132
  const adonerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdorner_svg');
@@ -36734,6 +36746,9 @@ __decorate$2([
36734
36746
  __decorate$2([
36735
36747
  Property(true)
36736
36748
  ], PdfViewer.prototype, "enableHandwrittenSignature", void 0);
36749
+ __decorate$2([
36750
+ Property(false)
36751
+ ], PdfViewer.prototype, "restrictZoomRequest", void 0);
36737
36752
  __decorate$2([
36738
36753
  Property('CurrentTab')
36739
36754
  ], PdfViewer.prototype, "hyperlinkOpenState", void 0);