From d4ca264724e3c3cb6fec0a1287d49c5dc0329832 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Fri, 24 May 2024 10:47:40 +0200 Subject: [PATCH] easyprint stripping --- assets/js/easyprint.js | 1 - assets/js/easyprint.js.map | 1 - 2 files changed, 2 deletions(-) delete mode 100644 assets/js/easyprint.js.map diff --git a/assets/js/easyprint.js b/assets/js/easyprint.js index 274f5f1ea..f9b6cf0f5 100644 --- a/assets/js/easyprint.js +++ b/assets/js/easyprint.js @@ -1376,4 +1376,3 @@ L.easyPrint = function (options) { }; }))); -//# sourceMappingURL=bundle.js.map diff --git a/assets/js/easyprint.js.map b/assets/js/easyprint.js.map deleted file mode 100644 index f78a53de6..000000000 --- a/assets/js/easyprint.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle.js","sources":["../node_modules/dom-to-image/src/dom-to-image.js","../node_modules/file-saver/FileSaver.js","../src/index.js"],"sourcesContent":["(function (global) {\n 'use strict';\n\n var util = newUtil();\n var inliner = newInliner();\n var fontFaces = newFontFaces();\n var images = newImages();\n\n // Default impl options\n var defaultOptions = {\n // Default is to fail on error, no placeholder\n imagePlaceholder: undefined,\n // Default cache bust is false, it will use the cache\n cacheBust: false\n };\n\n var domtoimage = {\n toSvg: toSvg,\n toPng: toPng,\n toJpeg: toJpeg,\n toBlob: toBlob,\n toPixelData: toPixelData,\n impl: {\n fontFaces: fontFaces,\n images: images,\n util: util,\n inliner: inliner,\n options: {}\n }\n };\n\n if (typeof module !== 'undefined')\n module.exports = domtoimage;\n else\n global.domtoimage = domtoimage;\n\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options\n * @param {Function} options.filter - Should return true if passed node should be included in the output\n * (excluding node means excluding it's children as well). Not called on the root node.\n * @param {String} options.bgcolor - color for the background, any valid CSS color value.\n * @param {Number} options.width - width to be applied to node before rendering.\n * @param {Number} options.height - height to be applied to node before rendering.\n * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.\n * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),\n defaults to 1.0.\n * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch\n * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url\n * @return {Promise} - A promise that is fulfilled with a SVG image data URL\n * */\n function toSvg(node, options) {\n options = options || {};\n copyOptions(options);\n return Promise.resolve(node)\n .then(function (node) {\n return cloneNode(node, options.filter, true);\n })\n .then(embedFonts)\n .then(inlineImages)\n .then(applyOptions)\n .then(function (clone) {\n return makeSvgDataUri(clone,\n options.width || util.width(node),\n options.height || util.height(node)\n );\n });\n\n function applyOptions(clone) {\n if (options.bgcolor) clone.style.backgroundColor = options.bgcolor;\n\n if (options.width) clone.style.width = options.width + 'px';\n if (options.height) clone.style.height = options.height + 'px';\n\n if (options.style)\n Object.keys(options.style).forEach(function (property) {\n clone.style[property] = options.style[property];\n });\n\n return clone;\n }\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.\n * */\n function toPixelData(node, options) {\n return draw(node, options || {})\n .then(function (canvas) {\n return canvas.getContext('2d').getImageData(\n 0,\n 0,\n util.width(node),\n util.height(node)\n ).data;\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image data URL\n * */\n function toPng(node, options) {\n return draw(node, options || {})\n .then(function (canvas) {\n return canvas.toDataURL();\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a JPEG image data URL\n * */\n function toJpeg(node, options) {\n options = options || {};\n return draw(node, options)\n .then(function (canvas) {\n return canvas.toDataURL('image/jpeg', options.quality || 1.0);\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image blob\n * */\n function toBlob(node, options) {\n return draw(node, options || {})\n .then(util.canvasToBlob);\n }\n\n function copyOptions(options) {\n // Copy options to impl options for use in impl\n if(typeof(options.imagePlaceholder) === 'undefined') {\n domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;\n } else {\n domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;\n }\n\n if(typeof(options.cacheBust) === 'undefined') {\n domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;\n } else {\n domtoimage.impl.options.cacheBust = options.cacheBust;\n }\n }\n\n function draw(domNode, options) {\n return toSvg(domNode, options)\n .then(util.makeImage)\n .then(util.delay(100))\n .then(function (image) {\n var canvas = newCanvas(domNode);\n canvas.getContext('2d').drawImage(image, 0, 0);\n return canvas;\n });\n\n function newCanvas(domNode) {\n var canvas = document.createElement('canvas');\n canvas.width = options.width || util.width(domNode);\n canvas.height = options.height || util.height(domNode);\n\n if (options.bgcolor) {\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = options.bgcolor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n return canvas;\n }\n }\n\n function cloneNode(node, filter, root) {\n if (!root && filter && !filter(node)) return Promise.resolve();\n\n return Promise.resolve(node)\n .then(makeNodeCopy)\n .then(function (clone) {\n return cloneChildren(node, clone, filter);\n })\n .then(function (clone) {\n return processClone(node, clone);\n });\n\n function makeNodeCopy(node) {\n if (node instanceof HTMLCanvasElement) return util.makeImage(node.toDataURL());\n return node.cloneNode(false);\n }\n\n function cloneChildren(original, clone, filter) {\n var children = original.childNodes;\n if (children.length === 0) return Promise.resolve(clone);\n\n return cloneChildrenInOrder(clone, util.asArray(children), filter)\n .then(function () {\n return clone;\n });\n\n function cloneChildrenInOrder(parent, children, filter) {\n var done = Promise.resolve();\n children.forEach(function (child) {\n done = done\n .then(function () {\n return cloneNode(child, filter);\n })\n .then(function (childClone) {\n if (childClone) parent.appendChild(childClone);\n });\n });\n return done;\n }\n }\n\n function processClone(original, clone) {\n if (!(clone instanceof Element)) return clone;\n\n return Promise.resolve()\n .then(cloneStyle)\n .then(clonePseudoElements)\n .then(copyUserInput)\n .then(fixSvg)\n .then(function () {\n return clone;\n });\n\n function cloneStyle() {\n copyStyle(window.getComputedStyle(original), clone.style);\n\n function copyStyle(source, target) {\n if (source.cssText) target.cssText = source.cssText;\n else copyProperties(source, target);\n\n function copyProperties(source, target) {\n util.asArray(source).forEach(function (name) {\n target.setProperty(\n name,\n source.getPropertyValue(name),\n source.getPropertyPriority(name)\n );\n });\n }\n }\n }\n\n function clonePseudoElements() {\n [':before', ':after'].forEach(function (element) {\n clonePseudoElement(element);\n });\n\n function clonePseudoElement(element) {\n var style = window.getComputedStyle(original, element);\n var content = style.getPropertyValue('content');\n\n if (content === '' || content === 'none') return;\n\n var className = util.uid();\n clone.className = clone.className + ' ' + className;\n var styleElement = document.createElement('style');\n styleElement.appendChild(formatPseudoElementStyle(className, element, style));\n clone.appendChild(styleElement);\n\n function formatPseudoElementStyle(className, element, style) {\n var selector = '.' + className + ':' + element;\n var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style);\n return document.createTextNode(selector + '{' + cssText + '}');\n\n function formatCssText(style) {\n var content = style.getPropertyValue('content');\n return style.cssText + ' content: ' + content + ';';\n }\n\n function formatCssProperties(style) {\n\n return util.asArray(style)\n .map(formatProperty)\n .join('; ') + ';';\n\n function formatProperty(name) {\n return name + ': ' +\n style.getPropertyValue(name) +\n (style.getPropertyPriority(name) ? ' !important' : '');\n }\n }\n }\n }\n }\n\n function copyUserInput() {\n if (original instanceof HTMLTextAreaElement) clone.innerHTML = original.value;\n if (original instanceof HTMLInputElement) clone.setAttribute(\"value\", original.value);\n }\n\n function fixSvg() {\n if (!(clone instanceof SVGElement)) return;\n clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (!(clone instanceof SVGRectElement)) return;\n ['width', 'height'].forEach(function (attribute) {\n var value = clone.getAttribute(attribute);\n if (!value) return;\n\n clone.style.setProperty(attribute, value);\n });\n }\n }\n }\n\n function embedFonts(node) {\n return fontFaces.resolveAll()\n .then(function (cssText) {\n var styleNode = document.createElement('style');\n node.appendChild(styleNode);\n styleNode.appendChild(document.createTextNode(cssText));\n return node;\n });\n }\n\n function inlineImages(node) {\n return images.inlineAll(node)\n .then(function () {\n return node;\n });\n }\n\n function makeSvgDataUri(node, width, height) {\n return Promise.resolve(node)\n .then(function (node) {\n node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n return new XMLSerializer().serializeToString(node);\n })\n .then(util.escapeXhtml)\n .then(function (xhtml) {\n return '' + xhtml + '';\n })\n .then(function (foreignObject) {\n return '' +\n foreignObject + '';\n })\n .then(function (svg) {\n return 'data:image/svg+xml;charset=utf-8,' + svg;\n });\n }\n\n function newUtil() {\n return {\n escape: escape,\n parseExtension: parseExtension,\n mimeType: mimeType,\n dataAsUrl: dataAsUrl,\n isDataUrl: isDataUrl,\n canvasToBlob: canvasToBlob,\n resolveUrl: resolveUrl,\n getAndEncode: getAndEncode,\n uid: uid(),\n delay: delay,\n asArray: asArray,\n escapeXhtml: escapeXhtml,\n makeImage: makeImage,\n width: width,\n height: height\n };\n\n function mimes() {\n /*\n * Only WOFF and EOT mime types for fonts are 'real'\n * see http://www.iana.org/assignments/media-types/media-types.xhtml\n */\n var WOFF = 'application/font-woff';\n var JPEG = 'image/jpeg';\n\n return {\n 'woff': WOFF,\n 'woff2': WOFF,\n 'ttf': 'application/font-truetype',\n 'eot': 'application/vnd.ms-fontobject',\n 'png': 'image/png',\n 'jpg': JPEG,\n 'jpeg': JPEG,\n 'gif': 'image/gif',\n 'tiff': 'image/tiff',\n 'svg': 'image/svg+xml'\n };\n }\n\n function parseExtension(url) {\n var match = /\\.([^\\.\\/]*?)$/g.exec(url);\n if (match) return match[1];\n else return '';\n }\n\n function mimeType(url) {\n var extension = parseExtension(url).toLowerCase();\n return mimes()[extension] || '';\n }\n\n function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n }\n\n function toBlob(canvas) {\n return new Promise(function (resolve) {\n var binaryString = window.atob(canvas.toDataURL().split(',')[1]);\n var length = binaryString.length;\n var binaryArray = new Uint8Array(length);\n\n for (var i = 0; i < length; i++)\n binaryArray[i] = binaryString.charCodeAt(i);\n\n resolve(new Blob([binaryArray], {\n type: 'image/png'\n }));\n });\n }\n\n function canvasToBlob(canvas) {\n if (canvas.toBlob)\n return new Promise(function (resolve) {\n canvas.toBlob(resolve);\n });\n\n return toBlob(canvas);\n }\n\n function resolveUrl(url, baseUrl) {\n var doc = document.implementation.createHTMLDocument();\n var base = doc.createElement('base');\n doc.head.appendChild(base);\n var a = doc.createElement('a');\n doc.body.appendChild(a);\n base.href = baseUrl;\n a.href = url;\n return a.href;\n }\n\n function uid() {\n var index = 0;\n\n return function () {\n return 'u' + fourRandomChars() + index++;\n\n function fourRandomChars() {\n /* see http://stackoverflow.com/a/6248722/2519373 */\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n }\n };\n }\n\n function makeImage(uri) {\n return new Promise(function (resolve, reject) {\n var image = new Image();\n image.onload = function () {\n resolve(image);\n };\n image.onerror = reject;\n image.src = uri;\n });\n }\n\n function getAndEncode(url) {\n var TIMEOUT = 30000;\n if(domtoimage.impl.options.cacheBust) {\n // Cache bypass so we dont have CORS issues with cached images\n // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n url += ((/\\?/).test(url) ? \"&\" : \"?\") + (new Date()).getTime();\n }\n\n return new Promise(function (resolve) {\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = done;\n request.ontimeout = timeout;\n request.responseType = 'blob';\n request.timeout = TIMEOUT;\n request.open('GET', url, true);\n request.send();\n\n var placeholder;\n if(domtoimage.impl.options.imagePlaceholder) {\n var split = domtoimage.impl.options.imagePlaceholder.split(/,/);\n if(split && split[1]) {\n placeholder = split[1];\n }\n }\n\n function done() {\n if (request.readyState !== 4) return;\n\n if (request.status !== 200) {\n if(placeholder) {\n resolve(placeholder);\n } else {\n fail('cannot fetch resource: ' + url + ', status: ' + request.status);\n }\n\n return;\n }\n\n var encoder = new FileReader();\n encoder.onloadend = function () {\n var content = encoder.result.split(/,/)[1];\n resolve(content);\n };\n encoder.readAsDataURL(request.response);\n }\n\n function timeout() {\n if(placeholder) {\n resolve(placeholder);\n } else {\n fail('timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url);\n }\n }\n\n function fail(message) {\n console.error(message);\n resolve('');\n }\n });\n }\n\n function dataAsUrl(content, type) {\n return 'data:' + type + ';base64,' + content;\n }\n\n function escape(string) {\n return string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function delay(ms) {\n return function (arg) {\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve(arg);\n }, ms);\n });\n };\n }\n\n function asArray(arrayLike) {\n var array = [];\n var length = arrayLike.length;\n for (var i = 0; i < length; i++) array.push(arrayLike[i]);\n return array;\n }\n\n function escapeXhtml(string) {\n return string.replace(/#/g, '%23').replace(/\\n/g, '%0A');\n }\n\n function width(node) {\n var leftBorder = px(node, 'border-left-width');\n var rightBorder = px(node, 'border-right-width');\n return node.scrollWidth + leftBorder + rightBorder;\n }\n\n function height(node) {\n var topBorder = px(node, 'border-top-width');\n var bottomBorder = px(node, 'border-bottom-width');\n return node.scrollHeight + topBorder + bottomBorder;\n }\n\n function px(node, styleProperty) {\n var value = window.getComputedStyle(node).getPropertyValue(styleProperty);\n return parseFloat(value.replace('px', ''));\n }\n }\n\n function newInliner() {\n var URL_REGEX = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g;\n\n return {\n inlineAll: inlineAll,\n shouldProcess: shouldProcess,\n impl: {\n readUrls: readUrls,\n inline: inline\n }\n };\n\n function shouldProcess(string) {\n return string.search(URL_REGEX) !== -1;\n }\n\n function readUrls(string) {\n var result = [];\n var match;\n while ((match = URL_REGEX.exec(string)) !== null) {\n result.push(match[1]);\n }\n return result.filter(function (url) {\n return !util.isDataUrl(url);\n });\n }\n\n function inline(string, url, baseUrl, get) {\n return Promise.resolve(url)\n .then(function (url) {\n return baseUrl ? util.resolveUrl(url, baseUrl) : url;\n })\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(url));\n })\n .then(function (dataUrl) {\n return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');\n });\n\n function urlAsRegex(url) {\n return new RegExp('(url\\\\([\\'\"]?)(' + util.escape(url) + ')([\\'\"]?\\\\))', 'g');\n }\n }\n\n function inlineAll(string, baseUrl, get) {\n if (nothingToInline()) return Promise.resolve(string);\n\n return Promise.resolve(string)\n .then(readUrls)\n .then(function (urls) {\n var done = Promise.resolve(string);\n urls.forEach(function (url) {\n done = done.then(function (string) {\n return inline(string, url, baseUrl, get);\n });\n });\n return done;\n });\n\n function nothingToInline() {\n return !shouldProcess(string);\n }\n }\n }\n\n function newFontFaces() {\n return {\n resolveAll: resolveAll,\n impl: {\n readAll: readAll\n }\n };\n\n function resolveAll() {\n return readAll(document)\n .then(function (webFonts) {\n return Promise.all(\n webFonts.map(function (webFont) {\n return webFont.resolve();\n })\n );\n })\n .then(function (cssStrings) {\n return cssStrings.join('\\n');\n });\n }\n\n function readAll() {\n return Promise.resolve(util.asArray(document.styleSheets))\n .then(getCssRules)\n .then(selectWebFontRules)\n .then(function (rules) {\n return rules.map(newWebFont);\n });\n\n function selectWebFontRules(cssRules) {\n return cssRules\n .filter(function (rule) {\n return rule.type === CSSRule.FONT_FACE_RULE;\n })\n .filter(function (rule) {\n return inliner.shouldProcess(rule.style.getPropertyValue('src'));\n });\n }\n\n function getCssRules(styleSheets) {\n var cssRules = [];\n styleSheets.forEach(function (sheet) {\n try {\n util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));\n } catch (e) {\n console.log('Error while reading CSS rules from ' + sheet.href, e.toString());\n }\n });\n return cssRules;\n }\n\n function newWebFont(webFontRule) {\n return {\n resolve: function resolve() {\n var baseUrl = (webFontRule.parentStyleSheet || {}).href;\n return inliner.inlineAll(webFontRule.cssText, baseUrl);\n },\n src: function () {\n return webFontRule.style.getPropertyValue('src');\n }\n };\n }\n }\n }\n\n function newImages() {\n return {\n inlineAll: inlineAll,\n impl: {\n newImage: newImage\n }\n };\n\n function newImage(element) {\n return {\n inline: inline\n };\n\n function inline(get) {\n if (util.isDataUrl(element.src)) return Promise.resolve();\n\n return Promise.resolve(element.src)\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(element.src));\n })\n .then(function (dataUrl) {\n return new Promise(function (resolve, reject) {\n element.onload = resolve;\n element.onerror = reject;\n element.src = dataUrl;\n });\n });\n }\n }\n\n function inlineAll(node) {\n if (!(node instanceof Element)) return Promise.resolve(node);\n\n return inlineBackground(node)\n .then(function () {\n if (node instanceof HTMLImageElement)\n return newImage(node).inline();\n else\n return Promise.all(\n util.asArray(node.childNodes).map(function (child) {\n return inlineAll(child);\n })\n );\n });\n\n function inlineBackground(node) {\n var background = node.style.getPropertyValue('background');\n\n if (!background) return Promise.resolve(node);\n\n return inliner.inlineAll(background)\n .then(function (inlined) {\n node.style.setProperty(\n 'background',\n inlined,\n node.style.getPropertyPriority('background')\n );\n })\n .then(function () {\n return node;\n });\n }\n }\n }\n})(this);\n","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 1.3.2\n * 2016-06-16 18:25:19\n *\n * By Eli Grey, http://eligrey.com\n * License: MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, force = type === force_saveable_type\n\t\t\t\t, object_url\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (force) {\n\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\tif (can_use_save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs_error();\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name, no_auto_bom) {\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name, no_auto_bom) {\n\t\t\tname = name || blob.name || \"download\";\n\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function(){};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\n define(\"FileSaver.js\", function() {\n return saveAs;\n });\n}\n","let domtoimage = require('dom-to-image');\nlet fileSaver = require('file-saver');\n\nL.Control.EasyPrint = L.Control.extend({\n\toptions: {\n\t\ttitle: 'Print map',\n\t\tposition: 'topleft',\n\t\tsizeModes: ['Current'],\n\t\tfilename: 'map',\n\t\texportOnly: false,\n\t\thidden: false,\n\t\ttileWait: 500,\n\t\thideControlContainer: true,\n\t\thideClasses: [],\n\t\thideIds: [],\n\t\tonclick: null,\n\t\tpageBorderTopHTML: null,\n\t\tpageBorderBottomHTML: null,\n\t\tpageBorderHeight: 0,\n\t\toverlayHTML: null,\n\t\tcustomWindowTitle: window.document.title,\n\t\tspinnerBgCOlor: '#0DC5C1',\n\t\tcustomSpinnerClass: 'epLoader',\n\t\tdefaultSizeTitles: {\n\t\t\tCurrent: 'Current Size',\n\t\t\tA4Landscape: 'A4 Landscape',\n\t\t\tA4Portrait: 'A4 Portrait',\n\t\t\tA3Landscape: 'A3 Landscape',\n\t\t\tA3Portrait: 'A3 Portrait'\n\t\t}\n\t},\n\n\tonAdd: function () { \n\t\tthis.mapContainer = this._map.getContainer();\n\t\tthis.options.sizeModes = this.options.sizeModes.map(function (sizeMode) {\n\t\t\tif (sizeMode === 'Current') {\n\t\t\t\treturn {\n\t\t\t\t\tname: this.options.defaultSizeTitles.Current,\n\t\t\t\t\tclassName: 'CurrentSize'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sizeMode === 'A4Landscape') {\n\t\t\t\treturn {\n\t\t\t\t\theight: this._a4PageSize.height,\n\t\t\t\t\twidth: this._a4PageSize.width,\n\t\t\t\t\tname: this.options.defaultSizeTitles.A4Landscape,\n\t\t\t\t\tclassName: 'A4Landscape page',\n\t\t\t\t\tpaperSize: 'A4'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sizeMode === 'A4Portrait') {\n\t\t\t\treturn {\n\t\t\t\t\theight: this._a4PageSize.width,\n\t\t\t\t\twidth: this._a4PageSize.height,\n\t\t\t\t\tname: this.options.defaultSizeTitles.A4Portrait,\n\t\t\t\t\tclassName: 'A4Portrait page',\n\t\t\t\t\tpaperSize: 'A4'\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (sizeMode === 'A3Landscape') {\n\t\t\t\treturn {\n\t\t\t\t\theight: this._a3PaperSize.height - this._pageMargin.y * 2,\n\t\t\t\t\twidth: this._a3PaperSize.width - this._pageMargin.x * 2,\n\t\t\t\t\tname: this.options.defaultSizeTitles.A3Landscape,\n\t\t\t\t\tclassName: 'A3Landscape page',\n\t\t\t\t\tpaperSize: 'A3'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sizeMode === 'A3Portrait') {\n\t\t\t\treturn {\n\t\t\t\t\theight: this._a3PaperSize.width - this._pageMargin.x * 2,\n\t\t\t\t\twidth: this._a3PaperSize.height - this._pageMargin.y * 2,\n\t\t\t\t\tname: this.options.defaultSizeTitles.A3Portrait,\n\t\t\t\t\tclassName: 'A3Portrait page',\n\t\t\t\t\tpaperSize: 'A3'\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn sizeMode;\n\t\t}, this);\n\t\t\n\t\tlet container = L.DomUtil.create('div', 'leaflet-control-easyPrint leaflet-bar leaflet-control');\n\t\tif (!this.options.hidden) {\n\t\t\tthis._addCss();\n\n\t\t\tlet btnClass = 'leaflet-control-easyPrint-button'\n\t\t\tif (this.options.exportOnly) btnClass = btnClass + '-export'\n\n\t\t\tthis.link = L.DomUtil.create('a', btnClass, container);\n\t\t\tthis.link.id = \"leafletEasyPrint\";\n\t\t\tthis.link.title = this.options.title;\n\t\t\tthis.holder = L.DomUtil.create('ul', 'easyPrintHolder', container);\n\n\t\t\tif (this.options.onclick)\n\t\t\t{\n\t\t\t\tL.DomEvent.addListener(container, 'click', this.options.onclick, this);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tL.DomEvent.addListener(container, 'mouseover', this._togglePageSizeButtons, this);\n\t\t\t\tL.DomEvent.addListener(container, 'mouseout', this._togglePageSizeButtons, this);\n\t\t\t\n\t\t\t\tthis.options.sizeModes.forEach(function (sizeMode) {\n\t\t\t\t\t\tlet btn = L.DomUtil.create('li', 'easyPrintSizeMode', this.holder);\n\t\t\t\t\t\tbtn.title = sizeMode.name;\n\t\t\t\t\t\tlet link = L.DomUtil.create('a', sizeMode.className, btn);\n\t\t\t\t\t\tL.DomEvent.addListener(btn, 'click', this.printMap, this);\n\t\t\t\t\t}, this);\n\t\t\t}\n\t\t\tL.DomEvent.disableClickPropagation(container);\n\t\t}\n\t\treturn container;\n\t},\n\n\tprintMap: function (event, filename) {\n\t\tif (filename) {\n\t\t\tthis.options.filename = filename\n\t\t}\n\t\tif (!this.options.exportOnly) {\n\t\t\tthis._page = window.open(\"\", \"_blank\", 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10, top=10, width=200, height=250, visible=none');\n\t\t\tthis._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor));\n\t\t}\n\t\tthis.originalState = {\n\t\t\tmapWidth: this.mapContainer.style.width,\n\t\t\twidthWasAuto: false,\n\t\t\twidthWasPercentage: false,\n\t\t\tmapHeight: this.mapContainer.style.height,\n\t\t\tzoom: this._map.getZoom(),\n\t\t\tcenter: this._map.getCenter()\n\t\t};\n\t\tif (this.originalState.mapWidth === 'auto') {\n\t\t\tthis.originalState.mapWidth = this._map.getSize().x + 'px'\n\t\t\tthis.originalState.widthWasAuto = true\n\t\t} else if (this.originalState.mapWidth.includes('%')) {\n\t\t\tthis.originalState.percentageWidth = this.originalState.mapWidth\n\t\t\tthis.originalState.widthWasPercentage = true\n\t\t\tthis.originalState.mapWidth = this._map.getSize().x + 'px'\n\t\t}\n\t\tthis._map.fire(\"easyPrint-start\", { event: event });\n\t\tif (!this.options.hidden) {\n\t\t\tthis._togglePageSizeButtons({type: null});\n\t\t}\n\t\tif (this.options.hideControlContainer) {\n\t\t\tthis._toggleControls(); \n\t\t}\n\t\tif (this.options.hideClasses) {\n\t\t\tthis._toggleClasses(this.options.hideClasses);\n\t\t}\n\t\tif (this.options.hideIds) {\n\t\t\tthis._toggleIds(this.options.hideIds);\n\t\t}\n\t\tlet sizeMode = typeof event !== 'string' ? event.target.className : event;\n\t\tif (sizeMode === 'CurrentSize') {\n\t\t\treturn this._printOpertion(sizeMode);\n\t\t}\n\t\tthis.outerContainer = this._createOuterContainer(this.mapContainer)\n\t\tif (this.originalState.widthWasAuto) {\n\t\t\tthis.outerContainer.style.width = this.originalState.mapWidth\n\t\t}\n\t\tthis._createImagePlaceholder(sizeMode)\n\t},\n\n\tupdateOptions: function(name, value) {\n\t\tthis.options[name] = value;\n\t},\n\n\t_createImagePlaceholder: function (sizeMode) {\n\t\tlet plugin = this;\n\t\tdomtoimage.toPng(this.mapContainer, {\n\t\t\t\twidth: parseInt(this.originalState.mapWidth.replace('px')),\n\t\t\t\theight: parseInt(this.originalState.mapHeight.replace('px')),\n\t\t\t\timagePlaceholder: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AMECQMVtyBSbwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==\"\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\tplugin.blankDiv = document.createElement(\"div\");\n\t\t\t\tlet blankDiv = plugin.blankDiv;\n\t\t\t\tplugin.outerContainer.parentElement.insertBefore(blankDiv, plugin.outerContainer);\n\t\t\t\tblankDiv.className = 'epHolder';\n\t\t\t\tblankDiv.style.backgroundImage = 'url(\"' + dataUrl + '\")';\n\t\t\t\tblankDiv.style.position = 'absolute';\n\t\t\t\tblankDiv.style.zIndex = 1011;\n\t\t\t\tblankDiv.style.display = 'initial';\n\t\t\t\tblankDiv.style.width = plugin.originalState.mapWidth;\n\t\t\t\tblankDiv.style.height = plugin.originalState.mapHeight;\n\t\t\t\tplugin._resizeAndPrintMap(sizeMode);\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\t\tconsole.error('oops, something went wrong!', error);\n\t\t\t});\n\t},\n\n\t_resizeAndPrintMap: function (sizeMode) {\n\t\tthis.outerContainer.style.opacity = 0;\n\t\tlet pageSize = this.options.sizeModes.filter(function (item) {\n\t\t\treturn item.className.indexOf(sizeMode) > -1;\n\t\t});\n\t\tpageSize = pageSize[0];\n\t\tif (pageSize == null)\n\t\t{\n\t\t\tconsole.log(this.options.sizeModes, sizeMode);\n\t\t\tthrow new Error(\"sizeMode not found\");\n\t\t}\n\t\tlet pageBorderHeight = 0;\n\t\tif (this.options.pageBorderHeight)\n\t\t\tpageBorderHeight = this.options.pageBorderHeight + 4;\n\t\tthis.mapContainer.style.width = pageSize.width + 'px';\n\t\tthis.mapContainer.style.height = (pageSize.height - pageBorderHeight) + 'px';\n\t\tif (pageSize.width < pageSize.height) {\n\t\t\tthis.orientation = 'portrait';\n\t\t} else {\n\t\t\tthis.orientation = 'landscape';\n\t\t}\n\t\tthis.paperSize = pageSize.paperSize;\n\t\tthis._map.setView(this.originalState.center);\n\t\tthis._map.setZoom(this.originalState.zoom);\n\t\tthis._map.invalidateSize();\n\t\tif (this.options.tileLayer) {\n\t\t\tthis._pausePrint(sizeMode)\n\t\t} else {\n\t\t\tthis._printOpertion(sizeMode)\n\t\t}\n\t},\n\n\t_pausePrint: function (sizeMode) {\n\t\tlet plugin = this\n\t\tlet loadingTest = setInterval(function () { \n\t\t\tif(!plugin.options.tileLayer.isLoading()) {\n\t\t\t\tclearInterval(loadingTest);\n\t\t\t\tplugin._printOpertion(sizeMode)\n\t\t\t}\n\t\t}, plugin.options.tileWait);\n\t},\n\n\t_printOpertion: function (sizemode) {\n\t\tlet plugin = this;\n\t\tlet widthForExport = this.mapContainer.style.width\n\t\tif (this.originalState.widthWasAuto && sizemode === 'CurrentSize' || this.originalState.widthWasPercentage && sizemode === 'CurrentSize') {\n\t\t\twidthForExport = this.originalState.mapWidth\n\t\t}\n\t\tdomtoimage.toPng(plugin.mapContainer, {\n\t\t\t\twidth: parseInt(widthForExport),\n\t\t\t\theight: parseInt(plugin.mapContainer.style.height.replace('px')),\n\t\t\t\timagePlaceholder: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AMECQMVtyBSbwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==\"\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\t\tlet blob = plugin._dataURItoBlob(dataUrl);\n\t\t\t\t\tif (plugin.options.exportOnly) {\n\t\t\t\t\t\tfileSaver.saveAs(blob, plugin.options.filename + '.png');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplugin._sendToBrowserPrint(dataUrl, plugin.orientation, plugin.paperSize);\n\t\t\t\t\t}\n\t\t\t\t\tplugin._toggleControls(true);\n\t\t\t\t\tplugin._toggleClasses(plugin.options.hideClasses, true);\n\t\t\t\t\tplugin._toggleIds(plugin.options.hideIds, true);\n\n\t\t\t\t\tif (plugin.outerContainer) {\n\t\t\t\t\t\tif (plugin.originalState.widthWasAuto) {\n\t\t\t\t\t\t\tplugin.mapContainer.style.width = 'auto'\n\t\t\t\t\t\t} else if (plugin.originalState.widthWasPercentage) {\n\t\t\t\t\t\t\tplugin.mapContainer.style.width = plugin.originalState.percentageWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tplugin.mapContainer.style.width = plugin.originalState.mapWidth; \n\t\t\t\t\t\t}\n\t\t\t\t\t\tplugin.mapContainer.style.height = plugin.originalState.mapHeight;\n\t\t\t\t\t\tplugin._removeOuterContainer(plugin.mapContainer, plugin.outerContainer, plugin.blankDiv)\n\t\t\t\t\t\tplugin._map.invalidateSize();\n\t\t\t\t\t\tplugin._map.setView(plugin.originalState.center);\n\t\t\t\t\t\tplugin._map.setZoom(plugin.originalState.zoom);\n\t\t\t\t\t}\n\t\t\t\t\tplugin._map.fire(\"easyPrint-finished\");\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\t\tconsole.error('Print operation failed', error);\n\t\t\t}); \n\t},\n\n\t_sendToBrowserPrint: function (img, orientation, paperSize) {\n\t\tthis._page.resizeTo(600, 800); \n\t\tlet pageContent = this._createNewWindow(img, orientation, this, paperSize)\n\t\tthis._page.document.body.innerHTML = ''\n\t\tthis._page.document.write(pageContent);\n\t\tthis._page.document.close(); \n\t},\n\n\t_createSpinner: function (title, spinnerClass, spinnerColor) {\n\t\treturn ``+ title + `\n\t\t
Loading...
`;\n\t},\n\n\t_createNewWindow: function (img, orientation, plugin, paperSize) {\n\t\tlet strs = new Array();\n\t\tstrs.push(`\n\t\t\t\t\n\t\t\t\t`);\n\t\tconsole.log(paperSize, orientation);\n\t\tif (plugin.options.pageBorderTopHTML || plugin.options.pageBorderBottomHTML)\n\t\t{\n\t\t\tstrs.push(\"\");\n\t\t\tif (plugin.options.pageBorderTopHTML)\n\t\t\t{\n\t\t\t\tstrs.push(\"\");\n\t\t\t}\n\t\t\tstrs.push(``);\n\t\t\tif (plugin.options.pageBorderBottomHTML)\n\t\t\t{\n\t\t\t\tstrs.push(\"\");\n\t\t\t}\n\t\t\tstrs.push(\"
\"+plugin.options.pageBorderTopHTML+\"
`);\n\t\t\tif (plugin.options.overlayHTML)\n\t\t\t\tstrs.push(plugin.options.overlayHTML);\n\t\t\tstrs.push(`
\"+plugin.options.pageBorderBottomHTML+\"
\");\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (plugin.options.overlayHTML)\n\t\t\t\tstrs.push(plugin.options.overlayHTML);\n\t\t\tstrs.push(``);\n\t\t}\n\t\tstrs.push(``);\n\t\treturn strs.join(\"\");\n\t},\n\n\t_createOuterContainer: function (mapDiv) {\n\t\tlet outerContainer = document.createElement('div'); \n\t\tmapDiv.parentNode.insertBefore(outerContainer, mapDiv); \n\t\tmapDiv.parentNode.removeChild(mapDiv);\n\t\touterContainer.appendChild(mapDiv);\n\t\touterContainer.style.width = mapDiv.style.width;\n\t\touterContainer.style.height = mapDiv.style.height;\n\t\touterContainer.style.display = 'inline-block'\n\t\touterContainer.style.overflow = 'hidden';\n\t\treturn outerContainer;\n\t},\n\n\t_removeOuterContainer: function (mapDiv, outerContainer, blankDiv) {\n\t\tif (outerContainer.parentNode) {\n\t\t\touterContainer.parentNode.insertBefore(mapDiv, outerContainer);\n\t\t\touterContainer.parentNode.removeChild(blankDiv);\n\t\t\touterContainer.parentNode.removeChild(outerContainer); \n\t\t}\n\t},\n\n\t_addCss: function () {\n\t\tlet css = document.createElement(\"style\");\n\t\tcss.type = \"text/css\";\n\t\tcss.innerHTML = `.leaflet-control-easyPrint-button { \n\t\t\tbackground-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n\t\t\tbackground-size: 16px 16px; \n\t\t\tcursor: pointer; \n\t\t}\n\t\t.leaflet-control-easyPrint-button-export { \n\t\t\tbackground-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n\t\t\tbackground-size: 16px 16px; \n\t\t\tcursor: pointer; \n\t\t}\n\t\t.easyPrintHolder a {\n\t\t\tbackground-size: 16px 16px;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.easyPrintHolder .CurrentSize{\n\t\t\tbackground-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)\n\t\t}\n\t\t.easyPrintHolder .page {\n\t\t\tbackground-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ0NC44MzMgNDQ0LjgzMyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQ0LjgzMyA0NDQuODMzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij4KPGc+Cgk8Zz4KCQk8cGF0aCBkPSJNNTUuMjUsNDQ0LjgzM2gzMzQuMzMzYzkuMzUsMCwxNy03LjY1LDE3LTE3VjEzOS4xMTdjMC00LjgxNy0xLjk4My05LjM1LTUuMzgzLTEyLjQ2N0wyNjkuNzMzLDQuNTMzICAgIEMyNjYuNjE3LDEuNywyNjIuMzY3LDAsMjU4LjExNywwSDU1LjI1Yy05LjM1LDAtMTcsNy42NS0xNywxN3Y0MTAuODMzQzM4LjI1LDQzNy4xODMsNDUuOSw0NDQuODMzLDU1LjI1LDQ0NC44MzN6ICAgICBNMzcyLjU4MywxNDYuNDgzdjAuODVIMjU2LjQxN3YtMTA4LjhMMzcyLjU4MywxNDYuNDgzeiBNNzIuMjUsMzRoMTUwLjE2N3YxMzAuMzMzYzAsOS4zNSw3LjY1LDE3LDE3LDE3aDEzMy4xNjd2MjI5LjVINzIuMjVWMzR6ICAgICIgZmlsbD0iIzAwMDAwMCIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=);\n\t\t}\n\t\t.easyPrintHolder .A4Landscape { \n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t\t.easyPrintHolder .A3Landscape { \n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\n\t\t.leaflet-control-easyPrint-button{\n\t\t\tdisplay: inline-block;\n\t\t}\n\t\t.easyPrintHolder{\n\t\t\tmargin-top:-31px;\n\t\t\tmargin-bottom: -5px;\n\t\t\tmargin-left: 30px;\n\t\t\tpadding-left: 0px;\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.easyPrintSizeMode {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t\t.easyPrintHolder .easyPrintSizeMode a {\n\t\t\tborder-radius: 0px;\n\t\t}\n\n\t\t.easyPrintHolder .easyPrintSizeMode:last-child a{\n\t\t\tborder-top-right-radius: 2px;\n\t\t\tborder-bottom-right-radius: 2px;\n\t\t\tmargin-left: -1px;\n\t\t}\n\n\t\t.easyPrintPortrait:hover, .easyPrintLandscape:hover{\n\t\t\tbackground-color: #757570;\n\t\t\tcursor: pointer;\n\t\t}`;\n\t\tdocument.body.appendChild(css);\n\t},\n\n\t_dataURItoBlob: function (dataURI) {\n\t\tlet byteString = atob(dataURI.split(',')[1]);\n\t\tlet mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\t\tlet ab = new ArrayBuffer(byteString.length);\n\t\tlet dw = new DataView(ab);\n\t\tfor(let i = 0; i < byteString.length; i++) {\n\t\t\t\tdw.setUint8(i, byteString.charCodeAt(i));\n\t\t}\n\t\treturn new Blob([ab], {type: mimeString});\n\t},\n\n\t_togglePageSizeButtons: function (e) {\n\t\tlet holderStyle = this.holder.style\n\t\tlet linkStyle = this.link.style\n\t\tif (e.type === 'mouseover') {\n\t\t\tholderStyle.display = 'block';\n\t\t\tlinkStyle.borderTopRightRadius = '0'\n\t\t\tlinkStyle.borderBottomRightRadius = '0'\n\t\t} else {\n\t\t\tholderStyle.display = 'none';\n\t\t\tlinkStyle.borderTopRightRadius = '2px'\n\t\t\tlinkStyle.borderBottomRightRadius = '2px' \n\t\t}\n\t},\n\n\t_toggleControls: function (show) {\n\t\tlet controlContainer = document.getElementsByClassName(\"leaflet-control-container\")[0];\n\t\tif (show)\n\t\t\tcontrolContainer.style.display = 'block';\n\t\telse\n\t\t\tcontrolContainer.style.display = 'none';\n\t},\n\t_toggleClasses: function (classes, show) {\n\t\tclasses.forEach(function (className) {\n\t\t\tlet divs = document.getElementsByClassName(className);\n\t\t\tlet i;\n\t\t\tfor (i in divs)\n\t\t\t{\n\t\t\t\tif (divs[i].style)\n\t\t\t\t{\n\t\t\t\t\tdivs[i].style.display = show?'':'none';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t_toggleIds: function (ids, show) {\n\t\tids.forEach(function (id) {\n\t\t\tlet div = document.getElementById(id);\n\t\t\tif (div && div.style)\n\t\t\t{\n\t\t\t\tdiv.style.display = show?'':'none';\n\t\t\t}\n\t\t});\n\t},\n\n\t_a4PageSize: {\n\t\theight: 715,\n\t\twidth: 1045\n\t},\n\n\t_a4PaperSize: {\n\t\twidth: 1123.660266,\n\t\theight: 794.547794\n\t},\n\n\t_a3PaperSize: {\n\t\twidth: 1589.095588,\n\t\theight: 1123.660266\n\t},\n\n\t_pageMargin: {\n\t\tx: 40,\n\t\ty: 40\n\t}\n\n\n});\n\nL.easyPrint = function(options) {\n\treturn new L.Control.EasyPrint(options);\n};\n\n"],"names":["this","define","L","Control","EasyPrint","extend","window","document","title","mapContainer","_map","getContainer","options","sizeModes","map","sizeMode","defaultSizeTitles","Current","_a4PageSize","height","width","A4Landscape","A4Portrait","_a3PaperSize","_pageMargin","y","x","A3Landscape","A3Portrait","container","DomUtil","create","hidden","_addCss","btnClass","exportOnly","link","id","holder","onclick","DomEvent","addListener","_togglePageSizeButtons","forEach","btn","name","className","printMap","disableClickPropagation","event","filename","_page","open","write","_createSpinner","customWindowTitle","customSpinnerClass","spinnerBgCOlor","originalState","style","getZoom","getCenter","mapWidth","getSize","widthWasAuto","includes","percentageWidth","widthWasPercentage","fire","type","hideControlContainer","_toggleControls","hideClasses","_toggleClasses","hideIds","_toggleIds","target","_printOpertion","outerContainer","_createOuterContainer","_createImagePlaceholder","value","plugin","toPng","parseInt","replace","mapHeight","then","dataUrl","blankDiv","createElement","parentElement","insertBefore","backgroundImage","position","zIndex","display","_resizeAndPrintMap","catch","error","opacity","pageSize","filter","item","indexOf","log","Error","pageBorderHeight","orientation","paperSize","setView","center","setZoom","zoom","invalidateSize","tileLayer","_pausePrint","loadingTest","setInterval","isLoading","tileWait","sizemode","widthForExport","blob","_dataURItoBlob","saveAs","_sendToBrowserPrint","_removeOuterContainer","img","resizeTo","pageContent","_createNewWindow","body","innerHTML","close","spinnerClass","spinnerColor","strs","Array","push","pageBorderTopHTML","pageBorderBottomHTML","overlayHTML","join","mapDiv","parentNode","removeChild","appendChild","overflow","css","dataURI","byteString","atob","split","mimeString","ab","ArrayBuffer","length","dw","DataView","i","setUint8","charCodeAt","Blob","e","holderStyle","linkStyle","borderTopRightRadius","borderBottomRightRadius","show","controlContainer","getElementsByClassName","classes","divs","ids","div","getElementById","easyPrint"],"mappings":"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"} \ No newline at end of file