{"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","noop","drawing","Group","Surface","RENDER","geometryTypes","Page","DPLPage","PDFJSPage","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","Path","MultiPath","Rect","Image","Text","pageNumber","element","attr","_updatePageSize","ratio","pageElement","Math","min","size","render","draw","group","surface","_drawGeometries","trigger","load","loaded","_initSurface","surfaceOptions","view","kGeometry","geometry","_drawPath","_drawRect","_drawImage","_drawText","append","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","Object","create","Matrix","prototype","canvas","get","fn","call","defaultScale","force","_scale","_page","_renderPromise","dpr","devicePixelRatio","context","getContext","_dpr","_renderTask","cancel","canvasContext","_renderTextLayer","textLayer","remove","getTextContent","normalizeWhitespace","textContent","css","html","container","textDivs","enhanceTextSelection","isArray","Array","SearchDOM","processDom","highlightClass","charClass","targets","target","textNodes","charIndex","text","forEach","traverseToTextNode","processTextNode","node","nodeType","childNodes","span","wrap","parent","empty","splitChars","children","unwrap","newHtml","innerHTML","search","value","matchCase","match","expression","RegExp","matches","resetMark","resetHighlight","resetMatchIndex","exec","startOffset","index","endOffset","highlightAll","mark","start","end","highlight","matchIndex","find","addClass","removeClass","removeAttr","currentIndex","wrapInner","contents","nextMatch","previousMatch","getMarkedIndex","getFirstMarked","eq","each","item","encode","htmlEncode","EXTENSIONS","keys","ErrorDialog","actions","dialogs","okText","_dialog","kendoDialog","getKendoDialog","open","center","ExportAsDialog","fileFormats","description","exportAsDialog","png","extension","svg","title","_initializeDialog","autoFocus","resizable","modal","preventScroll","maxWidth","template","ref","labels","saveAsType","save","_updateModel","pagesCount","viewModel","set","dialogMessages","dialog","kendoWindow","getKendoWindow","observable","defaultFileName","bind","SearchDialog","dragHandle","icon","iconClass","inputLabel","of","previous","next","dialogElm","dialogOffset","top","position","left","Window","minHeight","draggable","activate","ev","sender","searchModel","boundValue","searchText","matchCaseClick","prev","onKeyup","key","keyCode","navigationFn","shiftKey","ENTER","preventDefault","onInput","parseJSON","Command","OpenCommand","_upload","_initUpload","click","uploadOptions","select","_onSelect","_onSuccess","_onError","complete","_onComplete","showFileList","multiple","validation","allowedExtensions","async","saveUrl","autoUpload","saveField","kendoUpload","getKendoUpload","response","isPlainObject","XMLHttpRequest","notSupported","fileToUpload","files","toLowerCase","fromFile","onerror","readAsArrayBuffer","rawFile","PageChangeCommand","current","targetPage","isNaN","_pageNum","Number","DownloadCommand","info","ExportCommand","_saveDialog","_initDialog","exportImage","exportSVG","EnableSelectionCommand","_toggleSelection","EnablePanCommand","OpenSearchCommand","searchDialog","offset","_open","_next","_prev","_close","changeHandler","_change","zoomStartHandler","_closeDialog","openFileHandler","_searchDOM","_initSearchDOM","searchEngine","unbind","_updateSearchModel","toolbar","field","model","_scrollToMark","marked","scroller","_scroller","scrollElement","scrollTo","scrollLeft","ZoomCommand","loadedPagesHeight","containerHeight","clientHeight","updatedVisiblePagesCount","renderTasks","processingLib","_calculateZoom","updateViewer","scrollingStarted","_scrollingStarted","scrollTop","scrollHeight","_resize","zoomScale","pageHeight","_visiblePages","_visiblePagesCount","_loadVisiblePages","_triggerZoomEnd","preventZoom","viewerOptions","visibleCanvas","calculatedDpr","scaleValue","_allowResize","_autoFit","zoomIn","zoomRate","zoomOut","_autoZoomScale","toString","parseInt","replace","zoomMin","zoomMax","updateComboBox","_updateZoomComboBox","PrintCommand","_renderPrintContainer","_loadAllPages","processAfterRender","printContainer","loadPromises","renderPromises","getRenderPromise","_originalScale","zoom","_renderPrintPages","setTimeout","_printDocument","_renderPrintImage","div","img","toDataURL","myWindow","browser","support","write","focus","print","chrome","chromiumEdge","on","popupBlocked","NS","PLUS","MINUS","ZERO","NUMPAD_ZERO","Widget","ERROR","UPDATE","ZOOM_SCALE","PAGE_CHANGE","ZOOMCOMMAND","PROCESSORS","styles","PREDEFINED_ZOOM_VALUES","PDFViewer","deepExtend","_processMessages","_wrapper","_renderToolbar","_initProcessor","_renderPageContainer","_loadDocument","notify","events","pdfjsProcessing","dplProcessing","loadOnDemand","items","defaultPageSize","zoomLevel","actualWidth","autoWidth","fitToWidth","fitToPage","exportAs","pager","first","last","toggleSelection","togglePan","defaultTools","command","spacer","zoomInOut","attributes","class","buttons","showText","fillMode","overflow","component","componentOptions","enable","dataTextField","dataValueField","valuePrimitive","clearOnEscape","commandOn","togglable","selected","spacer2","exportAsTool","pagerTools","rounded","wrapper","_keydown","_resizeHandler","onResize","plusShortcuts","NUMPAD_PLUS","minusShortcuts","NUMPAD_MINUS","zeroShortcuts","shouldExecute","args","ctrlKey","_blankPage","execute","processingOptions","toolbarOptions","tools","_processTools","parentMessages","toolbarElement","appendTo","ToolBar","_toolbarClick","update","_updateToolbar","flatMap","t","zoomLevels","percent","comboOptions","concat","dataSource","p","b","pageOptions","toolbarEl","zoomCombo","toFocus","_getAllItems","isBlank","action","_updatePager","_updateOnBlank","_resetTabIndex","textBox","totalPagesSpan","_togglePagerDisabledClass","prevFirst","closest","nextLast","isPredefined","round","val","_initErrorDialog","_errorDialog","dialogInstance","pagesData","viewerPage","pageData","_attachContainerEvents","_getVisiblePagesCount","clearTimeout","_resizePages","containerWidth","clientWidth","currentRatio","max","_wheel","throttle","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","setOptions","unbindResize","off","reset","userEvents","_shouldNotMove","toggleClass","_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.toolbar', 'kendo.combobox', 'kendo.textbox', 'kendo.core', 'kendo.drawing', 'kendo.dialog', 'kendo.window', 'kendo.binder', 'kendo.numerictextbox', 'kendo.dropdownlist', 'kendo.icons', '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 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 + \"