{"version":3,"file":"kendo.pdfviewer.min.js","names":["factory","define","amd","extend","window","kendo","jQuery","pdfviewer","pdfjs","lib","pdfjsLib","isLoaded","console","error","$","undefined$1","PDFJS","Class","atob","PDFJSProcessor","init","options","viewer","this","file","fetchDocument","that","deferred","Deferred","messages","errorMessages","_isBase64Data","data","getDocument","promise","then","pdf","pageSizes","pagePromises","_downloadData","getData","blob","Blob","type","resolve","i","numPages","push","getPage","Promise","all","map","pagePromise","viewport","getViewport","scale","width","height","total","pages","catch","e","_triggerError","message","parseError","notFoundError","name","includes","alertMessage","notFound","_renderBlankPage","fetchPageData","number","downloadFile","fileName","ui","progress","pageContainer","done","result","reader","FileReader","readAsDataURL","onload","saveAs","dataURI","proxyURL","_updateDocument","loadingTask","destroy","equalSign","length","test","indexOf","renderTextLayer","params","processor","NS","Widget","CHANGE","KEYDOWN","CLICK","kendoAttr","ARIA_DISABLED","pagerStyles","Pager","DPLProcessor","read","upload","download","ajax","url","dataType","success","stringify","JSON","parse","xhr","responseText","page","document","pageField","geometries","location","fromJSON","json","_clearPages","_renderPages","resize","activatePage","dpl","support","click","attr","element","fn","call","linkTemplate","template","addClass","_renderLinks","_toggleDisabledClass","_attachEvents","previousNext","input","events","_pagerLink","iconClass","text","pageIdx","wrapClass","firstLink","first","prevLink","previous","nextLink","next","lastLink","last","append","_renderInput","toggleClass","on","_click","bind","keyCode","keys","ENTER","preventDefault","_keydown","target","currentTarget","parseInt","isDefaultPrevented","_change","key","val","upDown","UP","DOWN","direction","isNaN","trigger","setOptions","prevTotal","totalMessage","inputTemplate","shouldShrink","parent","pagerInputWrap","find","off","format","of","html","ACTION","Item","toolbar","TemplateItem","ToolBar","PREDEFINED_ZOOM_VALUES","auto","actual","fitToWidth","fitToPage","styles","ZOOM_COMBOBOX_TEMPLATE","DefaultTools","pager","overflow","command","spacer","zoomInOut","attributes","class","buttons","icon","showText","zoom","combobox","zoomLevels","enable","toggleSelection","togglable","group","selected","spacer2","search","open","print","AllTools","exportAs","ToolbarPager","pagerElement","change","addUidAttr","addOverflowAttr","action","value","children","targetIndex","index","RIGHT","focus","stopPropagation","LEFT","registerComponent","ToolBarZoom","_initValue","_buildComboBox","comboOptions","percent","autoWidth","actualWidth","concat","zoomLevel","mobileOS","kendoComboBox","clearButton","getKendoComboBox","wrapper","_currentValue","throttle","parsedValue","sender","toString","match","replace","ViewerToolBar","items","Object","_updateItems","toggle","update","_update","tool","isPlainObject","toolOptions","toolName","title","fillMode","deepExtend","button","closest","zoomIn","zoomOut","updateComboBox","pageOptions","focusable","not","isBlank","_updateZoomComboBox","Math","round","args","Toolbar","noop","drawing","Group","Surface","RENDER","geometryTypes","Path","MultiPath","Rect","Image","Text","Page","pageNumber","_updatePageSize","ratio","pageElement","min","size","render","DPLPage","draw","surface","_drawGeometries","load","loaded","_initSurface","surfaceOptions","view","kGeometry","geometry","_drawPath","_drawRect","_drawImage","_drawText","rectGeo","point","transform","_getMatrix","fill","fillOptions","stroke","strokeOptions","imageRect","src","font","content","path","paths","subPath","segments","moveTo","apply","j","segment","points","lineTo","curveTo","closed","close","matrix","create","Matrix","prototype","PDFJSPage","canvas","get","defaultScale","force","_scale","_page","_renderPromise","dpr","devicePixelRatio","context","getContext","_dpr","_renderTask","cancel","canvasContext","_renderTextLayer","textLayer","remove","getTextContent","normalizeWhitespace","textContent","css","container","textDivs","enhanceTextSelection","isArray","Array","SearchDOM","processDom","highlightClass","charClass","targets","textNodes","charIndex","forEach","traverseToTextNode","processTextNode","node","nodeType","childNodes","span","wrap","empty","splitChars","unwrap","newHtml","innerHTML","matchCase","expression","RegExp","matches","resetMark","resetHighlight","resetMatchIndex","exec","startOffset","endOffset","highlightAll","mark","start","end","highlight","matchIndex","removeClass","removeAttr","currentIndex","wrapInner","contents","nextMatch","previousMatch","getMarkedIndex","getFirstMarked","eq","each","item","EXTENSIONS","ErrorDialog","actions","dialogs","okText","_dialog","kendoDialog","getKendoDialog","center","ExportAsDialog","fileFormats","description","exportAsDialog","png","extension","svg","_initializeDialog","autoFocus","resizable","modal","preventScroll","maxWidth","_updateModel","pagesCount","viewModel","set","dialogMessages","dialog","kendoWindow","getKendoWindow","observable","defaultFileName","SearchDialog","dialogElm","dialogOffset","top","position","left","Window","minHeight","draggable","dragHandle","activate","ev","searchModel","boundValue","searchText","matchCaseClick","prev","onKeyup","navigationFn","shiftKey","onInput","parseJSON","Command","OpenCommand","_upload","_initUpload","uploadOptions","select","_onSelect","_onSuccess","_onError","complete","_onComplete","showFileList","multiple","validation","allowedExtensions","async","saveUrl","autoUpload","saveField","kendoUpload","getKendoUpload","response","XMLHttpRequest","notSupported","fileToUpload","files","toLowerCase","fromFile","onerror","readAsArrayBuffer","rawFile","PageChangeCommand","DownloadCommand","info","ExportCommand","_saveDialog","_initDialog","exportImage","exportSVG","EnableSelectionCommand","_toggleSelection","EnablePanCommand","OpenSearchCommand","searchDialog","offset","_open","_next","_prev","_close","changeHandler","zoomStartHandler","_closeDialog","openFileHandler","_searchDOM","_initSearchDOM","searchEngine","unbind","_updateSearchModel","field","model","_scrollToMark","marked","scroller","_scroller","scrollElement","scrollTo","scrollLeft","ZoomCommand","loadedPagesHeight","_pageNum","containerHeight","clientHeight","updatedVisiblePagesCount","renderTasks","processingLib","_calculateZoom","updateViewer","scrollingStarted","_scrollingStarted","scrollTop","scrollHeight","_resize","zoomScale","pageHeight","_visiblePages","_visiblePagesCount","_loadVisiblePages","_triggerZoomEnd","viewerOptions","visibleCanvas","calculatedDpr","scaleValue","_allowResize","_autoFit","zoomRate","_autoZoomScale","zoomMin","zoomMax","PrintCommand","_renderPrintContainer","_loadAllPages","processAfterRender","printContainer","loadPromises","renderPromises","getRenderPromise","_originalScale","_renderPrintPages","setTimeout","_printDocument","_renderPrintImage","div","img","toDataURL","myWindow","browser","write","chrome","chromiumEdge","popupBlocked","PLUS","MINUS","ZERO","NUMPAD_ZERO","ERROR","UPDATE","ZOOM_SCALE","PAGE_CHANGE","ZOOMCOMMAND","PROCESSORS","PDFViewer","_wrapper","_renderToolbar","_initProcessor","_renderPageContainer","_loadDocument","_tabindex","notify","pdfjsProcessing","dplProcessing","loadOnDemand","defaultPageSize","togglePan","labels","saveAsType","save","inputLabel","_focus","_resizeHandler","onResize","plusShortcuts","NUMPAD_PLUS","minusShortcuts","NUMPAD_MINUS","zeroShortcuts","shouldExecute","ctrlKey","_blankPage","execute","processingOptions","toolbarOptions","toolbarElement","appendTo","_initErrorDialog","_errorDialog","dialogInstance","pagesData","viewerPage","pageData","_attachContainerEvents","_getVisiblePagesCount","clearTimeout","_resizePages","containerWidth","clientWidth","currentRatio","max","_wheel","activeElement","mobile","Scroller","elastic","_scroll","currentPage","currentPageTop","currentPageHeight","previousPage","prevPageTop","prevPageHeight","containerScrollHeight","containerScrollTop","containerOffsetTop","pageNum","pageIndex","pageToLoadNum","scrollDirection","_prevScrollTop","_preventScroll","abs","floor","originalEvent","wheelDelta","detail","preventComboBoxChange","commandOptions","loadPage","scrollerTopPosition","scrollerTopOffset","pageTopOffset","pageMargin","minVisiblePageNum","maxVisiblePageNum","slice","promises","rootGroup","background","fromRect","color","forceProxy","proxyTarget","unbindResize","reset","userEvents","_shouldNotMove","_getTextLayers","plugin"],"sources":["kendo.pdfviewer.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.mobile.scroller', 'kendo.core', 'kendo.toolbar', 'kendo.combobox', 'kendo.drawing', 'kendo.dialog', 'kendo.window', 'kendo.binder', 'kendo.numerictextbox', 'kendo.dropdownlist', 'kendo.upload'], factory) :\n factory();\n})((function () {\n (function($, undefined$1) {\n var extend = $.extend;\n var isLoaded = function() {\n if (!window.pdfjsLib)\n {\n var console = window.console;\n\n if (console && console.error) {\n console.error(\"PDF.JS required.\");\n }\n\n return false;\n }\n\n kendo.pdfviewer.pdfjs.lib = window.pdfjsLib;\n\n return true;\n };\n\n extend(kendo, {\n pdfviewer: {\n pdfjs: {\n lib: window.pdfjsLib,\n isLoaded: isLoaded\n }\n }\n });\n })(window.kendo.jQuery);\n\n var __meta__$2 = {\n id: \"pdfjs-processor\",\n name: \"PDFJS-Processor\",\n category: \"framework\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Class = kendo.Class,\n extend = $.extend,\n atob = window.atob,\n PDFJS;\n\n var PDFJSProcessor = Class.extend({\n init: function(options, viewer) {\n var that = this;\n\n if (kendo.pdfviewer.pdfjs.isLoaded()) {\n PDFJS = kendo.pdfviewer.pdfjs.lib;\n }\n\n that.file = options.file;\n that.viewer = viewer;\n },\n fetchDocument: function() {\n var that = this,\n deferred = $.Deferred(),\n messages = that.viewer.options.messages.errorMessages;\n\n if (!that.file) {\n return deferred.resolve();\n }\n\n if (that._isBase64Data() && atob)\n {\n that.file.data = atob(that.file.data);\n }\n\n PDFJS.getDocument(this.file).promise.then(function(pdf) {\n var pageSizes = [];\n that.pdf = pdf;\n that.pagePromises = [];\n that._downloadData = $.Deferred();\n\n pdf.getData().then(function(data) {\n var blob = new Blob([data], { type: 'application/pdf' });\n that._downloadData.resolve({\n file: blob\n });\n });\n\n for (var i = 1; i <= pdf.numPages; i++) {\n that.pagePromises.push(pdf.getPage(i));\n }\n\n Promise.all(that.pagePromises).then(function(pagePromises) {\n pageSizes = pagePromises.map(function(pagePromise) {\n var viewport = pagePromise.getViewport({ scale: 4 / 3 });\n return {\n width: viewport.width,\n height: viewport.height\n };\n });\n\n deferred.resolve({\n total: pdf.numPages,\n pages: pageSizes\n });\n }).catch(function(e) {\n that.viewer._triggerError({\n error: e.message,\n message: messages.parseError\n });\n });\n\n }).catch(function(e) {\n var notFoundError = e.name.includes(\"Missing\");\n var alertMessage = notFoundError ? messages.notFound : messages.parseError;\n that.viewer._triggerError({\n error: e.message,\n message: alertMessage\n });\n if (notFoundError) {\n that.viewer._renderBlankPage();\n }\n });\n\n return deferred;\n },\n fetchPageData: function(number) {\n return this.pagePromises[number - 1];\n },\n downloadFile: function(fileName) {\n var that = this;\n kendo.ui.progress(that.viewer.pageContainer, true);\n\n that._downloadData.done(function(result) {\n kendo.ui.progress(that.viewer.pageContainer, false);\n\n var reader = new FileReader();\n reader.readAsDataURL(result.file);\n\n reader.onload = function() {\n kendo.saveAs({\n dataURI: reader.result,\n fileName: fileName + \".pdf\",\n proxyURL: function() {\n return reader.result;\n }\n });\n };\n });\n },\n _updateDocument: function(file) {\n if (this.pdf && this.pdf.loadingTask) {\n this.pdf.loadingTask.destroy();\n }\n\n this.file = file;\n },\n _isBase64Data: function() {\n var data = this.file.data,\n notBase64 = /[^A-Z0-9+\\/=]/i,\n length = data && data.length,\n equalSign;\n\n if (!length || length % 4 !== 0 || notBase64.test(data)) {\n return false;\n }\n\n equalSign = data.indexOf('=');\n\n return equalSign === -1 ||\n equalSign === length - 1 ||\n (equalSign === length - 2 && data[length - 1] === '=');\n },\n renderTextLayer: function(params) {\n PDFJS.renderTextLayer(params);\n }\n });\n\n extend(kendo.pdfviewer.pdfjs, {\n processor: PDFJSProcessor\n });\n })(window.kendo.jQuery);\n\n var __meta__$1 = {\n id: \"dpl-processor\",\n name: \"DPL-Processor\",\n category: \"framework\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n Class = kendo.Class;\n\n var DPLProcessor = Class.extend({\n init: function(options, viewer) {\n var that = this;\n\n that.options = options;\n that.read = options.read;\n that.upload = options.upload;\n that.download = options.download;\n\n that.viewer = viewer;\n },\n fetchDocument: function() {\n var that = this,\n deferred = $.Deferred(),\n errorMessages = that.viewer.options.messages.errorMessages;\n\n if (!that.read) {\n return deferred.resolve();\n }\n\n $.ajax({\n type: that.read.type,\n url: that.read.url,\n dataType: that.read.dataType,\n success: function(data) {\n if (typeof data != \"string\") {\n data = kendo.stringify(data);\n }\n deferred.resolve(JSON.parse(data));\n },\n error: function(xhr) {\n that.viewer._triggerError({\n error: xhr.responseText,\n message: errorMessages.parseError\n });\n }\n });\n\n return deferred;\n },\n fetchPageData: function(number) {\n var that = this;\n var deferred = $.Deferred();\n var page = that.viewer.document.pages[number - 1];\n var data = {};\n data[that.read.pageField] = number;\n\n if (!page.geometries.length) {\n $.ajax({\n type: that.read.type,\n url: that.read.url,\n data: data,\n success: function(data) {\n deferred.resolve(JSON.parse(data));\n },\n error: function(xhr) {\n that.viewer._triggerError({\n error: xhr.responseText,\n message: that.viewer.options.messages.errorMessages.parseError\n });\n }\n });\n } else {\n deferred.resolve(page);\n }\n\n return deferred;\n },\n downloadFile: function(fileName) {\n window.location = this.download.url + \"?file=\" + fileName;\n },\n\n fromJSON: function(json)\n {\n var viewer = this.viewer;\n viewer._clearPages();\n\n viewer.document = json;\n viewer.document.total = viewer.document.pages.length;\n\n viewer._renderPages();\n viewer.resize(true);\n\n viewer.activatePage(1);\n }\n });\n\n extend(kendo.pdfviewer, {\n dpl: {\n processor: DPLProcessor\n }\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var NS = \".kendoPDFViewer\",\n Widget = kendo.ui.Widget,\n CHANGE = \"change\",\n KEYDOWN = \"keydown\",\n CLICK = kendo.support.click,\n SHRINKWIDTH = 480,\n kendoAttr = kendo.attr,\n extend = $.extend,\n DOT = \".\",\n ARIA_DISABLED = \"aria-disabled\";\n\n var pagerStyles = {\n wrapperClass: \"k-pager-wrap k-button-group\",\n iconFirst: \"k-i-arrow-end-left\",\n iconLast: \"k-i-arrow-end-right\",\n iconPrev: \"k-i-arrow-60-left\",\n iconNext: \"k-i-arrow-60-right\",\n first: \"k-pager-first\",\n last: \"k-pager-last\",\n nav: \"k-pager-nav\",\n disabled: \"k-disabled\"\n };\n\n var Pager = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.linkTemplate = kendo.template(that.options.linkTemplate);\n\n that.element.addClass(pagerStyles.wrapperClass);\n\n that._renderLinks();\n that._toggleDisabledClass();\n that._attachEvents();\n },\n\n options: {\n linkTemplate: '',\n previousNext: true,\n input: true,\n page: 1,\n total: 1,\n messages: {}\n },\n\n events: [\n CHANGE\n ],\n\n _pagerLink: function(iconClass, text, pageIdx, wrapClass) {\n return this.linkTemplate({\n iconClass: iconClass,\n text: text,\n wrapClass: wrapClass || \"\",\n pageIdx: pageIdx\n });\n },\n\n _renderLinks: function()\n {\n var that = this,\n options = that.options;\n\n if (options.previousNext) {\n that.firstLink = $(that._pagerLink(pagerStyles.iconFirst, options.messages.first, 1, pagerStyles.first));\n that.prevLink = $(that._pagerLink(pagerStyles.iconPrev, options.messages.previous, options.page - 1));\n that.nextLink = $(that._pagerLink(pagerStyles.iconNext, options.messages.next, options.page + 1));\n that.lastLink = $(that._pagerLink(pagerStyles.iconLast, options.messages.last, options.total, pagerStyles.last));\n }\n\n that.element.append(that.firstLink);\n that.element.append(that.prevLink);\n\n if (options.input) {\n that._renderInput();\n }\n\n that.element.append(that.nextLink);\n that.element.append(that.lastLink);\n\n },\n\n _toggleDisabledClass: function() {\n var that = this,\n options = that.options,\n total = !options.total;\n\n if (that.nextLink && that.prevLink) {\n that.prevLink.toggleClass(pagerStyles.disabled, total || options.page === 1);\n that.nextLink.toggleClass(pagerStyles.disabled, total || options.page === options.total);\n that.lastLink.toggleClass(pagerStyles.disabled, total || options.page === options.total);\n that.firstLink.toggleClass(pagerStyles.disabled,total || options.page === 1);\n\n that.prevLink.attr(ARIA_DISABLED, total || options.page === 1);\n that.firstLink.attr(ARIA_DISABLED, total || options.page === 1);\n\n that.nextLink.attr(ARIA_DISABLED, options.page === options.total);\n that.lastLink.attr(ARIA_DISABLED, options.page === options.total);\n }\n\n if (that.input) {\n that.input.toggleClass(pagerStyles.disabled, options.total <= 1);\n that.input.attr(ARIA_DISABLED, options.total <= 1);\n }\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.element.on(CLICK + NS, DOT + pagerStyles.nav, that._click.bind(that));\n that.element.on(KEYDOWN + NS, DOT + pagerStyles.nav, function(e) {\n if (e.keyCode === kendo.keys.ENTER)\n {\n that._click(e);\n e.preventDefault();\n }\n });\n\n if (that.input) {\n that.input.on(KEYDOWN + NS, that._keydown.bind(that));\n }\n },\n\n _click: function(e) {\n var target = $(e.currentTarget);\n var page = parseInt(target.attr(kendoAttr(\"page\")), 10);\n\n if (e.isDefaultPrevented()) {\n return;\n }\n\n this._change(page);\n },\n\n _keydown: function(e) {\n var key = e.keyCode,\n keys = kendo.keys,\n input = $(e.target),\n page = parseInt(input.val(), 10),\n upDown = key === keys.UP || key === keys.DOWN,\n direction = upDown && key === keys.UP ? 1 : -1;\n\n if (upDown) {\n page += direction;\n }\n\n if (key === keys.ENTER || upDown) {\n if (isNaN(page) || page < 1 || page > this.options.total) {\n page = this.options.page;\n input.val(page);\n return;\n }\n this._change(page);\n e.preventDefault();\n }\n },\n\n _change: function(page) {\n var that = this;\n\n if (page >= 1 && page <= that.options.total) {\n that.options.page = page;\n if (that.input) {\n that.input.val(page);\n }\n that.prevLink.attr(kendoAttr(\"page\"), page - 1);\n that.nextLink.attr(kendoAttr(\"page\"), page + 1);\n that._toggleDisabledClass();\n }\n\n that.trigger(CHANGE, { page: page });\n },\n\n setOptions: function(options) {\n var that = this,\n prevTotal = that.options.total;\n\n options = $.extend(that.options, options);\n\n Widget.fn.setOptions.call(that, options);\n\n if (options.input) {\n if (prevTotal != options.total) {\n that._renderInput();\n that.input\n .on(KEYDOWN + NS, that._keydown.bind(that));\n }\n else {\n that.input.val(options.total > 0 ? options.page : 1);\n }\n }\n\n if (options.total > 1) {\n that.prevLink.attr(kendoAttr(\"page\"), options.page - 1);\n that.nextLink.attr(kendoAttr(\"page\"), options.page + 1);\n that.lastLink.attr(kendoAttr(\"page\"), options.total);\n }\n\n that._toggleDisabledClass();\n },\n\n _renderInput: function() {\n var that = this,\n totalMessage,\n options = that.options,\n shouldShrink = that.element.parent().width() <= SHRINKWIDTH,\n inputTemplate,\n pagerInputWrap = that.element.find(\".k-pager-input\");\n\n if (that.input) {\n that.input.off(NS);\n }\n\n totalMessage = options.total > 0 ? kendo.format(options.messages.of, options.total) : \"\";\n\n if (!shouldShrink) {\n totalMessage += options.total > 1 ? options.messages.pages : options.messages.page;\n }\n\n inputTemplate = '' + totalMessage;\n\n if (pagerInputWrap.length) {\n pagerInputWrap.html(inputTemplate);\n } else {\n that.element.append('' + inputTemplate + '');\n }\n\n that.input = that.element\n .find(\"input\")\n .val(options.total > 0 ? options.page : 1);\n },\n\n destroy: function() {\n this.element.off(NS);\n\n if (this.input) {\n this.input.off(NS);\n }\n Widget.fn.destroy.call(this);\n }\n });\n\n\n extend(kendo.pdfviewer, {\n Pager: Pager\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n ACTION = \"action\",\n KEYDOWN = \"keydown\",\n CHANGE = \"change\",\n COMMAND = \"command\",\n DOT = \".\",\n Item = kendo.toolbar.Item,\n TemplateItem = kendo.toolbar.TemplateItem,\n ToolBar = kendo.ui.ToolBar,\n PREDEFINED_ZOOM_VALUES = {\n auto: \"auto\",\n actual: \"actual\",\n fitToWidth: \"fitToWidth\",\n fitToPage: \"fitToPage\"\n },\n styles = {\n zoomOutIcon: \"k-i-zoom-out\",\n zoomInIcon: \"k-i-zoom-in\"\n };\n\n var ZOOM_COMBOBOX_TEMPLATE = kendo.template('');\n\n var DefaultTools = {\n pager: {\n type: \"pager\",\n overflow: \"never\",\n command: \"PageChangeCommand\"\n },\n spacer: { type: \"spacer\" },\n zoomInOut: {\n type: \"buttonGroup\",\n attributes: { \"class\": \"k-zoom-in-out-group\" },\n buttons: [\n { type: \"button\", icon: \"zoom-out\", name: \"zoomOut\", command: \"ZoomCommand\", showText: \"overflow\", options: \"zoomOut\" },\n { type: \"button\", icon: \"zoom-in\", name: \"zoomIn\", command: \"ZoomCommand\", showText: \"overflow\", options: \"zoomIn\" } ]\n },\n zoom: {\n type: \"zoom\",\n command: \"ZoomCommand\",\n combobox: { zoomLevels: [50, 100, 150, 200, 300, 400] },\n enable: false,\n overflow: \"never\"\n },\n toggleSelection: {\n type: \"buttonGroup\",\n attributes: { \"class\": \"k-toggle-selection-group\" },\n buttons: [\n {\n togglable: true,\n text: \"Enable Selection\",\n command: \"EnableSelectionCommand\",\n icon: \"cursor\",\n showText: \"overflow\",\n name: \"toggleSelection\",\n group: \"toggle-pan\"\n }, {\n togglable: true,\n text: \"Enable Panning\",\n command: \"EnablePanCommand\",\n icon: \"hand\",\n showText: \"overflow\",\n name: \"togglePan\",\n group: \"toggle-pan\",\n selected: true\n }\n ]\n },\n spacer2: { type: \"spacer\" },\n search: {\n type: \"button\",\n text: \"Search\",\n command: \"OpenSearchCommand\",\n icon: \"search\",\n name: \"search\",\n showText: \"overflow\",\n enable: false\n },\n open: {\n type: \"button\",\n text: \"Open\",\n showText: \"overflow\",\n name: \"open\",\n icon: \"folder-open\",\n command: \"OpenCommand\"\n },\n download: {\n type: \"button\",\n text: \"Download\",\n showText: \"overflow\",\n name: \"download\",\n icon: \"download\",\n command: \"DownloadCommand\",\n enable: false\n },\n print: {\n type: \"button\",\n text: \"Print\",\n showText: \"overflow\",\n name: \"print\",\n icon: \"print\",\n command: \"PrintCommand\",\n enable: false\n }\n };\n\n var AllTools = extend({}, DefaultTools, {\n exportAs: { type: \"button\", text: \"Export\", showText: \"overflow\", name: \"exportAs\", icon: \"image-export\", command: \"ExportCommand\" }\n });\n\n var ToolbarPager = Item.extend({\n init: function(options, toolbar) {\n var pagerElement = $(\"
\");\n\n this.options = extend(true, options, toolbar.options.pager);\n\n this.toolbar = toolbar;\n\n this.toolbar.pager = new kendo.pdfviewer.Pager(pagerElement, extend({}, options, {\n change: this._change.bind(this)\n }));\n\n this.element = pagerElement;\n this.element.on(KEYDOWN, this._keydown.bind(this));\n\n this.attributes();\n this.addUidAttr();\n this.addOverflowAttr();\n },\n _change: function(e) {\n if (this.options.change && this.options.change(e.page)) {\n return;\n }\n\n this.toolbar.action({\n command: \"PageChangeCommand\",\n options: {\n value: e.page\n }\n });\n },\n _keydown: function(e) {\n var that = this,\n target = $(e.target),\n keyCode = e.keyCode,\n children = that.element.find(\":kendoFocusable\"),\n targetIndex = children.index(target),\n keys = kendo.keys;\n\n if (keyCode === keys.RIGHT && children[targetIndex + 1]) {\n children[targetIndex + 1].focus();\n e.preventDefault();\n e.stopPropagation();\n } else if (keyCode === keys.LEFT && children[targetIndex - 1]) {\n children[targetIndex - 1].focus();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n\n kendo.toolbar.registerComponent(\"pager\", ToolbarPager);\n\n var ToolBarZoom = Item.extend({\n init: function(options, toolbar) {\n this.options = extend(true, options, {\n messages: toolbar.options.messages.zoom\n });\n\n TemplateItem.fn.init.call(this, \"\", options, toolbar);\n\n this.toolbar.zoom = this;\n\n if (toolbar.options.scale) {\n this._initValue = toolbar.options.scale * 100 + \"%\";\n }\n\n if (this.options.combobox) {\n this._buildComboBox();\n }\n\n this.enable(options.enable);\n },\n\n _buildComboBox: function() {\n var that = this,\n combobox,\n messages = that.options.messages,\n comboOptions = that.options.combobox,\n zoomLevels = [{\n percent: PREDEFINED_ZOOM_VALUES.auto,\n text: messages.autoWidth\n }, {\n percent: PREDEFINED_ZOOM_VALUES.actual,\n text: messages.actualWidth\n }, {\n percent: PREDEFINED_ZOOM_VALUES.fitToWidth,\n text: messages.fitToWidth\n }, {\n percent: PREDEFINED_ZOOM_VALUES.fitToPage,\n text: messages.fitToPage\n }];\n\n zoomLevels = zoomLevels.concat(comboOptions.zoomLevels);\n\n combobox = $(ZOOM_COMBOBOX_TEMPLATE({\n zoomLevels: zoomLevels,\n zoomLevel: messages.zoomLevel\n }));\n\n if (!kendo.support.mobileOS) {\n combobox = combobox.kendoComboBox(extend({\n autoWidth: true,\n clearButton: false,\n value: that._initValue\n }, comboOptions)).getKendoComboBox();\n\n that.element.append(combobox.wrapper);\n that.combobox = combobox;\n that._currentValue = combobox.value();\n } else {\n that.element.append(combobox);\n }\n\n combobox.bind(CHANGE, kendo.throttle(that.change.bind(that), 300));\n },\n\n change: function(e) {\n var value = e.sender ? e.sender.value() : e.target.value,\n parsedValue;\n\n if (value.toString().match(/^[0-9]+%?$/)) {\n parsedValue = parseInt(value.replace('%', ''), 10) / 100;\n } else if (!PREDEFINED_ZOOM_VALUES[value]) {\n if (this.combobox) {\n this.combobox.value(this._currentValue);\n }\n e.preventDefault();\n return;\n }\n\n this._currentValue = value;\n this.toolbar.action({\n command: \"ZoomCommand\",\n options: {\n scale: parsedValue || value\n }\n });\n },\n\n enable: function(value) {\n var element = this.element;\n\n element.find(\".k-button, select\").toggleClass(\"k-disabled\", !value);\n\n if (this.combobox) {\n this.combobox.enable(value);\n }\n },\n\n destroy: function() {\n if (this.combobox) {\n this.combobox.destroy();\n }\n }\n });\n\n kendo.toolbar.registerComponent(\"zoom\", ToolBarZoom);\n\n var ViewerToolBar = ToolBar.extend({\n init: function(element, options) {\n var that = this;\n var items = options.items && options.items.length ? options.items : Object.keys(DefaultTools);\n\n that.options = options;\n\n options.items = that._updateItems(items);\n\n ToolBar.fn.init.call(that, element, options);\n\n that.bind({\n click: that._click,\n toggle: that._click\n });\n\n options.viewer.bind({\n update: that._update.bind(that)\n });\n },\n events: [\n ACTION\n ],\n _updateItems: function(items) {\n var that = this;\n var messages = this.options.messages;\n\n return items.map(function(tool) {\n var isBuiltInTool = $.isPlainObject(tool) && Object.keys(tool).length === 1 && tool.name;\n tool = isBuiltInTool ? tool.name : tool;\n var toolOptions = $.isPlainObject(tool) ? tool : AllTools[tool];\n var options;\n var toolName = toolOptions.name;\n\n if (tool.name === \"zoomIn\" || tool.name === \"zoomOut\") {\n tool.text = that.options.messages.zoom[tool.name];\n } else if (tool === 'zoom' || tool.name === \"zoom\" || tool.type === \"zoom\") {\n if ($.isPlainObject(tool)) {\n tool.overflow = \"never\";\n } else {\n tool = {\n overflow: \"never\"\n };\n }\n }\n\n if (toolOptions.type === \"buttonGroup\") {\n toolOptions.buttons = that._updateItems(toolOptions.buttons);\n } else if (toolOptions.type !== \"pager\") {\n options = {\n name: toolName,\n attributes: {\n \"aria-label\": messages[toolName],\n \"title\": messages[toolName],\n \"data-command\": toolOptions.command\n },\n overflow: toolOptions.overflow,\n fillMode: \"flat\"\n };\n } else {\n options = {\n overflow: \"never\"\n };\n }\n\n if (toolOptions.text) {\n options.text = messages[toolOptions.name] || toolOptions.text;\n }\n\n kendo.deepExtend(toolOptions, options);\n\n return toolOptions;\n });\n },\n _click: function(e) {\n var button = $(e.target).closest(\".k-button\"),\n command = button.data(COMMAND),\n zoomIn = button.find(DOT + styles.zoomInIcon).length > 0,\n zoomOut = button.find(DOT + styles.zoomOutIcon).length > 0,\n options;\n\n if (!command) {\n return;\n }\n\n options = $.extend({}, e.options, {\n zoomIn: zoomIn,\n zoomOut: zoomOut,\n updateComboBox: zoomIn || zoomOut\n });\n\n this.action({\n command: command,\n options: options\n });\n },\n _update: function(e) {\n var pageOptions = {\n page: e.page || 1,\n total: e.total || 1\n },\n focusable = this.element.find(\":kendoFocusable\").not(\"[tabindex=-1]\");\n\n if (this.zoom) {\n this.zoom.enable(!e.isBlank);\n if (e.action === \"zoom\") {\n this._updateZoomComboBox(e.zoom);\n }\n }\n\n if ((e.action === \"pagechange\" || e.isBlank) && this.pager) {\n this.pager.setOptions(pageOptions);\n }\n\n this.enable(this.wrapper.find(\".k-toggle-selection-group\"), !e.isBlank);\n this.enable(this.wrapper.find(\".k-zoom-in-out-group\"), !e.isBlank);\n\n this.enable(this.wrapper.find(\"[data-command='OpenSearchCommand']\"), !e.isBlank);\n this.enable(this.wrapper.find(\"[data-command='DownloadCommand']\"), !e.isBlank);\n this.enable(this.wrapper.find(\"[data-command='PrintCommand']\"), !e.isBlank);\n\n this.element.find(\":kendoFocusable\").not(\"[tabindex=-1]\").attr(\"tabindex\", -1);\n focusable.attr(\"tabindex\", 0);\n },\n _updateZoomComboBox: function(value) {\n var isPredefined = value === PREDEFINED_ZOOM_VALUES.auto ||\n value === PREDEFINED_ZOOM_VALUES.actual ||\n value === PREDEFINED_ZOOM_VALUES.fitToPage ||\n value === PREDEFINED_ZOOM_VALUES.fitToWidth;\n\n if (!isPredefined) {\n value = Math.round(value * 100) + '%';\n }\n\n if (this.zoom && this.zoom.combobox) {\n this.zoom._currentValue = value;\n this.zoom.combobox.value(value);\n }\n },\n action: function(args) {\n this.trigger(ACTION, args);\n },\n destroy: function() {\n if (this.pager) {\n this.pager.destroy();\n }\n\n if (this.zoom) {\n this.zoom.destroy();\n }\n ToolBar.fn.destroy.call(this);\n }\n });\n\n\n extend(kendo.pdfviewer, {\n Toolbar: ViewerToolBar,\n DefaultTools: DefaultTools\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var extend = $.extend,\n noop = $.noop,\n drawing = kendo.drawing,\n Group = drawing.Group,\n Surface = drawing.Surface,\n RENDER = \"render\",\n Class = kendo.Class,\n\n DEFAULT_DPR = 2;\n\n var geometryTypes = {\n Path: \"path\",\n MultiPath: \"multipath\",\n Rect: \"rect\",\n Image: \"image\",\n Text: \"text\"\n };\n\n var Page = Class.extend({\n init: function(options, viewer) {\n this.viewer = viewer;\n this.processor = options.processor;\n this.options = options;\n this.pageNumber = options.number;\n\n this.element = $(\"\");\n this.element.attr(kendo.attr(\"number\"), this.pageNumber);\n\n this._updatePageSize(options);\n this.width = options.width;\n this.height = options.height;\n },\n resize: function(ratio) {\n var pageElement = this.element;\n\n this._updatePageSize({\n width: Math.min(pageElement.width() * ratio, this.width),\n height: Math.min(pageElement.height() * ratio, this.height)\n });\n },\n _updatePageSize: function(size) {\n this.element\n .width(size.width)\n .height(size.height);\n },\n destroy: function() {\n kendo.destroy(this.element);\n },\n render: noop\n });\n\n var DPLPage = Page.extend({\n draw: function() {\n var that = this,\n geometries = that.options.geometries;\n\n that.group = new Group();\n that.surface.draw(that.group);\n\n that._drawGeometries(geometries);\n\n that.viewer.trigger(RENDER, { page: this });\n kendo.ui.progress(that.element, false);\n },\n load: function() {\n var that = this;\n\n if (that.loaded || !that.processor)\n {\n return;\n }\n\n that.processor.fetchPageData(that.pageNumber).then(function(data) {\n that.options = data;\n that._initSurface();\n that.draw();\n });\n\n that.loaded = true;\n },\n _initSurface: function() {\n var size = {\n width: this.element.width(),\n height: this.element.height()\n };\n var surfaceOptions = extend({ width: this.width, height: this.height }, this.viewer.options.view);\n this.surface = new Surface(this.element, surfaceOptions);\n this._updatePageSize(size);\n },\n _drawGeometries: function(geometries) {\n var that = this,\n kGeometry;\n\n if (!geometries) {\n return;\n }\n\n for (var i = 0; i <= geometries.length; i++) {\n var geometry = geometries[i];\n\n if (!geometry) {\n continue;\n }\n\n switch (geometry.type) {\n case geometryTypes.Path:\n case geometryTypes.MultiPath:\n kGeometry = that._drawPath(geometry);\n break;\n case geometryTypes.Rect:\n kGeometry = that._drawRect(geometry);\n break;\n case geometryTypes.Image:\n kGeometry = that._drawImage(geometry);\n break;\n case geometryTypes.Text:\n kGeometry = that._drawText(geometry);\n break;\n default:\n kGeometry = null;\n break;\n }\n\n if (kGeometry)\n {\n that.group.append(kGeometry);\n }\n }\n },\n _drawRect: function(geometry)\n {\n var rectGeo = new kendo.geometry.Rect(geometry.point, geometry.size);\n\n return new drawing.Rect(rectGeo, {\n transform: this._getMatrix(geometry.transform),\n fill: geometry.fillOptions,\n stroke: geometry.strokeOptions\n });\n },\n\n _drawImage: function(geometry)\n {\n var imageRect = new kendo.geometry.Rect(geometry.point, geometry.size);\n return new drawing.Image(geometry.src, imageRect, {\n transform: this._getMatrix(geometry.transform)\n });\n },\n\n _drawText: function(geometry)\n {\n var options = {\n transform: this._getMatrix(geometry.transform),\n stroke: geometry.strokeOptions,\n fill: geometry.fillOptions,\n font: geometry.font\n };\n return new kendo.drawing.Text(geometry.content, geometry.point, options);\n },\n\n _drawPath: function(geometry)\n {\n var options = {\n transform: this._getMatrix(geometry.transform),\n stroke: geometry.strokeOptions,\n fill: geometry.fillOptions\n };\n var path = new drawing.MultiPath(options);\n\n for (var i = 0; i < geometry.paths.length; i++) {\n var subPath = geometry.paths[i];\n\n if (!subPath.segments)\n {\n return;\n }\n\n path.moveTo.apply(path, subPath.point);\n\n for (var j = 0; j < subPath.segments.length; j++) {\n var segment = subPath.segments[j];\n var drawAction = segment.points.length === 1 ? path.lineTo : path.curveTo;\n drawAction.apply(path, segment.points);\n }\n\n if (subPath.closed) {\n path.close();\n }\n }\n\n return path;\n },\n\n _getMatrix: function(transform) {\n var matrix = Object.create(kendo.geometry.Matrix.prototype);\n kendo.geometry.Matrix.apply(matrix, transform);\n return matrix;\n }\n });\n\n var PDFJSPage = Page.extend({\n init: function(options, viewer) {\n var that = this,\n canvas;\n\n canvas = $(\"\");\n that.canvas = canvas.get(0);\n\n Page.fn.init.call(that, options, viewer);\n that.canvas.width = that.width;\n that.canvas.height = that.height;\n\n that.element.append(canvas);\n },\n load: function(defaultScale, force) {\n var that = this,\n promise = $.Deferred();\n\n if (that._scale === defaultScale && !force)\n {\n return;\n } else if (that._scale && that._scale !== defaultScale && !force)\n {\n that._scale = defaultScale;\n that.render(defaultScale);\n return promise.resolve(that);\n }\n\n if (that.processor) {\n that.processor.fetchPageData(that.pageNumber).then(function(page) {\n that._page = page;\n that._renderPromise = that.render(defaultScale).then(function() {\n that.viewer.trigger(RENDER, { page: that });\n });\n promise.resolve(that);\n });\n }\n\n that._scale = defaultScale;\n that.loaded = true;\n return promise;\n },\n render: function(scale) {\n var that = this;\n var dpr = window.devicePixelRatio >= DEFAULT_DPR ? window.devicePixelRatio : DEFAULT_DPR;\n var context = this.canvas.getContext('2d'),\n viewport = this._page.getViewport({\n scale: scale\n });\n\n this.canvas.width = viewport.width * dpr;\n this.canvas.height = viewport.height * dpr;\n context.scale(dpr, dpr);\n\n this._scale = scale;\n this._dpr = dpr;\n\n if (this._renderTask)\n {\n this._renderTask.cancel();\n this._renderTask = null;\n }\n\n this._updatePageSize({\n width: viewport.width,\n height: viewport.height\n });\n\n this._renderTask = this._page.render({\n canvasContext: context,\n viewport: viewport\n });\n\n this._renderTextLayer(viewport);\n\n return this._renderTask.promise.then(function() {\n that._renderTask = null;\n\n }).catch(function() {});\n },\n _renderTextLayer: function(viewport) {\n var that = this;\n var page = that._page;\n\n if (that.textLayer) {\n that.textLayer.remove();\n }\n\n that.textLayer = $(\"\").get(0);\n that.element.append(that.textLayer);\n\n page.getTextContent({\n normalizeWhitespace: true\n }).then(function(textContent) {\n $(that.textLayer).css({\n height: viewport.height,\n width: viewport.width\n }).html(\"\"); // Clear content to make sure that refreshing the page will not cause duplication of the text content.\n\n var params = {\n textContent: textContent,\n container: that.textLayer,\n viewport: viewport,\n textDivs: [],\n enhanceTextSelection: true\n };\n\n that.processor.renderTextLayer(params);\n });\n }\n });\n\n extend(kendo.pdfviewer.dpl, {\n geometryTypes: geometryTypes,\n Page: DPLPage\n });\n extend(kendo.pdfviewer.pdfjs, {\n Page: PDFJSPage\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var Class = kendo.Class,\n extend = $.extend,\n isArray = Array.isArray;\n\n var SearchDOM = Class.extend({\n init: function(options) {\n var that = this;\n\n that.options = extend({}, that.options, options);\n\n that.processDom();\n },\n\n options: {\n highlightClass: \"k-search-highlight\",\n charClass: \"k-text-char\"\n },\n\n processDom: function() {\n var that = this;\n\n that.targets = isArray(that.options.target) ? that.options.target : [that.options.target];\n that.textNodes = [];\n that.charIndex = 0;\n that.text = \"\";\n\n that.targets.forEach(function(target) {\n that.traverseToTextNode(target);\n });\n\n for (var i = 0; i < that.textNodes.length; i++) {\n that.processTextNode(that.textNodes[i]);\n }\n },\n\n traverseToTextNode: function(node) {\n var that = this;\n\n if (node.nodeType === 3) {\n that.textNodes.push(node);\n } else {\n for (var i = 0; i < node.childNodes.length; i++) {\n that.traverseToTextNode(node.childNodes[i]);\n }\n }\n },\n\n processTextNode: function(node) {\n var that = this;\n var text = node.textContent;\n var span;\n\n that.text = that.text + text;\n\n if (text.length > 0) {\n span = $(node).wrap(\"\").parent();\n span.empty();\n that.splitChars(span.get(0), text);\n span.children().unwrap();\n }\n },\n\n splitChars: function(span, text) {\n var that = this;\n var newHtml = \"\";\n\n for (var i = 0; i < text.length; i++) {\n newHtml = newHtml + \"