UNPKG

@syncfusion/ej2-pdfviewer

Version:
1,137 lines 746 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; import { createElement, Browser, isNullOrUndefined, isBlazor, Internationalization, SanitizeHtmlHelper } from '@syncfusion/ej2-base'; import { Dialog } from '@syncfusion/ej2-popups'; import { TextLayer, ContextMenu, Signature, PdfFormFieldBase, AccessibilityTags, PdfAnnotationBase, PdfRenderedFields } from '../index'; import { NavigationPane } from './navigation-pane'; import { NumericTextBox } from '@syncfusion/ej2-inputs'; import { AjaxHandler } from '../index'; import { Point, Rect, identityMatrix, transformPointByMatrix, contains, rotateMatrix } from '@syncfusion/ej2-drawings'; import { SelectTool, MoveTool, ResizeTool, ConnectTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool, StampTool, InkDrawingTool } from '../drawing/tools'; import { Selector } from '../drawing/selector'; import { ActiveElements, findActiveElement } from '../drawing/action'; import { renderAdornerLayer } from '../drawing/dom-util'; import { cloneObject } from '../drawing/drawing-util'; import { BlazorContextMenu } from './blazor-context-menu'; import { createSpinner, showSpinner, hideSpinner } from './spinner'; import { BlazorUiAdaptor } from './blazor-ui-adaptor'; import { PdfViewerSessionStorage, TaskPriorityLevel } from './pdfviewer-utlis'; var PdfViewerBase = /** @class */ (function () { /** * Initialize the constructor of PDFViewerBase * * @param { PdfViewer } viewer - Specified PdfViewer class. */ function PdfViewerBase(viewer) { var _this = this; /** * @private */ this.hyperlinkAndLinkAnnotation = {}; /** * @private */ this.pageTextDetails = {}; /** * @private */ this.pageImageDetails = {}; /** * @private */ this.pageSize = []; /** * @private */ this.existingFieldImport = true; /** * @private */ this.pageCount = 0; /** * @private */ this.customZoomValues = []; /** * @private */ this.isReRenderRequired = true; /** * @private */ this.currentPageNumber = 0; this.initialZoomValue = {}; /** * @private */ this.activeElements = new ActiveElements(); /** * @private */ this.mouseDownEvent = null; /** * * @private */ this.pngData = []; /** * @private */ this.isDocumentLoaded = false; /** * @private */ this.renderedPagesList = []; /** * @private */ this.pageGap = 8; /** * @private */ this.signatureAdded = false; /** * @private */ this.isSignInitialClick = false; /** * @private */ this.isFreeTextSelected = false; this.pageLeft = 5; this.sessionLimit = 1000; this.pageStopValue = 300; /** * @private */ this.toolbarHeight = 56; this.pageLimit = 0; this.previousPage = 0; this.isViewerMouseDown = false; this.isViewerMouseWheel = false; this.scrollPosition = 0; this.sessionStorage = []; /** * @private */ this.isLoadedFormFieldAdded = false; this.isInkAnnot = false; this.modifiedPageIndex = []; this.pointerCount = 0; this.pointersForTouch = []; /** * @private */ this.isPasswordAvailable = false; /** * @private */ this.isBounds = false; /** * @private */ this.isImportDoc = false; /** * @private */ this.passwordData = ''; /** * @private */ this.reRenderedCount = 0; this.mouseX = 0; this.mouseY = 0; /** * @private */ this.mouseLeft = 0; /** * @private */ this.mouseTop = 0; this.touchClientX = 0; this.touchClientY = 0; this.previousTime = 0; this.currentTime = 0; this.isTouchScrolled = false; this.isgetFocused = false; this.isLongTouchPropagated = false; this.longTouchTimer = null; this.isViewerContainerDoubleClick = false; this.dblClickTimer = null; /** * @private */ this.pinchZoomStorage = []; /** * @private */ this.isTextSelectionDisabled = false; /** * @private */ this.isPanMode = false; this.dragX = 0; this.dragY = 0; this.isScrollbarMouseDown = false; this.scrollX = 0; this.scrollY = 0; this.ispageMoved = false; this.isThumb = false; this.isTapHidden = false; this.singleTapTimer = null; this.tapCount = 0; this.inputTapCount = 0; /** * @private */ this.isInitialLoaded = false; this.annotationPageList = []; this.importPageList = []; /** * @private */ this.isImportAction = false; this.isImportedAnnotation = false; /** * @private */ this.isAnnotationCollectionRemoved = false; /** * @private */ this.tool = null; this.action = 'Select'; /** * @private */ this.eventArgs = null; /** * @private */ this.inAction = false; /** * @private */ this.isMouseDown = false; /** * @private */ this.isStampMouseDown = false; /** * @private */ this.stampAdded = false; /** * @private */ this.customStampCount = 0; /** * @private */ this.isDynamicStamp = false; /** * @private */ this.isMixedSizeDocument = false; /** * @private */ this.highestWidth = 0; /** * @private */ this.highestHeight = 0; /** * @private */ this.customStampCollection = []; /** * @private */ this.isAlreadyAdded = false; /** * @private */ this.isWebkitMobile = false; /** * @private */ this.isFreeTextContextMenu = false; /** * @private */ this.isSelection = false; /** * @private */ this.isAddAnnotation = false; /** * @private */ this.annotationComments = null; /** * @private */ this.isToolbarSignClicked = false; /** * @private */ this.signatureCount = 0; /** * @private */ this.isSignatureAdded = false; /** * @private */ this.isNewSignatureAdded = false; /** * @private */ this.isInitialPageMode = false; /** * @private */ this.documentAnnotationCollections = null; /** * @private */ this.annotationRenderredList = []; /** * @private */ this.annotationStorage = {}; /** * @private */ this.formFieldStorage = {}; /** * @private */ this.isStorageExceed = false; /** * @private */ this.isFormStorageExceed = false; /** * @private */ this.isNewStamp = false; /** * @private */ this.downloadCollections = {}; /** * @private */ this.isAnnotationAdded = false; /** * @private */ this.annotationEvent = null; /** * @private */ this.isAnnotationDrawn = false; /** * @private */ this.isAnnotationSelect = false; /** * @private */ this.isAnnotationMouseDown = false; /** * @private */ this.isAnnotationMouseMove = false; /** * @private */ this.validateForm = false; /** * @private */ this.isMinimumZoom = false; /** * @private */ this.documentLoaded = false; this.tileRenderCount = 0; this.tileRequestCount = 0; /** * @private */ this.isTileImageRendered = false; this.isDataExits = false; this.requestLists = []; this.tilerequestLists = []; this.textrequestLists = []; this.renderThumbnailImages = false; /** * @private */ this.pageRenderCount = 2; /** * @private */ this.isInkAdded = false; /** * @private */ this.inkCount = 0; /** * @private */ this.isAddedSignClicked = false; /** * @private */ this.imageCount = 0; /** * @private */ this.isMousedOver = false; /** * @private */ this.isFormFieldSelect = false; /** * @private */ this.isFormFieldMouseDown = false; /** * @private */ this.isFormFieldMouseMove = false; /** * @private */ this.isFormFieldMousedOver = false; /** * @private */ this.isPassword = false; /** * @private */ this.digitalSignaturePages = []; this.isDigitalSignaturePresent = false; this.isDrawnCompletely = false; /** * @private */ this.isAddComment = false; /** * @private */ this.drawSignatureWithTool = false; /** * @private */ this.formFieldCollection = []; /** * @private */ this.requestCollection = []; /** * @private */ this.nonFillableFields = {}; /** * @private */ this.isInitialField = false; /** * @private */ this.isTouchDesignerMode = false; /** * @private */ this.isPrint = false; /** * @private */ this.isPDFViewerJson = false; /** * @private */ this.isJsonImported = false; /** * @private */ this.isJsonExported = false; /** * @private */ this.isPageRotated = false; this.downloadFileName = ''; /** * @private */ this.isFocusField = false; /** * @private */ this.isTouchPad = false; /** * @private */ this.isMacGestureActive = false; /** * @private */ this.macGestureStartScale = 0; /** * @private */ this.zoomInterval = 5; /** * @private */ this.isTaggedPdf = false; this.accessibilityTagsHandler = null; this.accessibilityTagsCollection = []; this.pageRequestListForAccessibilityTags = []; this.enableAccessibilityMultiPageRequest = true; /** * @private */ this.clientSideRendering = false; /** * @private */ this.focusField = []; /** * @private */ this.isSkipDocumentPath = false; this.isScrollerMoving = false; this.isScrollerMovingTimer = null; /** * @private */ this.previousScrollbarWidth = 0; /** * @returns {void} */ this.closeNotification = function () { _this.notifyDialog.hide(); }; /** * @returns {void} */ this.clearSessionStorage = function () { if (!_this.clientSideRendering) { var documentId = ''; var hashId = PdfViewerBase.sessionStorageManager.getItem(_this.documentId + '_hashId'); var documentLiveCount = PdfViewerBase.sessionStorageManager.getItem(_this.documentId + '_documentLiveCount'); var serviceURL = PdfViewerBase.sessionStorageManager.getItem(_this.documentId + '_serviceURL'); if (Browser.isIE || Browser.info.name === 'edge') { documentId = decodeURI(hashId); } else { documentId = hashId; } if (documentId != null) { var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: _this.pdfViewer.element.id }; var actionName = PdfViewerBase.sessionStorageManager.getItem(_this.documentId + '_unload'); if (!isNullOrUndefined(serviceURL)) { var browserSupportsKeepalive = 'keepalive' in new Request(''); if (browserSupportsKeepalive) { var headerValue = _this.setUnloadRequestHeaders(); var credentialsData = _this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit'; fetch(serviceURL + '/' + actionName, { method: 'POST', credentials: credentialsData, headers: headerValue, body: JSON.stringify(jsonObject) }); } } else if (isBlazor()) { _this.clearCache(actionName, jsonObject, _this); } } } PdfViewerBase.sessionStorageManager.clear(); }; /** * @private * @param {MouseEvent} event - Mouse event. * @returns {void} */ this.onWindowResize = function (event) { var proxy = null; // eslint-disable-next-line proxy = _this; if (_this.pdfViewer.enableRtl) { proxy.viewerContainer.style.right = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px'; proxy.viewerContainer.style.left = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px'; } else { proxy.viewerContainer.style.left = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px'; proxy.viewerContainer.style.right = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px'; } var viewerElementWidth = (proxy.pdfViewer.element.clientWidth > 0 ? proxy.pdfViewer.element.clientWidth : proxy.pdfViewer.element.style.width); var viewerWidth = (viewerElementWidth - (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) - (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.getViewerContainerRight() : 0)); proxy.viewerContainer.style.width = viewerWidth + 'px'; if (proxy.pdfViewer.toolbarModule) { var toolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-toolbar') : proxy.getElement('_toolbarContainer'); var toolbarHeight = 0; var formDesignerToolbarHeight = 0; if (toolbarContainer) { toolbarHeight = toolbarContainer.getBoundingClientRect().height; } if (proxy.isAnnotationToolbarHidden() || (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) { if (toolbarHeight === 0) { if (_this.navigationPane.isNavigationToolbarVisible) { var navigationToolbar = proxy.getElement('_navigationToolbar'); toolbarHeight = navigationToolbar.getBoundingClientRect().height; } } if (!proxy.isFormDesignerToolbarHidded()) { var formDesignerToolbar = proxy.getElement('_formdesigner_toolbar'); formDesignerToolbarHeight = formDesignerToolbar ? formDesignerToolbar.getBoundingClientRect().height : 0; } proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + formDesignerToolbarHeight); } else { var annotationToolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-annotation-toolbar') : proxy.getElement('_annotation_toolbar'); var annotationToolbarHeight = 0; if (annotationToolbarContainer) { annotationToolbarHeight = annotationToolbarContainer.getBoundingClientRect().height; } proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + annotationToolbarHeight); } } else { proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0); } if (proxy.pdfViewer.bookmarkViewModule && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) { var bookmarkContainer = proxy.getElement('_bookmarks_container'); if (bookmarkContainer) { bookmarkContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0); } } if (proxy.viewerContainer.style.height === '0px') { if (proxy.pdfViewer.height.toString() === 'auto') { proxy.pdfViewer.height = 500; proxy.viewerContainer.style.height = proxy.pdfViewer.height + 'px'; } else { proxy.viewerContainer.style.height = proxy.pdfViewer.element.style.height; } } if (proxy.viewerContainer.style.width === '0px') { if (proxy.pdfViewer.width.toString() === 'auto') { proxy.pdfViewer.width = 500; proxy.viewerContainer.style.width = proxy.pdfViewer.width + 'px'; } else { proxy.viewerContainer.style.width = proxy.pdfViewer.element.style.width; } } proxy.pageContainer.style.width = proxy.viewerContainer.clientWidth + 'px'; if (proxy.viewerContainer.clientWidth === 0) { proxy.pageContainer.style.width = proxy.pdfViewer.element.style.width; } if (!isBlazor()) { if (proxy.pdfViewer.toolbarModule) { proxy.pdfViewer.toolbarModule.onToolbarResize((proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerMainContainerWidth() : proxy.pdfViewer.element.clientWidth)); } } if (_this.pdfViewer.enableToolbar && _this.pdfViewer.thumbnailViewModule) { proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1); if (proxy.navigationPane.sideBarToolbar && proxy.navigationPane.sideBarContentContainer) { proxy.navigationPane.sideBarContentContainer.style.height = proxy.viewerContainer.style.height; } } if (proxy.pdfViewer.textSearchModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) { proxy.pdfViewer.textSearchModule.textSearchBoxOnResize(); } if (viewerWidth !== 0) { if (!proxy.navigationPane.isBookmarkListOpen) { proxy.updateZoomValue(); } } if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) { proxy.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(proxy.mobileScrollerContainer.style.width)) + 'px'; proxy.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(proxy.mobilePageNoContainer.style.width) / 2) + 'px'; proxy.mobilePageNoContainer.style.top = (proxy.pdfViewer.element.clientHeight / 2) + 'px'; proxy.updateMobileScrollerPosition(); } else { proxy.navigationPane.setResizeIconTop(); proxy.navigationPane.setCommentPanelResizeIconTop(); if (event && event.type === 'resize') { proxy.signatureModule.updateCanvasSize(); } } if (proxy.navigationPane.sideBarToolbar) { proxy.navigationPane.sideBarToolbar.style.height = proxy.viewerContainer.style.height; } }; /** * @param {MouseEvent} event - The MouseEvent. * @returns {void} */ this.viewerContainerOnMousedown = function (event) { _this.isFreeTextContextMenu = false; var isUpdate = false; _this.isSelection = true; var target = event.target; if (event.button === 0 && !_this.getPopupNoteVisibleStatus() && !_this.isClickedOnScrollBar(event, false)) { _this.isViewerMouseDown = true; if (event.detail === 1 && target.className !== 'e-pdfviewer-formFields' && target.className !== 'free-text-input') { isUpdate = true; _this.focusViewerContainer(true); } _this.scrollPosition = _this.viewerContainer.scrollTop / _this.getZoomFactor(); _this.mouseX = event.clientX; _this.mouseY = event.clientY; _this.mouseLeft = event.clientX; _this.mouseTop = event.clientY; var isIE = !!document.documentMode; if (_this.pdfViewer.textSelectionModule && !_this.isClickedOnScrollBar(event, true) && !_this.isTextSelectionDisabled) { if (!isIE && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pdfviewer-ListBox' && target.className.indexOf('e-pv-formfield-dropdown') === -1 && target.className !== 'e-pv-formfield-listbox' && target.className !== 'e-pv-formfield-input' && target.className !== 'e-pv-formfield-textarea') { event.preventDefault(); } if (target.className !== 'e-pv-droplet') { _this.pdfViewer.textSelectionModule.clearTextSelection(); } } } if (_this.isClickedOnScrollBar(event, false)) { _this.isViewerMouseDown = true; } if (_this.isPanMode) { _this.dragX = event.pageX; _this.dragY = event.pageY; if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) { _this.viewerContainer.style.cursor = 'grabbing'; } } if (_this.isShapeBasedAnnotationsEnabled() && (_this.isAnnotationDrawn || !(target.className === 'e-pv-page-container' || (target.className === 'foreign-object' && isNaN(_this.activeElements.activePageID))))) { _this.diagramMouseDown(event); } if (_this.pdfViewer.annotation && _this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) { if (!isUpdate) { _this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isEditableElement = false; _this.updateCommentPanel(); isUpdate = true; } } if (isBlazor()) { _this.mouseDownHandler(event); } }; /** * @param {MouseEvent} event - The MouseEvent. * @returns {void} */ this.viewerContainerOnMouseup = function (event) { if (!_this.getPopupNoteVisibleStatus()) { if (_this.isViewerMouseDown) { if (_this.scrollHoldTimer) { clearTimeout(_this.scrollHoldTimer); _this.scrollHoldTimer = null; } if ((_this.scrollPosition * _this.getZoomFactor()) !== _this.viewerContainer.scrollTop) { _this.pageViewScrollChanged(_this.currentPageNumber); } } var isSignatureFieldReadOnly = false; if (event.target) { if (event.target.className === 'e-pv-show-designer-name' && event.target.id.split('_', 1) !== '') { isSignatureFieldReadOnly = document.getElementById(event.target.id.split('_', 1)).disabled; } if (event.target.className === 'foreign-object' && event.target.children[0]) { isSignatureFieldReadOnly = event.target.children[0].disabled; } } if (isSignatureFieldReadOnly && _this.pdfViewer.annotation) { _this.pdfViewer.annotation.clearSelection(); } if (_this.isShapeBasedAnnotationsEnabled() && !isSignatureFieldReadOnly && (_this.isAnnotationDrawn || _this.action !== 'DrawTool')) { _this.diagramMouseUp(event); if (_this.pdfViewer.annotation) { _this.pdfViewer.annotation.onAnnotationMouseUp(); } } if (_this.pdfViewer.selectedItems.formFields.length > 0) { if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) { _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true); } } else { if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) { _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(false); } } _this.isSelection = false; var commentElement = document.getElementById(_this.pdfViewer.element.id + '_commantPanel'); if (commentElement && commentElement.style.display === 'block') { if (_this.pdfViewer.selectedItems) { if (_this.pdfViewer.selectedItems.annotations.length !== 0) { var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber); if (accordionExpand) { accordionExpand.ej2_instances[0].expandItem(true); } var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName); if (commentsDiv) { if (!commentsDiv.classList.contains('e-pv-comments-border')) { commentsDiv.firstChild.click(); } } } } } if (event.button === 0 && !_this.isClickedOnScrollBar(event, false)) { // 0 is for left button. var eventTarget_1 = event.target; var offsetX = event.clientX; var offsetY = event.clientY; var zoomFactor = _this.getZoomFactor(); var pageIndex = _this.currentPageNumber; if (eventTarget_1) { var pageString = eventTarget_1.id.split('_text_')[1] || eventTarget_1.id.split('_textLayer_')[1] || eventTarget_1.id.split('_annotationCanvas_')[1] || eventTarget_1.id.split('_pageDiv_')[1] || eventTarget_1.id.split('_freeText_')[1] || eventTarget_1.id.split('_')[1]; pageIndex = parseInt(pageString, 10); if (isNaN(pageIndex) && _this.pdfViewer.formFieldCollection) { var formFieldsTargetId = _this.pdfViewer.formFieldCollection.filter(function (targetFormField) { return (targetFormField.id === eventTarget_1.id) || (targetFormField.id === eventTarget_1.id.split('_')[0]); }); if (formFieldsTargetId.length > 0) { pageIndex = formFieldsTargetId[0].pageIndex; } } } var pageDiv = _this.getElement('_pageDiv_' + pageIndex); if (pageDiv) { var pageCurrentRect = pageDiv.getBoundingClientRect(); offsetX = (event.clientX - pageCurrentRect.left) / zoomFactor; offsetY = (event.clientY - pageCurrentRect.top) / zoomFactor; } if (eventTarget_1 && eventTarget_1.classList && !eventTarget_1.classList.contains('e-pv-hyperlink') && !eventTarget_1.classList.contains('e-pv-page-container')) { _this.pdfViewer.firePageClick(offsetX, offsetY, pageIndex + 1); if (_this.pdfViewer.formFieldsModule && !_this.pdfViewer.formDesignerModule) { _this.signatureModule.removeFocus(); } } if (_this.isTextMarkupAnnotationModule() && !_this.isToolbarInkClicked) { _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseUp(event); } if (_this.pdfViewer.formDesignerModule && !_this.pdfViewer.annotationModule) { _this.pdfViewer.formDesignerModule.updateCanvas(pageIndex); } if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) { _this.viewerContainer.style.cursor = 'move'; _this.viewerContainer.style.cursor = '-webkit-grab'; _this.viewerContainer.style.cursor = '-moz-grab'; _this.viewerContainer.style.cursor = 'grab'; } } _this.isViewerMouseDown = false; } }; /** * @param {any} event - The Wheel event. * @returns {void} */ this.detectTouchPad = function (event) { _this.isTouchPad = event.wheelDeltaY ? (event.wheelDeltaY === (event.deltaY * -3) ? true : Math.abs(event.deltaY) < 60) : (event.deltaMode === 0); }; /** * @param {any} event - The Wheel event. * @returns {void} */ this.handleMacGestureStart = function (event) { event.preventDefault(); event.stopPropagation(); _this.macGestureStartScale = _this.pdfViewer.magnification.zoomFactor; }; /** * @param {any} event - The Wheel event. * @returns {void} */ this.handleMacGestureChange = function (event) { event.preventDefault(); event.stopPropagation(); var macX = event.clientX; var macY = event.clientY; var scale = Number((_this.macGestureStartScale * event.scale).toFixed(2)); if (!_this.isMacGestureActive) { _this.isMacGestureActive = true; _this.pdfViewer.magnification.initiateMouseZoom(macX, macY, scale * 100); setTimeout(function () { _this.isMacGestureActive = false; }, 50); } }; /** * @param {any} event - The Wheel event. * @returns {void} */ this.handleMacGestureEnd = function (event) { event.preventDefault(); event.stopPropagation(); }; /** * @param {WheelEvent} event - The MouseEvent. * @returns {void} */ this.viewerContainerOnMouseWheel = function (event) { _this.isViewerMouseWheel = true; if (_this.getRerenderCanvasCreated()) { event.preventDefault(); } if (event.ctrlKey) { var zoomDifference = 25; if (_this.pdfViewer.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue < 1) { zoomDifference = 10; } if (_this.pdfViewer.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue >= 2) { zoomDifference = 50; } if (_this.isTouchPad && !_this.isMacSafari) { zoomDifference = zoomDifference / _this.zoomInterval; } if (_this.pdfViewer.magnificationModule) { if (event.wheelDelta > 0) { _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) + zoomDifference); } else { _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) - zoomDifference); } } _this.isTouchPad = false; } if (_this.pdfViewer.magnificationModule) { _this.pdfViewer.magnificationModule.pageRerenderOnMouseWheel(); if (event.ctrlKey) { event.preventDefault(); } _this.pdfViewer.magnificationModule.fitPageScrollMouseWheel(event); } if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) { if (_this.isViewerMouseDown) { if (!event.target.classList.contains('e-pv-text')) { _this.pdfViewer.textSelectionModule.textSelectionOnMouseWheel(_this.currentPageNumber - 1); } } } }; /** * @param {KeyboardEvent} event - The KeyboardEvent. * @returns {void} */ this.onWindowKeyDown = function (event) { var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false; var isCommandKey = isMac ? event.metaKey : false; if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) { return; } if (!event.ctrlKey || !isCommandKey) { switch (event.keyCode) { case 46: { var activeElement = document.activeElement; if (activeElement.tagName !== 'INPUT' && activeElement.tagName !== 'TEXTAREA' && !activeElement.isContentEditable) { _this.DeleteKeyPressed(event); } break; } case 27: if (_this.pdfViewer.toolbar) { _this.pdfViewer.toolbar.addInkAnnotation(); _this.pdfViewer.toolbar.deSelectCommentAnnotation(); _this.pdfViewer.toolbar.updateStampItems(); if (_this.pdfViewer.toolbar.annotationToolbarModule) { if (isBlazor()) { _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItemsInBlazor(); } else { _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems(); } } if (_this.pdfViewer.isFormDesignerToolbarVisible && document.getElementById('FormField_helper_html_element')) { var formFieldElement = document.getElementById('FormField_helper_html_element'); if (formFieldElement) { formFieldElement.remove(); } } _this.pdfViewer.tool = ''; _this.focusViewerContainer(); } break; case 13: if (_this.pdfViewer.formDesignerModule) { if ((event.type === 'keydown' && event.keyCode === 13)) { if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) { var fieldId = void 0; var currentTarget = event.target; if ((event.target.tabIndex && !event.target.id)) { currentTarget = event.target.parentElement; fieldId = currentTarget.id.split('_content_html_element')[0]; } else { currentTarget = event.target; fieldId = currentTarget.id.split('_')[0]; } for (var i = 0; i < _this.pdfViewer.formFieldCollections.length; i++) { var formfield = _this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)]; if (fieldId === formfield.id && (formfield.type === 'SignatureField' || formfield.type === 'InitialField')) { _this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', _this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)]); event.preventDefault(); } } } } } break; case 32: if (_this.pdfViewer.formDesignerModule) { if ((event.type === 'keydown' && event.keyCode === 32)) { if (event.target && event.target.id && _this.pdfViewer.formFields) { for (var i = 0; i < _this.pdfViewer.formFields.length; i++) { var formField = _this.pdfViewer.formFields[parseInt(i.toString(), 10)]; if (event.target.id.split('_')[0] === formField.id && (formField.formFieldAnnotationType === 'Checkbox')) { _this.pdfViewer.formDesignerModule.setCheckBoxState(event); event.preventDefault(); break; } } } } } break; case 9: if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) { { if (event.target.className === 'e-pv-formfield-input' || event.target.className === 'foreign-object' || event.target.id === _this.pdfViewer.element.id + '_viewerContainer') { var nextField = void 0; var fieldIndex = void 0; var currentTarget_1 = event.target; var id_1; if ((event.target.tabIndex && !event.target.id)) { currentTarget_1 = event.target.parentElement; id_1 = currentTarget_1.id.split('_content_html_element')[0]; } else { currentTarget_1 = event.target; id_1 = currentTarget_1.id.split('_input')[0]; } if (_this.pdfViewer.formDesignerModule) { if ((event.shiftKey && event.key === 'Tab')) { fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; }); nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1]; } else { fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; }); nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0]; } _this.pdfViewer.focusFormField(nextField); event.preventDefault(); } if (!_this.pdfViewer.formDesigner) { if (!(currentTarget_1.className === 'e-pdfviewer-formFields')) { if ((event.shiftKey && event.key === 'Tab')) { fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; }); nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1]; } else { fieldIndex = _this.pdfViewer.formFieldCollections. findIndex(function (field) { return field.id === currentTarget_1.id; }); nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0]; } _this.pdfViewer.focusFormField(nextField); event.preventDefault(); } } } } } if (event.target && event.target.id && _this.pdfViewer.formFields) { for (var i = 0; i < _this.pdfViewer.formFields.length; i++) { var formField = _this.pdfViewer.formFields[parseInt(i.toString(), 10)]; if (event.target.id === formField.id) { var field = { value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle, color: formField.color, backgroundColor: formField.backgroundColor, alignment: formField.alignment, isReadonly: formField.isReadonly, visibility: formField.visibility, maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotateAngle, tooltip: formField.tooltip, options: formField.options, isChecked: formField.isChecked, isSelected: formField.isSelected }; _this.pdfViewer.fireFocusOutFormField(field, formField.pageIndex); } } } break; } } }; /** * @param {KeyboardEvent} event - The KeyboardEvent. * @returns {void} */ this.viewerContainerOnKeyDown = function (event) { var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false; var isCommandKey = isMac ? event.metaKey : false; var commands = _this.pdfViewer.c